-
Interrupted Time
“Software engineers need long stretches of uninterrupted time to get anymeaningful work done.”I see tweets like thi...
-
Distributed Systems Notes
I came across some unfamiliar terms and ideas when I read and wroteabout a paper called Efficient LeaderElection in C...
-
Efficient Leader Election in Complete Networks
The paper Efficient Leader Election in CompleteNetworks describesan algorithm with a time and message complexity line...
-
Software Designs and Essay Outlines
The other day I noticed how software designs and essay outlines are similar.You get to notice these similarities if y...
-
Avoid Negative Variable Names
Avoid negative variable names. They make code harder to read.(Related: –noooooooooooooooooo)A negative variable name ...
-
The Elements of Computing Systems: Drawing Pixels on the Screen
Like I said in my post about memory management on the Jackplatform, I love this book.The Elements of Computing Syst...
-
The Elements of Computing Systems: Memory Management in Jack
I love this book.The Elements of Computing Systems has you build a computer from scratch. By theend you build a pla...
-
--noooooooooooooooooo
Ruby’s OptionParser surprised me the other day.Say you want to make a CLI in Ruby. Ruby comes with an OptionParser an...
-
A Tip for Testing the Speed of User Interactions in Your Javascript App
At least one layout(reflow)should occur for every user interaction. Ensure this by triggering userevents in your test...
-
A Lispy Calculator with Bison
Bison is a parser generator that’s backwards compatable withyacc. You give it a lexer anda grammar in a .y file, and ...
-
A Functional Implementation of an Abstract Development Server
Let's implement an abstract development server in Haskell.
-
Designing an Abstract Development Server
Let's design an abstract development server that works for any compiled language.
-
An Abstraction For Currying In Ruby
This post works towards an abstraction for currying in Ruby. It begins with an illustration of currying with pseudoco...