Understanding Ruby Blocks, Procs and Lambdas
Robert leads large and complex firms through mission-critical Digital Transformations with a focus on Artificial Intelligence and Cloud Engineering. As a Presidential Innovation Fellow at Barack Obama's White House , Robert reformed digital services across the Federal Government, resulting in millions of veterans…
On Python packaging
So currently there's a bit of a to-do involving Debian's Ruby packaging team and the Ruby "gem" system. [This document](http://pkg-ruby-extras.alioth.debian.org/rubygems.html) …
HTTP Conversation Codes
I mapped HTTP status codes to workplace conversation snippets. "404: I have no idea what you're talking about." "502: Bob is refusing to work with me on this." Now available as a poster. Note how the spec reveals programmers always blame the client.
The Perils of JavaSchools
Lazy kids. Whatever happened to hard work? A sure sign of my descent into senility is bitchin’ and moanin’ about “kids these days,” and how they won’t or can’t d…
gorilla arm
The side-effect that destroyed touch-screens as a mainstream input technology despite a promising start in the early 1980s. It seems the designers of all those spiffy touch-menu systems failed to notice that humans aren't designed to hold their arms in front of their faces making small motions. After more than a very…
"The Use of Knowledge in Society"
Snippet: What is the problem we wish to solve when we try to construct a rational economic order? On certain familiar assumptions the answer is simple enough. If we possess all the relevant information, if we can start out from a given system of preferences, and if we command complete knowledge of available means, the…
Top Down Operator Precedence
Vaughan Pratt presented "Top Down Operator Precedence" at the first annual Principles of Programming Languages Symposium in Boston in 1973. In the paper Pratt described a parsing technique that combines the best properties of Recursive Descent and Floyd 's Operator Precedence. It is easy to use. It feels a lot like…
the Lemacs/FSFmacs schism
In 1991, I was working at Lucid Inc., and our newest product, Energize, was an integrated development environment for C and C++ on Unix. The design of this development environment involved very tight integration between the various tools: compilers, linkers, debuggers, graphers, and editors. So of course we needed a…
Netflix Update: Try This at Home
Ok, so here's where I tell all about how I (now we) got to be tied for third place on the netflix prize . And I don't mean a sordid tale of computing in the jungle, but rather the actual math and methods. So yes, after reading this post, you too should be able to rank in the top ten or so.
PEP 20 – The Zen of Python
Long time Pythoneer Tim Peters succinctly channels the BDFL’s guiding principles for Python’s design into 20 aphorisms, only 19 of which have been written down.
Rees Re: OO
(Jonathan Rees had a really interesting response to Why Arc isn't Especially Object-Oriented , which he has allowed me to reproduce here.) Here is an a la carte menu of features or properties that are related to these terms; I have heard OO defined to be many different subsets of this list.
Finding Great Developers
Where are all those great developers? The first time you try to fill an open position, if you’re like most people, you place some ads, maybe browse around the large online boards, and get a ton of …
SHA-1 Broken
SHA-1 has been broken. Not a reduced-round version. Not a simplified version. The real thing. The research team of Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu (mostly from Shandong University in China) have been quietly circulating a paper describing their results: collisions in the the full SHA-1 in 2**69 hash…
Raw Thought: Aaron Swartz's Weblog
As we’ve discussed, in Batman Begins 1960s-style full employment and antipoverty programs lead to skyrocketing crime while in The Dark Knight Rises 1980s-style tough-on-crime policies and neoliberal economics lead to a revolt of the economic underclass. The films are mirror images, one about the failure of liberal…
1,000 True Fans
This is an edited, updated version of an essay I wrote in 2008 when this now popular idea was embryonic and ragged. I recently rewrote it to convey the core ideas, minus out-of-date details. This revisited essay appears in Tim … Continue reading →
PEP 3131 – Supporting Non-ASCII Identifiers
This PEP suggests to support non-ASCII letters (such as accented characters, Cyrillic, Greek, Kanji, etc.) in Python identifiers.
PEP 3113 – Removal of Tuple Parameter Unpacking
Tuple parameter unpacking is the use of a tuple as a parameter in a function signature so as to have a sequence argument automatically unpacked. An example is:
A Million-user Comet Application with Mochiweb, Part 1
In this series I will detail what I found out empirically about how mochiweb performs with lots of open connections, and show how to build a comet application using mochiweb, where each mochiweb connection is registered with a router which dispatches messages to various users. We end up with a working application that…
The Tao Of Programming
Last substantive modification 1996-04-10 or earlier; Kragen link updated 2016-11-30
Programmer Dvorak
As a computer professional, you've probably done some typing over the years. A lot of typing. And your hands don't always love you for it. If you are concerned about catching the carpal tunnel syndrome, you should be looking into Dvorak keyboards. They have been designed to minimize the finger movement for the most…
[Moz Ranking Factors] Ranking Factors Home
Every two years, Moz surveys the opinions of dozens of the world's brightest search marketers and runs correlation studies to better understand the workings of search engine algorithms. We gather this data to gain insight into the factors that may help—or hurt—a website's visibility in search engines.
Advice for Computer Science College Students
Despite the fact that it was only a year or two ago that I was blubbering about how rich Windows GUI clients were the wave of the future, college students nonetheless do occasionally email me askin…