New
The latest blog posts to take off on Hacker News. 14,544 posts.
A shallow survey of formal methods for C code
Two interesting things in formally verified software happened recently. The big one was the release of SeL4 - a formally verified L4 microkernel. The second was much smaller, but closer to my usual scope: a paper which showed the correctness of sections of a couple of the assembly implementations of Curve25519.
Modernizing “less”
I have just spent an all-nighter doing something I didn't expect to do. I've " modernized " less (1). (That link is to the changeset.) ...
Why I like Common Lisp
In a recent email exchange discussion, Charlotte Herzeel gave a summary of Common Lisp that I believe is worth repeating publicly. With her ...
Bypassing a Python sandbox by abusing code objects
Awhile ago, I stumbled upon a service that let you write python-bots to interact with a number of external services. The basic idea was th...
Zeroing buffers is insufficient
With a bit of care and a cooperative compiler, we can zero a buffer — but that's not what we need. What we need to do is zero every location where sensitive data might be stored. Remember, the whole reason we had sensitive information in memory in the first place was so that we could use it; and that usage almost…
I Am an Indie iOS Developer – Part 2
I develop apps for iOS
AM – Attribute Modules for CSS
A few months ago, I read an article by Harry Roberts where he introduced an interesting concept for working with related classes in CSS. In his article, he describes the use of the [] characters in class attributes to help understand their purpose at a quick glance. He presents this example, arguing that it makes the…
Standard Markdown Is Now Common Markdown
Let me open with an apology to John Gruber for my previous blog post. We’ve been working on the Standard Markdown project for about two years now. We invited John Gruber, the original creator of Markdown, to join the project via email in November 2012, but never heard back.
How to zero a buffer
Now, we don't want to truly change the observable behaviour of our software — but fortunately the C standard has a more liberal concept of "observable" than most people. In particular, the C standard states that the observable behaviour includes accesses to volatile objects . What is a volatile object, you ask? It is…
Lost Lessons from 8-Bit BASIC
It's not about technology for its own sake. It's about being able to implement your ideas.
Predicting the next Math.random() in Java
A while back a friend of mine hosted a programming competition where you were given 9 random numbers one at a time and you had to guess the rank (the sorted position amongst the 9) of each as they are coming in. The goal was to submit a strategy in Java that will maximize the number of these games won. The best…
Kotlin, the Swift of Android
Well, not quite but let's start from the beginning.
The PHP Singularity
Look at this incredible thing Ian Baker created. Look at it! What you’re seeing is not Photoshopped. This is an actual photo of a real world, honest to God double-clawed hammer. Such a thing exists. Isn’t that amazing? And also, perhaps, a little disturbing? That wondrous hammer
Say hello to x64 Assembly, part 1
Introduction There are many developers between us. We write a tons of code every day. Sometime, it is even not a bad code :) Every of us ...
Minting Money with Monero and CPU Vector Intrinsics
A blog about computer science, systems, technology, and sometimes vegan cooking.
The Future Programming Manifesto
It’s time to reformulate the principles guiding my work. [Revised definition of complexity in response to misunderstandings]
Proposal for a Friendly Dialect of C
What implications exist around linking friendly-c code with machiavellian-c? I.e. put the performance critical kernels in there own module and work realy hard to make it correct.
C++11 FQA anyone?
isocpp.org announced "the C++ FAQ" to which reportedly Bjarne Stroustrup and Marshall Cline will link to help boost its search rank. Good stuff; also, given that the language is >30 years old – it's about time.
Microservices for the Grumpy Neckbeard
Recently microservices have been getting a lot of attention, both positive and negative. Articles about them tend to fall into two camps, which I'll affectionately label the hipster camp and the neckbeard camp. The hipster camp tends to strongly favor microservices, due to the excellent benefits they provide regarding…
The fundamental problem of programming language package management
Why are there so many goddamn package managers? They sprawl across both operating systems (apt, yum, pacman, Homebrew) as well as for programming languages (Bundler, Cabal, Composer, CPAN, CRAN, CTAN, EasyInstall, Go Get, Maven, npm, NuGet, OPAM, PEAR, pip, RubyGems, etc etc etc). “It is a truth universally…
Revenge of the Types
Some notes about what appears to be current trend of programming languages and my thoughts about it.