Skip to content

Instantly share code, notes, and snippets.

Verifying that +mrfabbri is my blockchain ID. https://onename.com/mrfabbri
@mrfabbri
mrfabbri / app.js
Created February 4, 2015 23:19
App wide shortcuts in NW.js in "userland" [PoC]
"use strict";
var gui = require("nw.gui");
var AppShortcut = require("./appshortcut")(gui).AppShortcut;
var keycode = require('keycode');
var win = gui.Window.get();
if (process.platform === "darwin") {
var nativeMenuBar = new gui.Menu({type: "menubar"});
@mrfabbri
mrfabbri / noderunner.js
Last active August 29, 2015 14:12
Noderunner + Dropbox
//The MIT License (MIT)
//Copyright (c) 2014 Dave Winer
//Permission is hereby granted, free of charge, to any person obtaining a copy
//of this software and associated documentation files (the "Software"), to deal
//in the Software without restriction, including without limitation the rights
//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//copies of the Software, and to permit persons to whom the Software is
//furnished to do so, subject to the following conditions:
@mrfabbri
mrfabbri / fscript-inject.sh
Last active August 29, 2015 14:11
F-Script injection script
#!/usr/bin/env zsh
Frameworks="/Library/Frameworks";
usage() {
echo "Injects F-Script (menu) into a running application (via lldb)"
echo "usage: $(basename $0) [-c] <application-name-or-PID>"
echo
echo "options:"
echo "-c \t\topens F-Script console (useful for apps lacking a menu bar):"
@mrfabbri
mrfabbri / fsa.py
Last active August 29, 2015 14:11 — forked from danielpunkass/fsa.py
"""
Automate loading of F-Script Anywhere into any app.
By Daniel Jalkut - @danielpunkass - http://indiestack.com/
Revision 0.2 by Marco Fabbri - @mrfabbri - mrfabbri@gmail.com
To set up:
0. Make sure you have FScript.framework installed in /Library/Frameworks (http://www.fscript.org)
1. Copy this script to ~/.lldb/fsa.py
2. Add the following to your ~/.lldbinit file:
/**
* React v0.5.0
*
* Copyright 2013 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
@mrfabbri
mrfabbri / shadow-stream.rkt
Created November 3, 2014 21:30
Shadow stream in Racket
;; Returns a stream that shadows side-effects of the original stream
;; when accessed after the first time
(define (shadow-stream s)
(let ([shadow-next #f])
(thunk (begin
(when (not shadow-next)
(let ([next (s)])
(set! shadow-next (cons (car next) (shadow-stream (cdr next))))))
(cons (car shadow-next) (cdr shadow-next))))))
@mrfabbri
mrfabbri / hashmap.sml
Created November 3, 2014 00:05
A minimal HashMap implementation in SML
signature HASH_MAP =
sig
type 'a hashVector
type ('a, 'b) hashMap
val makeEmpty : (('a -> int) * ('a * 'a -> bool) * int) -> ('a, 'b) hashMap
val lookup : ('a, 'b) hashMap -> 'a -> 'b option
val insert : ('a, 'b) hashMap -> 'a * 'b -> unit
val remove : ('a, 'b) hashMap -> 'a -> unit
val load : ('a, 'b) hashMap -> int
end
@mrfabbri
mrfabbri / streams-interleave.rkt
Last active August 29, 2015 14:08
Interleaving streams in Racket
#lang racket
;; produce a new stream with the elements of the given streams interleaved
(define (streams-interleave . streams)
(letrec ([loop (lambda (streams)
(let ([next ((car streams))])
(cons (car next)
(thunk (loop (append (cdr streams) (list (cdr next))))))))])
(thunk (loop streams))))
@mrfabbri
mrfabbri / record-droid-screencast.sh
Created October 5, 2014 10:26
Starts and stops screen and audio (Mac) recording of an android attached device via adb
#!/bin/sh
function stop_record() {
echo
echo "stopping audio recording"
cat << EOF | osascript -l AppleScript
tell application "Quicktime Player"
stop last item of (documents whose name contains "Audio Recording")
end tell
EOF