Clojure: All grown up
I'm a Product Manager at Google. I use data and UX to drive great products. And it turns out—the toughest problems are won in translation.
Web Scraping 101 with Python
A beginner's guide to getting started with web scraping using Python and BeautifulSoup.
Less is exponentially more (2012)
Here is the text of the talk I gave at the Go SF meeting in June, 2012. This is a personal talk. I do not speak for anyone else on the Go...
Rewriting a large production system in Go
My team at Google is wrapping up an effort to rewrite a large production system (almost) entirely in Go . I say "almost" because one compon...
Write More Classes
Furthermore I am of the oppinion that Python developers should write more classes.
Tetris Printer Algorithm
By rotating, positioning and dropping a predetermined sequence of pieces, the Tetris Printer Algorithm exploits the mechanics of Tetris to generate arbitrary bitmap images.
Memorizing a programing language using spaced repetition software
Derek Sivers official site. Thoughts on philosophy, culture, self-improvement. Author of Useful Not True, How to Live, Hell Yeah or No, Anything You Want.
Node.js Tools for Visual Studio
Just when you thought it couldn't be crazier in Redmond, today they are ...
An Efficient Way to Extract the Main Topics from a Sentence
Last week, while working on new features for our product, I had to find a quick and efficient way to extract the main topics/objects from a sentence. Since I’m using Python, I initially thoug…
Basics of Neural Networks with example codes and illustrations
I began with inanimate objects living in a world of forces, and I gave them desires, autonomy, and the ability to take action according to a system of
Things that suck in AngularJS
Every once in a while, I find that someone is interested in AngularJS, but not sure if they should stick to their jQuery comfort zone or mak...
Asm.js: The JavaScript Compile Target
Like many developers I’ve been excited by the promise of Asm.js . Reading the recent news that Asm.js is now in Firefox nightly is what got my interest going. There’s also been a massive surge in interest after Mozilla and Epic announced ( mirror ) that they had ported Unreal Engine 3 to Asm.js – and that it ran…
How to work with Software Engineers
Ken Norton is an executive coach, writer, and speaker. Bring the Donuts is the home for his essays on product management and product leadership.
How I made an Android game from scratch in 23 days
Drone Invaders - a space shootem up with retro graphics and modern gameplay
Baby's First Garbage Collector
When I get stressed out and have too much to do, I have this paradoxical reaction where I escape from that by coming up with another thing to do. Usually it’s a tiny self-contained program that I can write and finish.
PostgreSQL Basics by Example
Connecting to a database 1 2 $ psql postgres # the default database $ psql database_name Connecting as a specific user 1 2 $ psql postgres john $ …
How I Got a 2x Speedup With One Line of Code
If you had asked me whether or not it was possible to get a 2x speedup for my LazySorted project by adding a single line of code, I would have told you "No way, substantial speedups can really only come from algorithm changes." But surprisingly, I was able to do so by adding a single line using the __builtin_prefetch…
Computer Science in Vietnam
During my recent trip to Vietnam I took the opportunity to visit some schools and see how computer science was taught there. Officially, foreigners require permission from the department of education to enter schools. But it's much simpler (and the results are more representative) to simply show up unannounced. A…
Do call yourself a programmer, and other career advice
This is a (very late) reply to Patrick McKenzie's " Don't Call Yourself A Programmer, And Other Career Advice ". I find much of his advice very sensible, and it might be very helpful to someone in the beginning of their career – assuming they can act upon it (and I really don't know whether my 20-year-old self could…
Why there is no Hitchhiker’s Guide to Mathematics for Programmers
For those who aren’t regular readers: as a followup to this post, there are four posts detailing the basic four methods of proof, with intentions to detail some more advanced proof techniques in the future. You can find them on this blog’s primers page. Do you really want to get better at mathematics? Remember when…
Some Notes About Time
This is a trade-off: you can't represent a leap second, and your time is guaranteed to go backwards. On the other hand, every day has exactly 86,400 seconds, and you don't need a table of all previous and future leap seconds in order to format Unix time as human-preferred hours-minutes-seconds.