Skip to content

Instantly share code, notes, and snippets.

@strogonoff
strogonoff / flatten.ts
Last active April 5, 2023 02:34
Object (un)flattening in TypeScript
// Based on original implementation from Tofandel’s answer: https://stackoverflow.com/a/59787588/247441
/* Aggregates parts (mapped to slash-separated paths) into a nested object.
E.g.:
{ /some/path: A, /foo: B, /some/other/path: C }
gets turned into:
{ foo: B, some: { path: A, other: { path: C } } }
*/
@strogonoff
strogonoff / gist:2d457d0c1681d9dedd6021e2368637c6
Last active July 2, 2020 04:10
Debug a production-packaged Electron app on macOS

In Terminal, run:

me@me:<some-app>$ ./dist/mac/<product identifier>.app/Contents/MacOS/<product identifier> --remote-debugging-port=8315
  • stdout will stream your logs and may at least give a glimpse as to where the error is thrown.
  • Open http://127.0.0.1:8315 in Chrome for some useful stuff.
@strogonoff
strogonoff / html_diff.py
Last active September 23, 2019 00:22
Visual differ for Metanorma flavors. Deprecated in favor of https://github.com/metanorma/visual-diff/
# Deprecated
@strogonoff
strogonoff / sparsebundle
Last active May 19, 2018 22:06 — forked from scottsb/casesafe.sh
Create and manage a case-sensitive disk-image on macOS (OS X).
#!/bin/bash
# ---------------------------------------------------------
# Customizable Settings
# ---------------------------------------------------------
MOUNT_POINT="${CASE_SAFE_MOUNT_POINT:-${HOME}/casesafe}"
VOLUME_PATH="${CASE_SAFE_VOLUME_PATH:-${HOME}/.casesafe.dmg.sparseimage}"
VOLUME_NAME="${CASE_SAFE_VOLUME_NAME:-casesafe}"
VOLUME_SIZE="${CASE_SAFE_VOLUME_SIZE:-60g}"

Keybase proof

I hereby claim:

  • I am strogonoff on github.
  • I am strogonoff (https://keybase.io/strogonoff) on keybase.
  • I have a public key ASB4AETCNWMePGNNdaKxKzRKFrpXHLFkEWeewsqDyolZCAo

To claim this, I am signing this object:

import UIKit
import PlaygroundSupport
// https://gist.github.com/erica/6f13f3043a330359c035e7660f3fe7f5
// Original Video: https://www.youtube.com/watch?v=TTmWUSgNOHk
// Video: https://www.youtube.com/watch?v=hmAB3WJOQTU
// Video: https://www.youtube.com/watch?v=DWtavuvmKdw (with zoom and fade)
// String to animate and its attributes
var string = "Hello, playground"
let attributes: [String: Any] = [
@strogonoff
strogonoff / combined-django-querysets.py
Created June 13, 2014 08:53
Combine two querysets from different models in Django
import datetime
from blog.models import BlogEntry
from news.models import NewsEntry
def get_fresh_news_and_blog_entries():
u"""Returns a list containing published news entries and blog posts mixed,
sorted by publish date. Suitable for template context of, say, landing page.
"""
news = list(NewsEntry.objects.
@strogonoff
strogonoff / hnsavedsearch.py
Created March 12, 2014 07:02
Search your saved HN items
#coding: utf-8
u"""
Searches your saved HN items. Many false positives (overkill with synonyms).
..
$ pip install mechanize nltk
$ python hnsavedsearch.py username "space separated query"
"""
@strogonoff
strogonoff / config.js
Created August 5, 2013 20:34
AngularJS configuration module
/*jslint browser: true */
/*global _: false, angular: false */
// Configuration constants. Overrides can be specified under window.settings
(function () {
'use strict';
var SETTINGS = {
apiBaseUrl: '/',
@strogonoff
strogonoff / pgessays.py
Created November 22, 2012 05:52 — forked from olasitarska/pgessays.py
Builds epub book out of Paul Graham's essays.
# -*- coding: utf-8 -*-
"""
Builds epub book out of Paul Graham's essays: http://paulgraham.com/articles.html
Author: Ola Sitarska <[email protected]>
This script requires python-epub-library: http://code.google.com/p/python-epub-builder/
"""
import re, ez_epub, urllib2, genshi