New
The latest blog posts to take off on Hacker News. 21,834 posts.
Seemingly Impossible Swift Programs
We will construct Swift programs that should be impossible to implement, yet somehow are not!
The -a to -z of Command-Line Options (2003)
Unix tradition encourages the use of command-line switches to control programs, so that options can be specified from scripts. This is especially important for programs that function as pipes or filters. Three conventions for how to distinguish command-line options from ordinary arguments exist; the original Unix…
The Game Engine Black Book: Doom
The Game Engine Black Book: DOOM is now available for purchase. It is being released exactly 25 years after DOOM.zip was first published on the University of Wisconsin FTP server in December 1993. You can get it at the following locations: - Amazon ( USA , France , UK , and many more). - Google Books ( here with no…
How Does setState Know What to Do?
Dependency injection is nice if you don’t have to think about it.
Rocket v0.4: Typed URIs, Database Support, Revamped Queries
Rocket is a web framework for the Rust programming language that makes it simple to write fast web applications without sacrificing flexibility or type safety.
From macOS to Windows and WSL
Writings about computing, agents, and the Internet.
Giving Mono Souper Powers
By virtue of using LLVM, Mono has access to a wide suite of tools and optimization backends. A lot of active research uses LLVM IR. One such research project, Souper, tries to brute-force a search for missed optimizations in our emitted code. The .NET community may have software projects that benefit from using Souper…
Repl.it Multiplayer
Today we're announcing the most-significant evolution of our platform — something we've been building towards for a long time that we're thrilled to share with you. Introducing Multiplayer: code with friends in the same editor, execute programs in the same interpreter, interact with the same terminal, chat in the IDE…
Goodbye, EdgeHTML
Microsoft is officially giving up on an independent shared platform for the internet. By adopting Chromium, Microsoft hands over control of even more of on
Rust 2018 is here, but what is it?
Starting today, the Rust 2018 edition is in its first release. With this edition, we’ve focused on making Rust developers as productive as they can be. Most of the language ...
Faster and simpler with the command line: deep-comparing JSON files with jq
As part of our recently announced deal with Apple Music [https://genius.com/a/genius-gets-smart-with-apple-music], you can now view Genius lyrics for your favorite music within the Apple Music app. We deliver our lyrics to Apple via a nightly export of newline-delimited JSON objects.
Pipenv: promises a lot, delivers very little
Pipenv is a Python packaging tool that does one thing reasonably well — application dependency management. However, it is also plagued by issues, limitations and a break-neck development process. In the past, Pipenv’s promotional material was highly misleading as to its purpose and backers.
Look ma, no locks
We describe a systematic approach for replacing locks with tasks. In this approach thread blocking is replaced by properly scheduling of tasks.
Announcing Open Source of WPF, Windows Forms, and WinUI
At Build 2018, I outlined our approach to helping you be more productive when developing apps, including the introduction of .NET Core 3.0. We also started decoupling many parts of the Windows development platform, so you can adopt technologies incrementally. Today at Microsoft Connect(); 2018 Conference we shared the…
A Not-Called Function Can Cause a 5X Slowdown
Subtitle: Making Windows Slower Part 3: Process Destruction In the summer of 2017 I wrestled with a Windows performance problem. Process destruction was slow, serialized, and was blocking the syste…
Building a Language and Compiler for Machine Learning
Since we originally proposed the need for a first-class language, compiler and ecosystem for machine learning (ML), there have been plenty of interesting developments in the field. Not only have the tradeoffs in existing systems, such as TensorFlow and PyTo...
How I Wrote a Modern C++ Library in Rust
Since version 56, Firefox has had a new character encoding conversion library called encoding_rs. It is written in Rust and replaced the old C++ character encoding conversion library called uconv that dated from early 1999. Initially, all the callers of the character encoding conversion library were C++ code, so the…
Developer on Call
For the system at work, I am on call one week every seven weeks. For most of the past ten years, I have been on organized on call rotations for the systems I have been developing. I think being on …
Pointers in C (2010)
This document comes with a companion example program, available as one file or as multiple files (zipped) .
How Does React Tell a Class from a Function?
We talk about classes, new, instanceof, prototype chains, and API design.