FizzBuzz in ten languages
Updates (2024) Since this post was originally written, the FizzBuzz github repository has received 23 additional contributions so the total…
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,709 posts.
Updates (2024) Since this post was originally written, the FizzBuzz github repository has received 23 additional contributions so the total…
Here’s a bit of code from Kernighan’s and Ritchie’s seminal text, The C Programming Language . I’m not sure I’d actually recommend coding this way (as written in the book, the entire program has only one comment), but it’s so darn clever and concise, I can’t help but post it. This snippet is part of a larger program…
My new book guides you through the start-to-finish build of a real world web application in Go — covering topics like how to structure your code, manage dependencies, create dynamic database-driven pages, and how to authenticate and authorize users securely .
Learnings from building MiniJinja, a template engine in Rust
This is the absolute best guide you'll find in the internet about how php handles typing internally and in userland.
Many people struggled with my article about Alan Kay and OO programming, so let's talk about the main objection.
This blog post explores an alternative formulation of Rust’s type system that eschews lifetimes in favor of places . The TL;DR is that instead of having 'a represent a lifetime in the code, it can represent a set of loans , like shared(a.b.c) or mut(x) . If this sounds familiar, it should, it’s the basis for polonius…
Arrays are JavaScript’s “native” representation of lists. Lists are important because they represent ordered collections of things, and ordered collections are a fundamental abstraction for making sense of reality.
Blog of Guillaume Gomez (Guide on how to write documentation for a Rust crate)
The Pascal language was named after Blaise Pascal (see picture), a French mathematician who was a pioneer in computer development history. In 1641, at the age of eighteen, Pascal constructed the first arithmetical machine, arguably the first computer. He would improve upon the instrument eight years later. In 1650…
Everywhere on the web we read that Javascript has prototypal inheritance. However Javascript only provides by default a specific case of prototypal inheritance with the new operator. Therefore, most of the explanations are really confusing to read. This article aims to clarify what is prototypal inheritance and how to…
With the new C++11 Standard, C++ faces the first time challenges of multicore architectures. The 2011 published standard defines how a C++ program has to behave in the presence of multiple threads. The C++11 multithreading capabilities are composed of two components. This is, on the one hand, the defined memory model…
So far this year I’ve been bitten three times by compiler edge cases in GCC and Clang, each time catching me totally by surprise. Two were caused by historical artifacts, where an ambiguous specification lead to diverging implementations. The third was a compiler optimization being far more clever than I expected…
I write a lot of reductions: loops that combine every element from a collection in some way. For example, summing a vector of integers:
A look at common mistakes in DSL designs and how to fix them
The recent announcement of clojure-py made some noise in the Clojure community, but not, as far as I can tell, in the Python community. For those who haven’t heard of it before, clojure-py is…
Adding a reader to our Lisp compiler
Dmitri's blog about programming, Clojure, and software development
Learn You a Haskell for Great Good! (A Beginner's Guide) by Miran Lipovača, published by No Starch Press (2011). No Starch was kind enough to send me an advance copy for review.
In late 1986 and early 1987 an ad hoc group of Smalltalk implementors got together to see if they could agree on a design for the next major version of Smalltalk, after Smalltalk-80. The intent was that what they agreed upon would feed into an IEEE standardization process. That process never got
New with expressions, type-safe error checking, and faster everything.
Socolive TV phát sóng trực tiếp bóng đá hôm nay, link xem SocoliveTV sắc nét chuẩn HD. Cập nhật Lịch thi đấu, BXH, Highlight, Kết quả bóng đá mới nhất!
Today is the day! Today is the day we take our APL programs and interpret them, so that something like ÷ 1 2 3 -⍨ 1.1 2.2 3.3 can output 10 5 3.33333333.
How is tail recursion different from regular recursion? What do continuations have to do with this, what is CPS, and how do trampolines help? This article provides an introduction, with code samples in Python and Clojure.