Challenges with distributed systems
The hard realities of distributed systems, partial failures, network faults, and unpredictable latency, and how Amazon designs to handle them.
The latest blog posts to take off on Hacker News. 1,508 posts.
The hard realities of distributed systems, partial failures, network faults, and unpredictable latency, and how Amazon designs to handle them.
A long-form article entitled: "Domain Logic and SQL"
posted by Matthew Flatt For background information about Racket on Chez Scheme (a.k.a. Racket CS), see the original announcement, the January 2018 report, the report at Scheme Workshop 2018, the January 2019 report, the ICFP experience report, an...
Ten years ago, Chas Emerick ran the first State of Clojure survey. In 2010, most users had been using Clojure for just weeks or months, and few were using it as a language for serious work. This year , we see consistent and growing use for work , steady interest in the key value propositions of Clojure, and an…
"Every application has an inherent amount of irreducible complexity. The only question is: Who will have to deal with it—the user, the application developer, or the platform developer?" Larry Tesler's original law regarding complexity in software applications, and links to articles and pap
In my last blog post I wrote about the power of D’s compile-time reflection and string mixins, showing how they could be used to call D from Python so easily it might as well be magic. As ama…
As a company grows, people and projects change. To continue to nurture the culture we want at GitHub, we’ve found it useful to remind ourselves what we aim for when…
Patterns and structures of current operating systems and some thoughts about how that could be improved, with lessons learnt from Self, Smalltalk and other "structured" systems.
Before I go into the specifics of my record attempt, it is important for you to have some background information. Over the past few years I have been steadily acquiring server hardware to increase my knowledge of system administration and cyber security. This is not only for personal growth: it has also helped me…
In my work I’ve developed a mental framework related to data modeling, which has helped greatly both when coming up with a model and when making decisions down the road about how to use that model. Here I will establish three different categories of data in software: Constants, State, and Cached Values. By “data” I…
Andreas Andreakis, Ioannis Papapanagiotou
This article contains the flow-charts of many common programming language constructs that involve distinct combinations of gotos. The goto (or jump) is a basic building block of control flow, therefore most control flow constructs can be modelled using it.
The chart classifies programming paradigms according to their kernel languages. Kernel languages are ordered according to the creative extension principle: a new concept is added when it cannot be encoded with only local transformations. Two languages that implement the same paradigm can nevertheless have very…
Every once in a while I receive an email from a fellow programmer asking me what language I used for one of my games and how I learned it. Here is an entry that list the best things to read about C. If you know of other gems, please email me or add a comment at the bottom of the page.
This is an “intro packet” you can use to argue for the benefits of formal methods (FM) to your boss. It’s a short explanation, a list of benefits and case studies, and a demo. Everything’s in TLA+, but the arguments apply equally well to Alloy, B, statecharts, etc. Adapt the material to your specific needs. Quick…
Most new things in technology turn out to be fads: patterns of talking and doing that come and go without leaving a permanent mark. Microkernels; EPIC architectures like IA-64; object request brokers; and 1990s’-style neural nets are gone, and will not return. Sorry for the deep throwbacks; only time proves which…
We want your feedback about GitHub’s new command line tool that makes it easier to work with GitHub and reduce friction for many of your common workflows.
From XKCD, released under the Creative Commons 2.5 License An app contributed to chaos at last week's 2020 Democratic Iowa Caucus. Hours after the caucus opened, it became obvious that something had gone wrong. No results had been reported yet. Reports surfaced that described technical problems and inconsistencies…
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. — Martin Fowler
February 10, 2020 4 minutes read The mythical book, Mythical man month quotes that no matter the programming language chosen, a professional developer will write on average 10 lines of code (LoC) day. After 14 years of full-time development on the tool NDepend I’d like to elaborate a bit here. Let’s start with the…
AWK As A Major Systems Programming Language — Revisited
Some hints and tips for getting started with Mypy and introducing it to existing projects
C++ exceptions have their place, but using an alternative is recommended for general program flow control.