recentpopularlog in


« earlier   
Katrina Ellison Geltman
Simulated annealing is a method for finding a good (not necessarily perfect) solution to an optimization problem. If you're in a situation where you want to maximize or minimize something, your problem can likely be tackled with simulated annealing.
7 weeks ago by Chronologos
Modern SAT solvers: fast, neat and underused (part 1 of N) — The Coding Nest
Before I started doing research for Intelligent Data Analysis (IDA) group at FEE CTU, I saw SAT solvers as academically interesting but didn't think that they have many practical uses outside of other academic applications. After spending ~1.5 years working with them, I have to say that modern SAT solvers are fast, neat and criminally underused by the industry.
8 weeks ago by Chronologos
Spanner, TrueTime and the CAP Theorem – Google AI
Spanner is Google's highly available global-scale distributed database. It provides strong consistency for all transactions. This combination of availability and consistency over the wide area is generally considered impossible due to the CAP Theorem. We show how Spanner achieves this combination and why it is consistent with CAP. We also explore the role that TrueTime, Google's globally synchronized clock, plays in consistency for reads and especially for snapshots that enable consistent and repeatable analytics.
p-distributed  p-general 
june 2018 by Chronologos
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.
february 2018 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.
february 2018 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 
february 2018 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 
february 2018 by Chronologos
Bloom filter - Wikipedia
A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set.
february 2018 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.
february 2018 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
programming is terrible
programming is terriblelessons learned from a life wasted
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

Copy this bookmark:

to read