New
The latest blog posts to take off on Hacker News. 21,835 posts.
Go and Simplicity Debt Redux
In my previous post I discussed my concerns the additional complexity adding generics or immutability would bring to a future Go 2.0. As it was an opinion piece, I tried to keep it around 500 words. This post is an exploration of the most important (and possibly overlooked) point of that post.
How is Ruby different in Japan?
I've had a few conversations recently where I say things like, "the Japanese Ruby community uses Ruby for different things than in America"... and I get blank stares. Specifically, I mention that America is very centered on Rails and web apps with Ruby. No surprise, right? "But then,
Curl doesn’t spew binary anymore
One of the least favorite habits of curl during all these years, I've been told, is when users forget to instruct the command line tool where to store the downloaded file and as a direct consequence, curl instead sends a lot of binary "gunk" to the terminal. The end result of that is at best … Continue reading curl…
Supercharge your Computer Vision models with the TensorFlow Object Detection API
Posted by Jonathan Huang, Research Scientist and Vivek Rathod, Software Engineer (Cross-posted on the Google Open Source Blog) At Google, we develo...
Atom 1.18 released
We are archiving Atom and all projects under the Atom organization for an official sunset on December 15, 2022.
How the .NET Runtime Loads a Type
It is something we take for granted every time we run a .NET program, but it turns out that loading a Type or class is a fairly complex process.
Catfish Programmers
ROMA99 - menghadirkan standar baru hiburan digital modern dengan sistem profesional, tampilan elegan, dan akses cepat di berbagai perangkat.
TLA+ in Practice and Theory, Part 4: Order in TLA+
We learn how to encapsulate and compose TLA+ specifications, of the precise mathematical definition of abstraction, and compare TLA+'s notion of abstraction with those of other formalisms. Plus some various cool stuff.
Go and Simplicity Debt
Fifteen years ago Python’s GIL wasn’t a big issue. Concurrency was something dismissed as probably unnecessary. What people really was needed was a faster interpreter, after all, who had more than one CPU? But, slowly, as the requirement for concurrency increased, the problems with the GIL increased.
Developers who use spaces make more money than those who use tabs
This is a bit of a "holy war" among software developers; one that's been the subject of many debates and in-jokes. I use spaces, but I never thought it was particularly important. But today we're releasing the raw data behind the Stack Overflow 2017 Developer Survey , and some analysis suggests this choice matters…
System programming in Rust: beyond safety
System programming in Rust: beyond safety Balasubramanian et al., HotOS’17 Balasubramanian et al. want us to switch all of our systems programming over to Rust. This paper sets out the case. …
Rust as a gateway drug to Haskell
For work-related reasons, I had to recently get up to speed on programming in Haskell. Before that, I had very little actual experience with the language, clocking probably at less than a thousand lines of working code over a couple of years. Nothing impressive either: some wrapper script here, some experimental…
Writing a Unix Shell – Part II
Building your own UNIX shell in parts. This post explains how to execute commands.
Chrome 60 Beta
Unless otherwise noted, changes described below apply to the newest Chrome Beta channel release for Android, Chrome OS, Linux, Mac, and Wi...
Compiling the Original Commodore 64 KERNAL Source
Many reverse-engineered versions of “KERNAL”, the C64’s ROM operating system exist, and some of them even in a form that can be built into the original binary. But how about building the original C64 KERNAL source with the original tools?
TypeScript 2.4 RC
Today we're releasing our RC of TypeScript 2.4. To get started with the latest stable version of TypeScript, you can grab it through NuGet, or use the
The Design and Use of QuickCheck
QuickCheck is the grandfather of property-based testing libraries. Despite being imitated in over thirty languages, the original implementation remains pre-eminent due to the type system and consistent logic of the Haskell language in which it is written.
Translating a C++ parser to Haskell
nix-derivation 1.0 announcement post
TLA+ in Practice and Theory, Part 3: The Temporal Logic of Actions
TLA, the Temporal Logic of Actions is the core of TLA+. It is a temporal logic that minimizes the use of temporal reasoning in favor of more ordinary mathematics. It is a general mathematical framework for describing and reasoning about algorithms and systems.
Is Software Engineering Possible?
When the textile industry arose in the 18th century, craft was the norm in manufacturing. As the industrial revolution progressed, one after another sector of the economy made the transition from c…
Be Careful with UUID or GUID as Primary Keys
You can use of UUIDs as the primary key to avoid database scale problems. But should you? I propose an alternative.
A theory of modern Golang
Peter Bourgon has a web site, and this is that web site.
Reading OpenBSD source code daily
I made a new years resolution to read at least one C source file from OpenBSD daily.The goal was to both get better at C and to contribute more to the base s...
PyPy v5.8 released
The PyPy team is proud to release both PyPy2.7 v5.8 (an interpreter supporting Python 2.7 syntax), and a beta-quality PyPy3.5 v5.8 (an inte...