Monday, December 12, 2011
benvanik/node-airplay
CodeKit
Monday, December 5, 2011
Ugorji Nwoke: Dev Tool for GO AppEngine
Responsive IMGs
Saturday, December 3, 2011
UILayer
Sunday, November 27, 2011
Saturday, November 26, 2011
ProdEagle - Welcome
Sunday, November 13, 2011
Workshop / Chrome Experiments
- dat.GUI: A lightweight graphical user interface for changing variables in JavaScript. Rather than modify variables manually in your code, use dat.GUI to modify them during execution.
- three.js: A lightweight 3D engine. Three.js makes it easy to render graphics with canvas, svg, and WebGL.
- stats.js: A JavaScript performance widget. Stats.js adds a simple info box to your page displaying frames per second (FPS) or, with a mouse click, the milliseconds required to render the frame.
Saturday, October 29, 2011
Saturday, September 24, 2011
Bootstrap, from Twitter
Tuesday, September 13, 2011
Saturday, September 10, 2011
Friday, August 12, 2011
Performance Data from our Fieldrunners WebGL Demo
Wednesday, July 27, 2011
nowjs for Node
Monday, July 18, 2011
SceneJS - WebGL Scene Graph Library
Thursday, July 14, 2011
Cocos2D JavaScript
Monday, July 11, 2011
Sunday, June 26, 2011
Google App Engine Mini Profiler
Friday, June 24, 2011
SocketStream
Monday, June 13, 2011
Perceptual Image Difference Utility
Monday, June 6, 2011
Sitebricks
Sunday, June 5, 2011
Apache Lucy
Thursday, May 26, 2011
Sunday, May 22, 2011
Scrollability
The Dynamics of Scrolling | MacResearch
Saturday, May 14, 2011
Google App Engine Blog: Introducing ProtoRPC for writing App Engine Web Services in Python
ProtoRPC makes it easy to write consistent, reliable web interfaces that can be used, for example, to do the following:
- Create AJAX URL end-points for use by dynamic web pages and forms.
- Provide simple and understandable server-to-server communications.
- Become a back-end for command-line tools or other non-web based clients.
MTR
mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
As mtr starts, it investigates the network connection between the host mtr runs on and a user-specified destination host. After it determines the address of each network hop between the machines, it sends a sequence ICMP ECHO requests to each one to determine the quality of the link to each machine. As it does this, it prints running statistics about each machine.
Monday, April 11, 2011
Crafty - JavaScript Game Engine
Sunday, April 3, 2011
MaxSquare: a fast and simple algorithm for maximizing photo thumbnail sizes
Wednesday, March 30, 2011
Coded Exposure Photography (Flutter Shutter Deblur, SIGGRAPH 2006)
In a conventional single-exposure photograph, moving objects or moving cameras cause motion blur. The exposure time defines a temporal box filter that smears the moving object across the image by convolution. This box filter destroys important high-frequency spatial details so that deblurring via deconvolution becomes an ill-posed problem.
Rather than leaving the shutter open for the entire exposure duration, we "flutter'' the camera's shutter open and closed during the chosen exposure time with a binary pseudo-random sequence. The flutter changes the box filter to a broad-band filter that preserves high-frequency spatial details in the blurred image and the corresponding deconvolution becomes a well-posed problem. We demonstrate that manually-specified point spread functions are sufficient for several challenging cases of motion-blur removal including extremely large motions, textured backgrounds and partial occluders.
Monday, March 28, 2011
Remote git diffs with bbdiff
- See previous post about key exchange.
- Add the following to
.gitconfig
:[diff] tool = "bbdiff" [difftool] prompt = false [difftool "bbdiff"] cmd = /home/mihaip/bin/bbdiff "$REMOTE" "$LOCAL"
- Create
bbdiff
on the remote machine with the following contents:#!/bin/sh source_machine=${SSH_CLIENT%% *} for arg in "$@" do readlink -fn $arg if [[ $arg == /tmp/* ]] then scp $arg mihaip@$source_machine:$arg fi echo -n " " done | xargs ssh mihaip@$source_machine /usr/local/bin/bbdiff --wait --resume
Saturday, March 26, 2011
Google Application Utilities for Python
Same set of utilities used to build and run internal Python apps at Google:
- Simple application startup integrated with python-gflags.
- Subcommands for command-line applications.
- Option to drop into pdb on uncaught exceptions.
- Helper functions for dealing with files.
- High-level profiling tools.
- Timezone-aware wrappers for datetime.datetime classes.
- Improved TestCase with many of the same methods as unittest2, plus helpful flags for test startup.
- google_test setuptools command for running tests.
- Helper module for creating application stubs.
Friday, March 25, 2011
xStats
xStats provides simple charts to help monitor your code performance.
- FPS: Frames rendered per second. The higher the number the better.
- MS: Milliseconds needed to render a frame. The lower the number the better.
- MEM: Megabytes of memory used. Make sure it doesn't keep incrementing.
Editing files remotely
- See previous post about key exchange and
get_source_machine
- Install FUSE and SSHFS.
- Ideally, mount the remote directories you're interested to the same path on your Mac. Most recently I've used:
sshfs mihaip@snowberry.local:/D \ /D \ -oauto_cache,reconnect,volname=snowberry-mihaip
- Add the following to your
.bashrc
:bbedit() { source_machine=$(get_source_machine) for arg in "$@" do readlink -fn $arg echo -n " " done | xargs ssh mihaip@$source_machine /usr/local/bin/bbedit }
Growl notifications from other machines
- Install growlnotify
- Set up public keys so that the other machine can SSH into the Mac without prompting
- Add the following to
.bashrc
:get_source_machine() { echo ${SSH_CLIENT%% *} } function growlnotify() { if [ "$AT_HOME" = "true" ]; then return; fi source_machine=$(get_source_machine) ssh mihaip@$source_machine /usr/local/bin/growlnotify \ -n "command-notifier" \ -m \"[$PWD]\" \"$1\" 2> /dev/null }
- In the Growl PrefPane, the notifications can be styled for the
command-notifier
"Application." (I like Music Video)
Wednesday, March 23, 2011
Using the Google V8 Javascript Engine in Java
Monday, March 14, 2011
JVM Crash in Development App Engine server after Mac OS X Java SE 6 Update 4
/System/Library/Java/JavaVirtualMachines/1.6.0.3.jdk
and pointing Eclipse at it worked for me.
Sunday, March 13, 2011
Backbone.js
Underscore.js
Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It's the tie to go along with jQuery's tux.
Underscore provides 60-odd functions that support both the usual functional suspects: map
, select
, invoke
— as well as more specialized helpers: function binding, javascript templating, deep equality testing, and so on. It delegates to built-in functions, if present, so modern browsers will use the native implementations of forEach
, map
, reduce
, filter
, every
, some
and indexOf
.
CoffeeScript
CoffeeScript is a little language that compiles into JavaScript. Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.
The golden rule of CoffeeScript is: 'It's just JavaScript'. The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly (and vice-versa). The compiled output is readable and pretty-printed, passes through JavaScript Lint without warnings, will work in every JavaScript implementation, and tends to run as fast or faster than the equivalent handwritten JavaScript.
Friday, March 11, 2011
d3.js
Tuesday, March 8, 2011
Monday, March 7, 2011
Chef - Opscode
Thursday, March 3, 2011
boilerpipe
The boilerpipe library provides algorithms to detect and remove the surplus 'clutter' (boilerplate, templates) around the main textual content of a web page.
Instance/web API running at http://boilerpipe-web.appspot.com/.
Wednesday, March 2, 2011
visionmedia/express - GitHub
Sunday, February 27, 2011
Varnish: Notes from the Architect
Monday, February 14, 2011
Graphite - Enterprise Scalable Realtime Graphing
Graphite is a highly scalable real-time graphing system. As a user, you write an application that collects numeric time-series data that you are interested in graphing, and send it to Graphite's processing backend, carbon, which stores the data in Graphite's specialized database. The data can then be visualized through Graphite's web interfaces.
Used by Etsy.
Etsy also has StatsD (blog post) which is a daemon that increments/times can be sent to, which aggregates them and sends them to Graphite.Friday, February 4, 2011
ack 1.94 -- better than grep, a source code search tool for programmers
"ack is a tool like grep, designed for programmers with large trees of heterogeneous source code."
Unicode code converter
Convert input text to various representations and escaping levels.
Also related: Text Escaping and Unescaping in JavaScript.