Using unix as your IDE
This series has been independently translated into Chinese , Russian , Turkish , and Korean , and formatted as an ebook .
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 2,232 posts.
This series has been independently translated into Chinese , Russian , Turkish , and Korean , and formatted as an ebook .
When I teach courses on Python for scientific computing, I make this point very early in the course, and tell the students why: it boils down to Python being a dynamically typed, interpreted language, where values are stored not in dense buffers but in scattered objects. And then I talk about how to get around this by…
This article explains how to correctly handle filenames in Bourne shells (the primary shell of Unix/Linux/POSIX systems), based on the issues discussed in 'Fixing Unix/Linux/Filenames'. Many programs fail to work properly on filenames that include spaces, begin with dash (-), include newlines, and so on, because…
Personal website of Fernando Borretti.
A sad example of how easy it is to dismiss certain design principles because it does not seem relevant at the time.
Have you ever had a unique approach to a problem and been excited to use it, but you're met with skepticism? Today's story: what happens if you take someone who's passionate about LISP and put them in an organization where that's just not how they write software. Today's story is about getting LISP into space. The…
I wrote this while I was at PyCon, but I kept revising it. Anyway, here goes. :) As is apparent by now, no one has really been doing any ...
This paper appeared in Communications of the ACM in April 1960. It is the original paper on Lisp.
This document is an attempt to be a fairly comprehensive guide to recovering from what you did not mean to do when using git. It isn't that git is so complicated that you need a large document to take care of your particular problem, it is more that the set of things that you might have done is so large that different…
The size of binaries in the Nim programming language seems to be a popular topic recently . Nim’s slogan is expressive, efficient, elegant , so let’s examine the efficient part in this post by exploring a few ways to reduce the size of a simple Nim Hello World binary on Linux. Along the way we will:
“If you don’t know how compilers work, then you don’t know how computers work. If you’re not 100% sure whether you know how compilers work, then you don’t know how they work.” — Steve Yegge There you have it. Think about it. It doesn’t really matter …
Update: This post got a sequel, Breaking our latin-1 assumptions. I’ve seen misconceptions about Unicode crop up regularly in posts discussing it. …
git , Single page HTML , Kindle .mobi , PDF , .epub , HTML for printing , book cover .
Almost exactly a year ago, Google made one of the most remarkable press releases in the Web 2.0 era. Of course, by "press release", I actually mean keynote at their own conference, and by "remarkable" I mean potentially-transformative and groundbreaking. I am referring of course to the announcement of Google Wave , a…
This post is about uninitialized memory, but also about the semantics of highly optimized “low-level” languages in general. I will try to convince you that reasoning by “what the hardware d...
OCRed and HTMLed by Ed Thelen from a very poor copy provided by "anonymous" - Click for operational characteristics of the processors for the Burroughs B5000 - 5 MByte .pdf
These are by no means all the reasons why your JavaScript might fail to run even when you expected it to. Andy Bell has a great list over at piccalil.li of a handful of very realistic reasons JavaScript won’t be available . Check ’em out, and be prepared.
Originally published on CodeGangsta on May 19, 2014. Restored here to preserve the legacy Martini/Golang archive. It’s never easy to take honest criticism, especially when the target of the criticism…
“Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.” — Stan Kelly-Bootle
Say you’re making a basic scatterplot using D3 , and you need to create some SVG circle elements to visualize your data. You may be surprised to discover that D3 has no primitive for creating multiple DOM elements. Wait, WAT?
A young man comes to town. He is reasonably good looking, has a little money in his pocket. He finds it easy to talk to women. He doesn’t speak much about his past, but it is clear that he sp…
One of the least well known, and therefore least used, features of many terminal emulators is bracketed paste mode . When you are in bracketed paste mode and you paste into your terminal the content will be wrapped by the sequences \e[200~ and \e[201~ .