New
The latest blog posts to take off on Hacker News. 21,842 posts.
New Edition of “Programming in Haskell” Now Available
An extensively updated and expanded version of the best-selling first edition. Now covers recent and more advanced features of Haskell.
500 Byte Images: The Haiku Vector Icon Format
Haiku uses a custom vector image format to store icons. This is surprising both because most OSes consider bitmaps to be totally sufficient to represent icons and because there are plenty of vector graphics formats out this (e.g. SVG). The goal of the Haiku Vector Icon Format (HVIF) is to make vector icon files as…
Bugs found in GCC with the help of PVS-Studio
I regularly check various open-source projects to demonstrate the abilities of the PVS-Studio static code analyzer (C, C++, C#). Now it is time for the GCC compiler to get checked. Unquestionably...
Think Before You Parallelize: A tour of parallel abstractions
In 2005 Intel release the Pentium D, which began the era of multi-core desktop CPUs. Today, even our phones have multiple cores. Making useof all of those c...
When to Avoid JSONB in a PostgreSQL Schema
Heap is the only digital insights platform that shows everything users do on your site, revealing the "unknown unknowns" that stay invisible with other tools.
Why ContentEditable is Terrible
Or: How the Medium Editor Works
Robin Hood Hashing should be the default hash table implementation (2013)
There’s a neat variation on open-addressing based hash tables called Robin Hood hashing . This technique isn’t very well-known, but it makes a huge practical difference because it both improves performance and space utilization compared to other “standard” hash tables (e.g. chaining ). It also eliminates the major…
On Two Views of Computation in Computer Science
Abstract: Machine and language models of computation differ so greatly in the computational complexity properties of their representation that they form two distinct classes that cannot be directly…
Blazing Fast HTML: Elm vs. React vs. Angular vs. Ember
A delightful language with friendly error messages, great performance, small assets, and no runtime exceptions.
Docker not ready for primetime
I love Docker . It's so freakin' useful for distributing predictable runtime environments.
Why bad scientific code beats code following “best practices” (2014)
I've just read " The Low Quality of Scientific Code ", which claims that code written by scientists comes out worse than it would if "software engineers" were involved.
How I built a Slack bot to help me find an apartment in San Francisco
Learn how to build and deploy a Slack bot in Python to identify the best rental properties using Craigslist, Slack, and Python.
GitHub Code Search – Programmers' Goldmine
Learning new language or framework can sometimes be a struggle. Traditional approach is to read documentation which explains the concepts, and provides simple examples. Sometimes that might be enough, but what those documentations are often lacking are some advanced examples and usages in real projects.
Why should children program? A review of Seymour Papert's Mindstorms
This is an essay about what it means to teach a kid to program, using Seymor Paperts groundbreaking book Mindstorms as a reference.
A Simple Makefile for Medium-Sized C/C++ Projects
A simple Makefile for C or C++ that automatically finds sources, determines include flags, and sets up header dependencies.
How to allocate memory
Many programmers use malloc() and free() and pay no more mind to "allocating memory", but I often find 2-20× speed improvements by rethinking memory usage, so it is something I usually want to examine when joining a distressed project.
Contributing os.scandir() to Python
My experience contributing a medium-sized feature (os.scandir) to the Python 3.5 standard library.
What I found wrong in Docker 1.12
The Sad State of Docker
Using attrs for everything in Python
Use attrs. Use it. Use it for everything.
How to Crawl the Web Politely with Scrapy
How to crawl the web with Scrapy without harming websites. Here are a few tips for netizens who want to build polite and considerate web crawlers.
KDevelop 5.0.0 release
Almost two years after the release of KDevelop 4.7, we are happy to announce the immediate availability of KDevelop 5.0. KDevelop is an integrated development environment focusing on support of the C++, Python, PHP and JavaScript/QML programming languages. Many important changes and refactorings were done for version…
Git Undo
Tell me if you recognize this scenario: you’re in the middle of rewriting your local commits when you suddenly realize that you have gone too far and, after one too many rebases, you are left with a history that looks nothing like the way you wanted. No? Well, I certainly do. It was in one of those moments of despair…