As I surveyed my requirements, I realized that what I most wanted was for a subroutine to be able to pause in the middle and resume sometime later -- maybe even after a reboot of the whole program. Was that so much to ask?The answer to this question took me on a strange journey via coroutines, CPS t
The eatabit.com blogWe have been running eatabit.com here in Charleston, SC for about a year now. Over that time, our cellular printing api has printed over 9300 food orders for our client restaurants, stadiums and golf courses.
Little-endian vs. big-endianAdditional cache coherency/lock-free posts are still in the pipe, I just haven’t gotten around to writing much lately. In the meantime, here’s a quick post on something else: little-endian (LE) vs. big-endian (BE) and some of the trade-offs involved.
It's hard to test software: even simple software!But that's not all that's difficult about it. Though it's a simple game that can be implemented in one line of BBC BASIC, it's complex enough to be really hard to thoroughly test.
The Network is Reliable"The network is reliable" tops Peter Deutsch's classic list, "Eight fallacies of distributed computing" (https://blogs.oracle.com/jag/resource/Fallacies.html), "all [of which] prove to be false in the long run and all [of which] cause big trouble and painful learning experiences.
Facebook's software architectureFacebook uses simple architecture that gets things done. Papers from Facebook are refreshingly simple, and I like reading these papers. Two more Facebook papers appeared recently, and I briefly summarize them below.
Violating the “smart enum” pattern in C#For a while now, I’ve been a big fan of a pattern in C# which mimics Java enums to a certain extent. In general, it’s a lovely pattern. Only after reading a comment on a recent blog post by Eric Lippert did I find out about a horrible flaw. Dubious thanks to John Payson for prompting this post.
Programmer’s dilemmaRecently I interviewed tens of candidates for a kernel programmer’s position. These candidates are from big, good companies, which are famous for chips or embedded OS/systems. Many of them claimed they have at least 10 years on-job experience on kernel.
Performance Tuning ~ Writing an EssaySkip to the meaty bits. My work at AppNexus mostly involves performance optimisation, at any level from microarchitecture-driven improvements to data layout and assembly code to improving the responsiveness of our distributed system under load.
Synchronization SpeedupificationWhen we designed our synchronization protocol way back in 2007, we wanted to make sure that a client could use a minimal number of network requests to find all of the content in the user’s account, or only of the relevant changes since the last sync.
This Read-It-Later-list is just that, bookmarks of stuff I intend to read or have read. I do not necessarily agree with opinions or statements in the bookmarked articles.
This list is compiled from my Pocket list.