New
The latest blog posts to take off on Hacker News. 21,842 posts.
Functional programming explained in Clojure with a terminal-based game
So far, you’ve focused on becoming famil iar with the tools that Clojure provides: immutable data structures, functions, abstractions, and so on. In this chapter, you’ll learn how to think about your programming tasks in a way that makes the best use of those tools. You’ll begin integrating your experience into a new…
OS X Command Line Utilities
The OS X Terminal opens up a world of powerful UNIX utilities and scripts. If you’re migrating from Linux, you’ll find many familiar commands work the way you expect. But power users often aren’t aware that OS X comes with a number of its own text-based utilities not found on any other operating system. Learning about…
Articles Every Programmer Should Read
A blog about Java, Programming, Algorithms, Data Structure, SQL, Linux, Database, Interview questions, and my personal experience.
Metaprogramming for madmen
This post is part of the series “Debris: Opening the box”. Okay, previous posts from this series aimed to actually convey useful technical information: assuming you actually want to wri…
Computers are fast
Computers are *fast*!
PHP: a fractal of bad design
(This article has been translated into Spanish (PDF, with some additions) by Jorge Amado Soria Ramirez — thanks!) Preface I’m cranky. I complain about a lot of things. There’s a lot in the world of technology I don’t like, and that’s really to be expected—programming is a hilariously young discipline, and none of us
The Truth on OpenGL Driver Quality
The driver landscape is something that any practicing GL dev must face unless you like having only a fraction of potential customers able t...
Introducing ASP.NET vNext
There’s some really cool stuff going on on the ASP.NET and Web Tools team. The ...
Unicode in Python 3
A list of things about unicode on Linux and Python 3 you really did not want to know.
What's wrong with systemd
So many weird little demands on time, mostly spinning out of the Signal groups set up to counter ICE and now being used for general community stuff.
Cdb: a fast, reliable, simple package for creating, reading constant databases
Packages that need to read cdb files should incorporate the necessary portions of the cdb library rather than relying on an external cdb library.
Extension Points, or how OCaml is becoming more like Lisp
(OCaml 4.02 is entering a feature freeze, which makes it a good time to stop and take a look at what to expect for this release. This is the first of a few b...
Hybrid sweet spot: Native navigation, web content
When we launched the iPhone version of Basecamp in February of last year, it was after many rounds of experimentation on the architectural direction. The default route suggested by most when we got started back in early/mid-2012 was simple enough: Everything Be Native! This was a sensible recomm…
Architecture of a Real World Haskell Application
There were numerous posts on reddit, SO and the like which were asking for how to architect real world Haskell applications. Well, this is my go at it for an in-house testing tool which is used extensively. I would not claim myself an advanced Haskeller, some of the code is probably not idiomatic Haskell (and also…
Working on The Witness, Part 1 (2012)
Mapping the walkable surfaces on the island of The Witness as a step toward bulletproofing the player movement code.
I don't love the single responsibility principle
Did you ever happen to disagree with a colleague on the single responsibility principle and its application? Let's try to understand why that could be the case.
Rust for C++ programmers – part 5: borrowed references
In the last post I introduced unique pointers. This time I will talk about another kind of pointer which is much more common in most Rust p...
PyPy.js: Now faster than CPython
OK OK, I couldn't resist that title but it probably goes a bit far. Let me try for a little more nuance:
Atom Is Now Open Source
We are archiving Atom and all projects under the Atom organization for an official sunset on December 15, 2022.
Fat JSON
Most server-side APIs these days are JSON-over-HTTP. Developers are generally comfy with this, but I notice when I look at the JSON that it’s often, uh, what’s the tactful term these days? Let’s say “generously proportioned”. And I see clumsy code being written to walk through it. The options for dealing with this are…
Minimum Viable Block Chain
Block chain is agnostic of any 'currency' and it can (and will) be adapted to power many other use cases. This is a ground up explanation of why the particular pieces (digital signatures, proof-of-work, transaction blocks) are needed, and how they all come together to form the minimum viable block chain with all of…