Reading Lamport, again
We’ve just kicked off an internal distributed-systems seminar. Our inaugral paper was Lamport’s classic “Time, Clocks and the Ordering of Events in a Distrib...
Topics /
The most popular blog posts about software engineering on Hacker News. 21,844 posts.
We’ve just kicked off an internal distributed-systems seminar. Our inaugral paper was Lamport’s classic “Time, Clocks and the Ordering of Events in a Distrib...
Deploying modern web apps – with all the provisions needed to be fast and secure while easily updateable – has become so hard that many developers don’t dare do it without a PaaS (platform-as-a-service). But that’s ridiculous. Nobody should have to pay orders of magnitude more for basic computing just to make…
My GPU is the integrated Radeon Vega 8 that comes with my AMD Ryzen 7 5700G CPU. I tell you this so you know that my workstation is not a graphical computing powerhouse. It is, in fact, quite weak. To its credit my integrated GPU shows up as 48% faster on UserBenchmark than the GPU in my low end hardware target; a…
I recently spent some time going through the amazing nand2tetris course, and assignment #9 is to implement something with the Jack programming language that runs on the Hack computer. My friend encouraged me to try writing a raytracer, which is an algorithm that generates physically realistic images by simulating…
Barbara Liskov pointed us in her talk at Heidelberg Laureate Forum to some interesting “must-reads” for computer scientists. The talks will be available here: http://www.heidelberg-laureate-forum.org/ . I strongly recommend to watch many talks – including hers.
The virtual machine? Yep, but not the Java Virtual Machine.
We all know that when designing and operating applications at scale, it is persistent state management that brings the most difficult challenges. Delivering state-free applications has always been (fairly) easy. But most interesting commercial and consumer applications need to manage persistent state. Advertising…
Window functions in PostgreSQL are valuable when you want to compare & contrast data between rows. And window functions are key in analytics use cases. This post covers the basic structure of window functions as well as some of the more interesting things you can do with them.
I was recently profiling a production Shopify application server using perf and noticed a fair amount of time being spent in a particular function, st_lookup, which is used by Ruby’s MRI implementation for hash table lookups: Hash tables are used all over MRI, and not just for the Hash object; global variables…
Note : The \037 sequence appearing in the code snippets is one character, escaped for readability.
Using one of the test cases from the previous post , I examine what affects AFL's ability to find a bug placed by LAVA in a program. Along ...
Being a self-described programming-language programming language is an ambitious goal. To preserve predictability while permitting linguistic extension, Racket comes equipped with a module system carefully designed to accommodate composable and compilable macros . One of the module system’s foundational properties is…
Paul Khuong's personal blog. Some Lisp, some optimisation, mathematical or computer.
Reproducibility is an essential requirement for many fields of research including those based on machine learning techniques. However, many machine learning publications are either not reproducible or are difficult to...
Programming language features are never orthogonal.
Traditionally C++ has been seen by many (and you know who you are) as just plain bad: the code is unreadably verbose, error messages are und...
Branimir Karadžić's Home Page
Preparing for the next major release, where Dart only supports sound null safety
Rust doesn’t have namespaces in its package management system. It’s often viewed as a bug. But it’s not a bug, it’s a feature! While there are negative aspects of a flat package registry, there are also real benefits. Stability, continuity, and unity (discourages forks and fragmented identity)…
To provide a secure and dependable experience on GitHub, we’re rolling out updates to rate limits for requests made without authentication. These changes will apply to operations like cloning repositories…
Most C programmers also know to avoid the legacy strcpy() and strcat() functions, as these commonly introduce buffer-overflow problems. Instead, C programmers should use the newer strncpy() and strncat() functions, which check the size of the buffer they're copying data into.
In the book Flatland: A Romance of Many Dimensions, a two-dimensional world called “Flatland” is inhabited by polygonal creatures like triangles, squares, and circles. The protaganist, a square, is…
Firstly this is not just my effort but my team and organisation. Secondly the usual rules apply, this is expert advise and what works for me will very probably cause your whole production stack to blow up and kill people. Lastly this is long so skip to the bit you care about or come along and chat at QCon London 2012
If you've ever seen a discussion of functional programming languages on the Internet, you'll have probably noticed one talking point in particular that comes up frequently. For the sake of generalization, let's make up a hypothetical functional programming language called Gooby. In these discussions, often someone…