Embrace technical debt
Financial debt plays an important and positive role in our economy under normal conditions. Yet, especially in times like these, it’s easy t...
A Square Is Not A Rectangle
The following example, taken from an introductory text in object oriented programming, demonstrates a common flaw in object oriented design. Can you spot it?
Writing a compiler in Python using Lex, Yacc and LLVM
I found a good post on how to build your own toy compiler using Flex, Bison and LLVM. I saw one disadvantage right in the beginning: you had to use C++. If I w…
Rails versus Django
Stress free and easy shopping experience. Simple and speedy service.
Why I still prefer Prototype to jQuery
Like most programmers who’ve done Rails development, I’ve become very familiar with the Prototype library for JavaScript. Even apart from being b...
100,000 tasklets: Stackless and Go
I made a mistake when first publishing this and used the wrong date. Now that I've fixed it you'll have to go to the correct page to see it.
Patch to fix RSS feed for News.YC
I’m an avid reader of news.yc , but it’s annoyed me for some time that the RSS feed is rather broken. So, I decided to dust off my Lisp skills and give it a go. The biggest chunk was adding code to do conversion from UNIX timestamps to UTC in Arc. Significant stuff that works now:
Wolfenstein 3D for iPhone engine code review
For once, developers were able to read the source code of an id software product just a few days after its release. I spent a week in my spare time reading the internal of the Wolfenstein 3D for iPhone engine. It is by far the cleanest and easiest id source code release to date. This review is far from being…
Feynman, Challenger Disaster, and Software Engineering
On January 28th, 1986, Space Shuttle Challenger was launched at 11:38am on the 6-day STS-51-L mission. During the first 3 seconds of liftoff the o-rings (o-shaped loops used to connect two cylinders
Clojure: Genetic Mona Lisa problem in 250 beautiful lines
Clojure is surrounded by hype these days. The word on the streets is that Clojure is the Next Big Thing. It has access to the largest libra...
The Rails 3 router: Rack it up
In my previous post about generic actions in Rails 3, I made reference to significant improvements in the router. Some of those have been covered on other blogs [http://rizwanreza.com/2009/12/20/revamped-routes-in-rails-3], but the full scope of the improvements hasn't yet been
Bram Cohen: Comments on Go
Here are my preliminary thoughts on the Go programming language. The most interesting feature for me personally is the built-in threading. Aside from its superb support for multi-core, it's just plain a good set of ways of doing networking. The lack of a decent built-in networking library (and…
Scott Hanselman's 2009 Ultimate Developer and Power Users Tool List for Windows
TAX DEDUCTIBLE DONATIONS: If you enjoyed this post, or this blog, please make a ...
Using /usr/local
Technologist, podcaster, and inventor. Founder of the 5by5 podcast network and Fireside.
Unacceptable Browser HTTP Accept Headers (Yes, You Safari and Internet Explorer)
When browsers make requests they send headers. The Accept header tells the server what file formats the browser is looking for and can understand.
Creative anti-debugger technique in Spotify for Windows
Spotify for Windows contains code so awesome that OllyDbg can't look at it without crashing.