recentpopularlog in


« earlier   
Semantic Versioning 2.0.0 | Semantic Versioning
Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
10 weeks ago by Chronologos
I've been writing ring buffers wrong all these years
So there I was, implementing a one element ring buffer. Which, I'm sure you'll agree, is a perfectly reasonable data structure.

It was just surprisingly annoying to write, due to reasons we'll get to in a bit. After giving it a bit of thought, I realized I'd always been writing ring buffers "wrong", and there was a better way.
10 weeks ago by Chronologos
Dan Luu
bout Me
I’ve been slowly working my way up the stack. I started out working on flash memory and optics, and then moved up one level to CPUs. I was lucky enough to land at Centaur, a small company that gave me a lot of freedom, and I ended up doing RTL, ucode, verification, bringup, test, and pretty much everything else you can do on a CPU. Since then, I’ve worked on a deep learning hardware accelerator at Google, a networking virtualization accelerator at Microsoft, and a search engine at Microsoft. If you’re so inclined, you can check out my github, linkedin, and resume, but that just has a bunch of details. If you want a much longer version, see this post that describes how I learned to program.
blogs  tech  p-general 
10 weeks ago by Chronologos
Programming books you might want to consider reading
There are a lot of “12 CS books every programmer must read” lists floating around out there. That’s nonsense. The field is too broad for almost any topic to be required reading for all programmers, and even if a topic is that important, people’s learning preferences differ too much for any book on that topic to be the best book on the topic for all people.

This is a list of topics and books where I’ve read the book, am familiar enough with the topic to say what you might get out of learning more about the topic, and have read other books and can say why you’d want to read one book over another.
books-list  p-general 
10 weeks ago by Chronologos
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) – Joel on Software
In this article I’ll fill you in on exactly what every working programmer should know. All that stuff about “plain text = ascii = characters are 8 bits” is not only wrong, it’s hopelessly wrong, and if you’re still programming that way, you’re not much better than a medical doctor who doesn’t believe in germs. Please do not write another line of code until you finish reading this article.
11 weeks ago by Chronologos
The Benjamin Franklin Method of Reading Programming Books | Path-Sensitive
Read your programming book as normal. When you get to a code sample, read it over Then close the book. Then try to type it up. Simple, right? But try it and watch as you’re forced to learn some of the structure of the code. It’s a lot like the way you may have already been doing it, just with more learning.
self-improvement  p-general 
january 2018 by Chronologos
"Whenever I see a writer talk about "magic", "simplicity", "spooky action at a d... | Hacker News
Go is entirely non-magical by this definition. The two closest things to magic is having an interface value and calling a method on it, where you can't statically determine exactly which method will be used, and struct composition making methods appear on the composing struct, but both are in the spec and can still be traced back. (The only tricky thing about the struct composition is if you compose in multiple things you might have some non-trivial work to figure out which thing is providing which method.) Haskell, perhaps surprisingly given its reputation, is mostly unmagical. (The OverloadedStrings and friends extensions make it a bit magical, and there is some syntax you can bring in via extension which can be tricky. But otherwise you can, if you work at it, pretty much just use term rewriting by hand to understand anything Haskell is doing.) Python can be magical, though the community tends to avoid it. Ruby and certain chunks of the Javascript community can be very magical. (No non-esolang mandates magic that I can think of. INTERCAL's COME FROM operator/statement/whatever it is may be the epitome of magical.)
january 2018 by Chronologos
The Y Combinator (no, not that one) – Ayaka Nonaka – Medium
Lambda calculus (or λ-calculus) was invented by Alonzo Church in 1930 as a formal system for expressing computation. Although it has the word “calculus” in it, it is far from related to the calculus that Newton and Leibniz invented. In fact, it is a lot closer to programming than mathematics as most of us know it.
p-general  p-haskell 
january 2018 by Chronologos
Write You a Haskell ( Stephen Diehl )
Fundamental to all functional languages is the most atomic notion of composition, function abstraction of a single variable. The lambda calculus consists very simply of three terms and all valid recursive combinations thereof.
p-general  p-haskell 
january 2018 by Chronologos
What Every Programmer Should Know About Memory
As CPU cores become both faster and more numerous, the limiting factor for most programs is now, and will be for some time, memory access. Hardware designers have come up with ever more sophisticated memory handling and acceleration techniques–such as CPU caches–but these cannot work optimally without some help from the programmer. Unfortunately, neither the structure nor the cost of using the memory subsystem of a computer or the caches on CPUs is well understood by most programmers. This paper explains the structure of memory subsystems in use on modern commodity hardware, illustrating why CPU caches were developed, how they work, and what programs should do to achieve optimal performance by utilizing them.
p-general  p-lowlevel 
january 2018 by Chronologos
An Interactive Introduction To Quantum Computing
Heard of quantum computers? Heard that they are faster than conventional computers? Perhaps you have heard of quantum bits (abbreviated to qubits). Maybe you have even heard of the puzzling notion that qubits can have the values 0 and 1 both at the same time. Let me try to explain what this really means.
p-general  physics 
december 2017 by Chronologos

Copy this bookmark:

to read