Skip to content

Instantly share code, notes, and snippets.

View onename.txt
Verifying that +mrfabbri is my blockchain ID.
mrfabbri / app.js
Created Feb 4, 2015
App wide shortcuts in NW.js in "userland" [PoC]
View app.js
"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 / noderunner.js
Last active Aug 29, 2015
Noderunner + Dropbox
View noderunner.js
//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 /
Last active Aug 29, 2015
F-Script injection script
#!/usr/bin/env zsh
usage() {
echo "Injects F-Script (menu) into a running application (via lldb)"
echo "usage: $(basename $0) [-c] <application-name-or-PID>"
echo "options:"
echo "-c \t\topens F-Script console (useful for apps lacking a menu bar):"
Automate loading of F-Script Anywhere into any app.
By Daniel Jalkut - @danielpunkass -
Revision 0.2 by Marco Fabbri - @mrfabbri -
To set up:
0. Make sure you have FScript.framework installed in /Library/Frameworks (
1. Copy this script to ~/.lldb/
2. Add the following to your ~/.lldbinit file:
View react.min.js
* 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
mrfabbri / shadow-stream.rkt
Created Nov 3, 2014
Shadow stream in Racket
View shadow-stream.rkt
;; 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 / hashmap.sml
Created Nov 3, 2014
A minimal HashMap implementation in SML
View hashmap.sml
signature HASH_MAP =
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
mrfabbri / streams-interleave.rkt
Last active Aug 29, 2015
Interleaving streams in Racket
View streams-interleave.rkt
#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 /
Created Oct 5, 2014
Starts and stops screen and audio (Mac) recording of an android attached device via adb
function stop_record() {
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