Two Weeks of Rust
Disclaimer: I'm digging Rust. I lost my hunger for programming from doing too many sad commercial projects. And now it's back. You rock, Rust!
The latest blog posts to take off on Hacker News. 3,709 posts.
Disclaimer: I'm digging Rust. I lost my hunger for programming from doing too many sad commercial projects. And now it's back. You rock, Rust!
This is a guide on naming Clojure functions. There are exceptions to every rule. When you’re defining something based on natural language, there are more exceptions than rules. I break these rules more often than I follow them. This guide is just a starting point for thinking about how to name things.
UPDATE May 2018: It’s 2 years later and this article still gets hundreds of reads a month. I should note some of the things below are outdated. For example, when I say “soon, you’ll be able to …
This is a draft I wrote in early 2015 and never got around to publishing. Here’s the mostly unpolished version because it wasn’t doing anybody any good sitting in my drafts folder. The simplest change was updating year 2015 to 2016 at publication time.
I have probably spent more time dealing with the implications and real-world scenarios of copyleft in the embedded device space than anyone. I'm one of a very few people charged with the task of enforcing the GPL for Linux, and it's been well-known for a decade that GPL violations on Linux occur most often in embedded…
For a language that claims to focus on one right way to handle most situations, string formatting in Python is quite a buffet and it’s getting more diverse by the year. Starting with Python 3.6 we now have three ways to format strings (outside of simple concatinating things or using string.Template ):
The Kübler-Ross model [https://en.wikipedia.org/wiki/K%C3%BCbler-Ross_model] outlines the stages that one goes through in dealing with death: 1. Denial 2. Anger 3. Bargaining 4. Depression 5. Acceptance This is sometimes referred to as the five stages of grief.Some have jokingly called
Another year, another year-in-review post. To be honest, I feel like any attempt I make to summarize what happened in the Clojure world this year is largely moot. Clojure has gotten so big, so — dare I say it? — mainstream that I can’t even begin to keep up with all the interesting things that are happening. But it’s…
Easy wins for Haskell beginners
People who write Ruby programs want to use metaprogramming. It’s part of what makes the language what it is. But in existing implementations of Ruby, metaprogramming is slow. My work focused on making it fast, providing fast tooling for Ruby programmers, and fast support for legacy C extensions.
It’s been a very exciting year for ClojureScript. It’s clear that things have been accelerating and here is a personal selection of highlights:
As I’ve been blogging a lot more about Python over the last year, I thought I’d list a few of my favourite ‘new’ Python modules from 2015. These aren’t necessarily modules that were newly released in 2015, but modules that were ‘new to me’ this year – and may be new to you too!
This month I invited to Q&A at PuPPy [https://youtu.be/2XviXtxWKO8?list=PL4S0lvhXvdhIV2C28Ia_DeIeloBrsQBOW] (the Puget Sound Python users group) that eventually led to me explaining why Python 3 came into existence and the whole string/bytes deal. I ended up receiving a compliment on the explanation which
Bridging Discrete and Continuous Logic in Automated Reasoning Systems In this article we will explore the connection between Functional Programming and reasoning. Functional Programming is often ad…
Craig Federighi: I always end up seeking back to figure out what part I missed where the podcast started, and then I realize it just starts.
I wrote a self-hosting C compiler which I named 8cc in 40 days. This is a log when I was writing it from scratch by myself in 2012. The code and its history are available at GitHub .
It has only been a few days since the announcement of Swift going open source and the activity around the project has been incredible. When Apple revealed th...
Enter magic getopt . Via a little bit of macro magic, the above options-handling code turns into this:
So, as previous posts show , I like Go well enough. But as a computer-language polyglot, "Go programmer" is not part of my identity, and I try for a balanced view. It is very human to go overboard in both praise and criticism, both easy to find online.
Thoughts about programming, mostly
This is the first in a series of posts will discuss why garbage collection is hard, especially for Rust, and brainstorm about solutions to the …