Skip to content

Instantly share code, notes, and snippets.

View jcayzac's full-sized avatar

Julien Cayzac jcayzac

View GitHub Profile
var fs = require('fs');
/**
* Asynchronously build a tree corresponding to the specified directory.
*
* @param dir Root directory.
* @param cb Callback function with (err, tree) signature.
*/
function getFileTree(dir, cb) {
var results = {};
"use strict";
var fs = require('fs'),
path = require('path'),
events = require('events'),
async = require('async');
function FolderTraversal(dir, filter) {
function defaultFilter(v) {
return v;
@jcayzac
jcayzac / snippet.glsl
Created November 3, 2012 06:32
AR vertex shader (projects ECEF POI coordinates)
// double clat = cos(viewer_lat * DEGREES_TO_RADIANS);
// double slat = sin(viewer_lat * DEGREES_TO_RADIANS);
// double clon = cos(viewer_lon * DEGREES_TO_RADIANS);
// double slon = sin(viewer_lon * DEGREES_TO_RADIANS);
// double N = WGS84_A / sqrt(1.0 - WGS84_E2 * slat * slat);
// double viewer_x = (N + alt) * clat * clon;
// double viewer_y = (N + alt) * clat * slon;
// double viewer_z = (N * (1.0 - WGS84_E2) + alt) * slat;
// for each poi i:
// double cplat[i] = cos(plat[i] * DEGREES_TO_RADIANS);
NSNumber* const XXX;
__attribute__((constructor)) static void createConstants() {
@autoreleasepool {
*(NSNumber**)&XXX = [@1 retain];
}
}
__attribute__((destructor)) static void destroyConstants() {
[XXX release];
@jcayzac
jcayzac / snippet.txt
Created December 8, 2012 07:49
dvd to ps3 mp4
./ffmpeg -y -i ~/Desktop/BD/CHUGGINGTON_VOL_2.vob -vf "yadif=0:0:0,scale=iw*sar:ih,setsar=1" -r 25 -idct:v h264 -level 41 -c:v libx264 -profile:v high -preset:v slow -crf 18 -qmin 10 -qmax 51 -qcomp 0.7 -flags +loop -cmp +chroma -c:a copy \
-map 0:0 \
-map 0:1 -metadata:s:a:0 language=fre \
-metadata title="Chuggington volume 2: Super Locos" -metadata album="Movies" \
-f mp4 ~/Desktop/BD/Chuggington_vol2.mp4
<!DOCTYPE html>
<html>
<head>
<title>MathJax AsciiMath Test Page</title>
<script type="text/javascript"
src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=AM_HTMLorMML-full">
</script>
</head>
<body>
@jcayzac
jcayzac / ContactDiscovery.partial.mm
Created January 9, 2013 02:04
Accessing phone/facebook contacts in iOS
#import <AddressBook/AddressBook.h>
#import <Accounts/Accounts.h>
#import <Social/Social.h>
@interface ContactsDiscovery()
@property (nonatomic, retain) ACAccountStore* accounts;
@property (nonatomic, retain) ACAccountType* faceBookAccountType;
@property (nonatomic, retain) ACAccount* faceBookAccount;
@property (nonatomic, retain) id addressBook;
@end
@jcayzac
jcayzac / mathml-support-for-crappy-browsers.js
Last active December 11, 2015 02:08
MathML support for IE/older browsers
(function (window) {
"use strict"
// TODO: should let people style mathml while mathjax gets loaded
var d = window.document,
ns = "http://www.w3.org/1998/Math/MathML", math = 'math',
MutationObserver = window.MutationObserver || window.WebKitMutationObserver,
mfrac = d.createElementNS(ns, math).appendChild(d.createElementNS(ns, "mfrac")),
div = d.createElement("div")
@jcayzac
jcayzac / backlog.md
Last active December 16, 2015 00:58
backlog

Find if the user has a system-registered facebook account

if (![SLComposeViewController class]) return NO;
return [SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook];

Get the first responder in constant time

UIResponder+JCCurrentFirstResponder.h
#import <UIKit/UIKit.h>
- math:
- apply: plus
- apply: times
ci: a
- apply: power
ci: x
cn: 2
- apply: times
ci: b
ci: x