Skip to content

Instantly share code, notes, and snippets.

View mzhukovs's full-sized avatar

Mark Zhukovsky mzhukovs

  • Earth
View GitHub Profile
@mzhukovs
mzhukovs / Dracula-MZ-IDE-VS2019.vstheme
Last active June 19, 2019 01:24
VS2019 Dracula Custom Theme w/ more IDE changes too (not just Editor)
<Themes>
<Theme Name="DraculaMZ" GUID="{32f0c094-a6d3-42da-82a8-6b08df3e2dc3}">
<Category Name="ACDCOverview" GUID="{c8887ac6-3c60-4209-9d69-8f4c12a60044}">
<Color Name="Body">
<Background Type="CT_RAW" Source="FF252526" />
<Foreground Type="CT_RAW" Source="FFF1F1F1" />
</Color>
<Color Name="H1">
<Foreground Type="CT_RAW" Source="FF84CEFF" />
</Color>
@mzhukovs
mzhukovs / Dracula-MZ.vstheme
Created June 15, 2019 10:28
VS2019 Dracula Custom Theme
<Themes>
<Theme Name="Dracula v2" GUID="{c32454de-c5fc-4799-a5e8-2e2d28f09c2c}">
<Category Name="ACDCOverview" GUID="{c8887ac6-3c60-4209-9d69-8f4c12a60044}">
<Color Name="Body">
<Background Type="CT_RAW" Source="FF252526" />
<Foreground Type="CT_RAW" Source="FFF1F1F1" />
</Color>
<Color Name="H1">
<Foreground Type="CT_RAW" Source="FF84CEFF" />
</Color>
@mzhukovs
mzhukovs / Chase_BankStatement_Checking_PDF_Parser.py
Created September 8, 2018 13:07
Python Script to Scrape Transaction Records from Chase Bank Checking Account Statement PDFs
import os
import argparse
import re
import csv
from datetime import datetime as dt
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTPage, LTChar, LTAnno, LAParams, LTTextBox, LTTextLine
from pdfminer.pdfpage import PDFPage
@mzhukovs
mzhukovs / UOB_BankStatement_CASA_PDF_Parser.py
Created September 8, 2018 13:05
Python Script to Scrape Transaction Records from United Overseas Bank CASA Statement PDFs
# Parses UOB CASA eStatements transaction data
#! first download tika-server from http://www.apache.org/dyn/closer.cgi/tika/tika-server-1.18.jar and then go to cmd:
#* cd C:\Users\YourUserName\Documents\Python Scripts\_util # or wherever you installed it
#* java -jar tika-server-1.18.jar --port 1111
#region Imports
import time
import datetime
import pandas as pd
@mzhukovs
mzhukovs / xambprop.snippet
Created July 9, 2018 04:33
Xamarin Forms Bindable Property Code Snippet
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
<Title>Xamarin Bindable Property</Title>
<Author>Mark Zhukovsky</Author>
<Description>Code snippet for an automatically implemented Xamarin Forms BindableProperty.</Description>
@mzhukovs
mzhukovs / RepeaterView.cs
Last active June 29, 2018 01:05
FlexLayout RepeaterView for Xamarin Forms with Fade In Animation
public delegate void RepeaterViewItemAddedEventHandler(object sender, RepeaterViewItemAddedEventArgs args);
/// <summary>
/// Don't set IsVisible to false or you will have a bad time
/// this won't relayout its child elements when you change the visibility
/// </summary>
// in lieu of an actual Xamarin Forms ItemsControl, this is a heavily modified version of code from https://forums.xamarin.com/discussion/21635/xforms-needs-an-itemscontrol
public class RepeaterView : FlexLayout
{
public RepeaterView()
@mzhukovs
mzhukovs / NavHelper.cs
Last active February 25, 2020 12:36
Xamarin Forms Helper Class for Navigation with Prism 7.0
/// <summary>
/// Helps with the keys for navigation for Prism, which uses deep linking with support for parameters as a query string, e.g. "MainTabbedPage/NavigationPage/ShowsListPage/DetailPage?id=1&title=First page"
/// In Prism, the concept of navigating to a View or navigating to a ViewModel does not exist. Instead, you simply navigate to an experience, or a unique identifier, which represents the target view you wish to navigate to in your app.
/// Despite this, I prefer mainly relying on ViewModels for ease of code-browsing and organization, so adding the helpers here for that.
/// For more advanced scenarios, can just use the string extensions directly, using nameof(VM) to call them.
/// </summary>
public static class NavHelper
{
#region For Common Scenarios
/// <summary>