Skip to content

Instantly share code, notes, and snippets.

View mturilin's full-sized avatar

Mikhail Turilin mturilin

  • Google
  • San Francisco, CA
View GitHub Profile

Backend Developer for Crypto Payments Startup

Looking for a backend developer to crypto payments startup

Who we are?

We are a stealth starup that is working on new generation of money transfer app based on crypto / blockchain technology.

We have senior team with experince of starting mutiple successful businesses.

@mturilin
mturilin / aspect_ration.fs
Created December 21, 2022 21:17
F# script to compute image aspect ratio
open System
let resolutions =
[
((1,1), (1080 , 1080));
((3,2), (1080 , 720));
((4,3), (1024 , 768));
((16,9), (1920 , 1080));
((16,10), (1920 , 1200));
]
@mturilin
mturilin / convert.py
Created January 26, 2020 07:44
Converst TextExpander csv to espanso yaml
#!/usr/bin/python3
import yaml
import sys
import csv
# create root yaml
matches = []
# open file
@mturilin
mturilin / paste_to_devtools_console.js
Created March 29, 2020 22:04
Delete all Google Photos
for(i = 1; i<=9999; i++) {
console.log("Iteration # --> " + i);
document.querySelectorAll('div[role=checkbox]').forEach(div=>div.click());
document.querySelectorAll('div[aria-label*="Select all photos"]').forEach(div=>div.click());
await new Promise(r => setTimeout(r, 3000));
try{console.log("Selected documents count for iteration [" + i + "]: " + document.evaluate('/html/body/div[1]/div/c-wiz/c-wiz[2]/span/div[1]/div/span', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerText);}catch(ex){/*do nothing*/}
document.querySelector('button[title=Delete]').click();
await new Promise(r => setTimeout(r, 5000));
document.evaluate('//span[text()="Move to trash"]', document, null, XPathResult.ANY_TYPE, null ).iterateNext().click();