paperplanes. Holiday Reading List
Here's a list of things I've been reading lately or that I'm about to read, and that I found to be worth sharing. If you're looking for something to read over the holidays, I'm happy to give you some suggestions. Books, papers, articles, and videos, something for everyone.
6 weeks ago
Vim: revisited
7 weeks ago
Recently, I decided to give Vim another shot. This time around it was different – something in my brain switched and now for the first time in my life I’m proud of my knowledge of Vim. My philosophy of it has changed to “less is more”, my approach was more disciplined and my motivation stronger. And so you don’t spend as much time learning as I did, I am going to lay down some fundamentals.
vim
guide
7 weeks ago
Git How-To: Remove Your Password from a Repository | David Verhasselt
9 weeks ago
When you’re making an app that uses credentials to access some service, in the early stages of development before any code to access a config-file is written, a username and password are occasionally hard-coded in the source.
Since you use version control like all good developers, it’s possible these hardcoded credentials get committed. This poses a grave security risk, especially if you want to open source the code including the repository.
Here’s how to remove a password from any file, in all revisions, in a git repository:
git
remove
string
password
Since you use version control like all good developers, it’s possible these hardcoded credentials get committed. This poses a grave security risk, especially if you want to open source the code including the repository.
Here’s how to remove a password from any file, in all revisions, in a git repository:
9 weeks ago
rollcontrol
october 2011
Roll Control
Purpose: Our May 2009 launch of LV2.3 was a huge success, but our on board video could have been better if the rocket didn't spin about the longitudinal axis.
There are two ways to correct this:
Find a better way to align the fins.
Implement an active roll axis control system to stop the rotation and actively orient the rocket in the desired orientation.
Aligning the fins should be done to minimize drag on the rocket, but an active roll control system can ensure minimal roll, and even point the on board camera in an interesting direction through the launch and recovery. Further, an experiment with roll control provides a good chance to validate a control system designed based on a dynamic model.
rocketry
roll
control
Purpose: Our May 2009 launch of LV2.3 was a huge success, but our on board video could have been better if the rocket didn't spin about the longitudinal axis.
There are two ways to correct this:
Find a better way to align the fins.
Implement an active roll axis control system to stop the rotation and actively orient the rocket in the desired orientation.
Aligning the fins should be done to minimize drag on the rocket, but an active roll control system can ensure minimal roll, and even point the on board camera in an interesting direction through the launch and recovery. Further, an experiment with roll control provides a good chance to validate a control system designed based on a dynamic model.
october 2011
Instagram Engineering • Sharding & IDs at Instagram
october 2011
With more than 25 photos & 90 likes every second, we store a lot of data here at Instagram. To make sure all of our important data fits into memory and is available quickly for our users, we’ve begun to shard our data—in other words, place the data in many smaller buckets, each holding a part of the data.
architecture
database
uuid
instagram
october 2011
mysql - Speeding up conversion from MyISAM to InnoDB - Stack Overflow
september 2011
I have a MySQL 1.5 GB MyISAM-table (1.0 GB data, 0.5 GB indexes) in production which I'm about to convert into InnoDB.
Since the table is used in production I'd like to make the downtime as short as possible.
mysql
myisam
innodb
Since the table is used in production I'd like to make the downtime as short as possible.
september 2011
Cube
september 2011
Cube is an open-source system for visualizing time series data, built on MongoDB, Node and D3. If you send Cube timestamped events (with optional structured data), you can easily build realtime visualizations of aggregate metrics for internal dashboards.
cube
graph
visualization
september 2011
Space Camera Live 1
With this launch, we have made the largest, highest, fastest images ever sent from the stratosphere by amateurs, with 10mW of radio power - as much as a single LED. We had two payloads attached to a weather balloon, and reached 36km altitude. We sent out and received live images as it was flying, plus GPS information, that everyone could receive and automatically post online for everyone to see - in real time!
All scripts, PCB designs, etc, are all available for you under a creative commons licence. I’ll be posting those later.
september 2011
All scripts, PCB designs, etc, are all available for you under a creative commons licence. I’ll be posting those later.
xdissent/ievms - GitHub
august 2011
Automated installation of the Microsoft IE App Compat virtual machines
ie
microsoft
august 2011
Requests: HTTP for Humans — Requests v0.6.1 documentation
august 2011
Requests is an ISC Licensed HTTP library, written in Python, for human beings.
Most existing Python modules for sending HTTP requests are extremely verbose and cumbersome. Python’s builtin urllib2 module provides most of the HTTP capabilities you should need, but the api is thoroughly broken. It requires an enormous amount of work (even method overrides) to perform the simplest of tasks.
Things shouldn’t be this way. Not in Python.
python
http
library
Most existing Python modules for sending HTTP requests are extremely verbose and cumbersome. Python’s builtin urllib2 module provides most of the HTTP capabilities you should need, but the api is thoroughly broken. It requires an enormous amount of work (even method overrides) to perform the simplest of tasks.
Things shouldn’t be this way. Not in Python.
august 2011
Netcat cheat sheet | Ack Ack
july 2011
Netcat, also known as the Swiss-army knife for TCP/IP is capable of so many wonderful tasks, many people only know a partial amount of the features so I made a special cheat sheet for all the basic and more advanced features it supports.
cheatsheet
network
networking
netcat
july 2011
localtunnel: instantly show localhost to the rest of the world
june 2011
The easiest way to share localhost web servers to the rest of the world
programming
proxy
server
ssh
june 2011
Welcome to the httperf homepage
june 2011
Httperf is a tool for measuring web server performance. It provides a flexible facility for generating various HTTP workloads and for measuring server performance. The focus of httperf is not on implementing one particular benchmark but on providing a robust, high-performance tool that facilitates the construction of both micro- and macro-level benchmarks. The three distinguishing characteristics of httperf are its robustness, which includes the ability to generate and sustain server overload, support for the HTTP/1.1 and SSL protocols, and its extensibility to new workload generators and performance measurements.
http
performance
testing
web
june 2011
FunkLoad documentation contents — FunkLoad v1.15.0 documentation
june 2011
This document describes the usage of the FunkLoad tool. This tool enables to do functional and load testing of web application.
performance
testing
tools
web
june 2011
A snap-together Arduino-powered desktop CNC milling machine.
may 2011
Jonathan Ward from the MIT Center for Bits and Atoms has designed a snap-together, desktop-sized CNC milling machine. The MTM Snap (part of the Machines that Make project) is made from 1/2-inch high-density polyethylene (HDPE) – itself milled on a ShopBot – and can be assembled for about $700. This three-axis CNC machine can mill circuit boards, wax molds, and harder materials in a 5x3x1.75″ working area.
arduino
cnc
may 2011
Gluonpilot
may 2011
Gluonpilot is an open source effort to create an affordable, easy-to-use and easy-to-adapt autopilot. It's an all-in-one IMU-based module, which means that you only need 1 PCB board!
uav
may 2011
brain - javascript neural networks and classifiers
may 2011
brain is a JavaScript library for neural networks and Bayesian classifiers. An example use of the neural network, giving a color a label based on its rgb values:
javascript
neuralnet
neural
redis
may 2011
Install a New Fold Down Top
may 2011
The task of installing a new top on your car may be daunting to many. I decided to give it a try because I need to uphold my ranking in the "we tight" Spridgets club! On top of that, I just hate paying someone else to do something that I should be capable of doing.
mg
hood
install
may 2011
boxedice/python-daemon - GitHub
april 2011
Python daemonizer class
This is a Python class that will daemonize your Python script so it can continue running in the background. It works on Unix, Linux and OS X, creates a PID file and has standard commands (start, stop, restart) + a foreground mode.
python
daemon
This is a Python class that will daemonize your Python script so it can continue running in the background. It works on Unix, Linux and OS X, creates a PID file and has standard commands (start, stop, restart) + a foreground mode.
april 2011
googlecl - Command line tools for the Google Data APIs - Google Project Hosting
april 2011
Command line tools for the Google Data APIs
cli
google
april 2011
Interesting 2011 - Eventbrite
Interesting 2011
Saturday, June 18, 2011 from 10:00 AM - 5:00 PM (GMT)
London, Greater London
april 2011
Saturday, June 18, 2011 from 10:00 AM - 5:00 PM (GMT)
London, Greater London
davetroy/geohash-js - GitHub
april 2011
38.897, -77.036 Using the geohash algorithm, this latitude and longitude is converted to: dqcjqcp84c6e A simple bounding box around this point could be described by truncating this geohash to: dqcjqc However, 'dqcjqcp84c6e' is not centered inside 'dqcjqc', and searching within 'dqcjqc' may miss some desired targets. So instead, we can use the mathematical properties of the Geohash to quickly calculate the neighbors of 'dqcjqc'; we find that they are: 'dqcjqf','dqcjqb','dqcjr1','dqcjq9','dqcjqd','dqcjr4','dqcjr0','dqcjq8' This gives us a bounding box around 'dqcjqcp84c6e' roughly 2km x 1.5km and allows for a database search on just 9 keys: SELECT * FROM table WHERE LEFT(geohash,6) IN ('dqcjqc', 'dqcjqf','dqcjqb','dqcjr1','dqcjq9','dqcjqd','dqcjr4','dqcjr0','dqcjq8'
geohash
js
april 2011
The Technium: Bicycle Haiku
april 2011
In 1979 I rode my cheap bicycle from San Francisco to New York, with detours up to Oregon and down to Texas along the way. It took me three months of leisurely riding, with no training up front. I think I spent $500 for the whole trip. It was of course, a blazingly glorious journey, and not that hard. My rule of thumb was to never pass on opportunity to snack along the way, mostly as an excuse to stop and chat with whomever was around. I burned through a lot of junk food, but learned a lot about the US.
bicycle
tour
us
april 2011
speedlimit
april 2011
speedlimit is a Leopard preference pane for limiting your network bandwidth to one of a couple different speeds—768k DSL, Edge, 3G, and Dialup. This is really handy for testing your iPhone app under normal Edge network conditions in the iPhone Simulator. The new version allows you to restrict the slowdown to only a specific set of hosts.
development
iphone
network
april 2011
Up and Running with Node.js
april 2011
Up and Running with Node.js
book
javascript
node
reference
nodejs
april 2011
ded/qwery - GitHub
april 2011
Qwery is a 1k blazing fast query selector engine allowing you to select elements with CSS1 & CSS2 selectors (including attribute selectors). And according to our benchmarks Qwery is 2x faster (at minimum on average) than Sizzle (from jQuery).
javascript
selectors
qwery
april 2011
nobody cares: 10.4 + nginx + php on socket
march 2011
This procedure explains how to enable Nginx PHP services (php-cgi) in Ubuntu (>=9.10), by using a simple upstart file to start and keep up php-cgi support (runing in external FASTCGI Mode).
Tested on Ubuntu 10.4
fastcgi
nginx
php
upstart
Tested on Ubuntu 10.4
march 2011
php-fpm start|stop|restart problem
march 2011
In case anyone else wants to know exactly how to get the startup
script working, I reproduce my steps below...
php-fpm
start
stop
script working, I reproduce my steps below...
march 2011
Open Source Ampersands
march 2011
This is a selection of single-character fonts. A single-character font is, literally, a font file that only contains glyphs for a single character. The single character in these font files is the ampersand.
Each ampersand on this page is real text, not an image. Just like any text, you can select it, copy it, paste it, and apply CSS to it. The ampersands scale as you zoom the page, and they work in virtually every browser — even ancient versions of Internet Explorer.
design
fonts
ampersand
Each ampersand on this page is real text, not an image. Just like any text, you can select it, copy it, paste it, and apply CSS to it. The ampersands scale as you zoom the page, and they work in virtually every browser — even ancient versions of Internet Explorer.
march 2011
nikhilm's gist: 374881 — Gist
march 2011
A simple example of an IM client implemented using
Redis PUB/SUB commands so that all the communication
is offloaded to Redis, and the node.js code only
handles command interpretation,presentation and subscribing.
redis
chat
node.js
Redis PUB/SUB commands so that all the communication
is offloaded to Redis, and the node.js code only
handles command interpretation,presentation and subscribing.
march 2011
process - Node.js Manual & Documentation
march 2011
process.argv
An array containing the command line arguments. The first element will be 'node', the second element will be the name of the JavaScript file. The next elements will be any additional command line arguments.
node
arguments
cli
An array containing the command line arguments. The first element will be 'node', the second element will be the name of the JavaScript file. The next elements will be any additional command line arguments.
march 2011
6. Modules — Python v2.7.1 documentation
march 2011
Modules packages and classes in Python
python
module
package
class
march 2011
Tornado Web Server Documentation
march 2011
FriendFeed's web server is a relatively simple, non-blocking web server written in Python. The FriendFeed application is written using a web framework that looks a bit like web.py or Google's webapp, but with additional tools and optimizations to take advantage of the non-blocking web server and tools.
python
web
server
tornado
march 2011
Pattern | CLiPS
march 2011
Pattern is a web mining module for the Python programming language.
It bundles tools for data retrieval (Google + Twitter + Wikipedia API, web spider, HTML DOM parser), text analysis (rule-based shallow parser, WordNet interface, syntactical + semantical n-gram search algorithm, tf-idf + cosine similarity + LSA metrics) and data visualization (graph networks).
python
data
mining
It bundles tools for data retrieval (Google + Twitter + Wikipedia API, web spider, HTML DOM parser), text analysis (rule-based shallow parser, WordNet interface, syntactical + semantical n-gram search algorithm, tf-idf + cosine similarity + LSA metrics) and data visualization (graph networks).
march 2011
HTML/CSS to PDF converter written in Python - HTML2PDF Converter
february 2011
XHTML2PDF is a converter for HTML/XHTML and CSS to PDF and a Python package.
html
pdf
february 2011
using Cacti to monitor a large scale infrastructure in Amazon's EC2 | Vim-Fu
february 2011
using Cacti to monitor a large scale infrastructure in Amazon’s EC2
amazon
ec2
monitoring
php
cacti
february 2011
37signals
555
6music
account
activemq
airport
ajax
algorithm
amazon
apache
api
app
apple
apps
architecture
arduino
art
article
audio
authentication
autopilot
avatar
aws
backup
balloon
balloons
bank
bash
battery
bbauth
bbc
beef
billing
blog
book
books
bose
bot
brain
bread
brilliant
browser
business
cable
cache
caching
calendar
camera
canonical
canvas
capistrano
card
cassandra
chair
chart
chat
cheatsheet
class
cli
clock
cloud
club
cluster
cms
cocoa
code
color
colour
comet
command
commands
computer
computing
connect
content
control
convert
cooking
cool
creditcard
csrf
css
cURL
currentcost
daemon
data
database
dbslayer
death
debian
debugging
delay
delete
deploy
deployment
design
details
development
distance
diy
documentation
dom
download
draganddrop
ebs
ec2
ecommerce
edit
editor
electronic
electronics
email
embed
Embedded
encoding
engine
etsy
extension
extensions
facebook
faq
fastcgi
feed
file
filter
finance
Firefox
fish
flash
flickr
flyers
font
fonts
food
foodblog
forms
fps
free
freelance
freeware
fun
gateway
gcal
GD
gearman
generator
geo
geocoding
geohash
gis
git
github
gmail
google
googleearth
googlemaps
gps
graph
graphics
graphs
gtd
guardian
guide
hacking
hacks
hardware
haversine
health
hex
history
hood
hosting
howto
htaccess
html
html5
http
https
i18n
icons
identity
ie
image
images
install
interface
internet
investing
iphone
ipod
irc
itunes
japanese
javascript
jquery
js
json
kalman
kiosk
langoustines
language
lastfm
latitude
layout
leeds
library
line
linux
list
local
location
login
london
longitude
mac
macbook
mail
make
manual
map
mapping
maps
marketing
math
maths
media
memcache
memcached
merchant
messaging
meteorological
mexicanpictures
mg
microcontroller
microformats
microsoft
mobile
mod_rewrite
modestmaps
monitoring
moo.fx
moofx
mootools
mp3
mqtt
music
mysql
network
networking
news
nginx
node
node.js
nokia
nowplaying
nunchuck
oauth
objective-c
objects
olympics
openid
opensource
osx
outlook
panel
paper
payment
paypal
pdf
pear
performance
perl
phone
photo
photography
photos
photoshop
php
php-fpm
php5
physics
pid
plan
Player
plugin
plugins
podcasts
poker
polling
post
postcode
postcodes
power
printing
processing
productivity
programming
progress
project
projects
protocol
proxy
puppet
push
Python
quantum
queue
quotes
rabbitmq
radio
rails
raul
recipe
recipes
redis
reference
regex
remote
REST
rfid
robotics
robots
rocketry
ruby
rubyonrails
s3
scalability
scaling
scalr
science
scm
screensaver
Script
scripting
Scripts
seafood
search
security
select
sensor
sensors
server
shell
shield
shopping
sleep
slider
sms
snow
social
software
solar
sounddock
soup
space
sphinx
sql
ssh
star
statistics
stats
stomp
storage
stream
subversion
svn
swfupload
sync
sysadmin
tag
tagging
tags
tech
techniques
technology
temperature
test
testing
text
textarea
textile
thermopiles
tibet
tikitag
timer
timezone
tips
Tool
tools
top
tornado
tracking
train
travel
tutorial
tutorials
tv
twitter
typography
UAV
ubuntu
uk
ukhas
unicode
unix
upload
upstart
url
urls
usb
useful
utf-8
utilities
v8
validation
velib
versioncontrol
video
visualization
weather
web
web2.0
webapp
webdesign
webdev
webservices
websockets
wii
windows
wireless
writing
wysiwyg
xhtml
xml
xmpp
Yahoo