Python 3 RPMs are now available for RHEL/CentOS 6/7

“Python 3 is a new version of the language that is incompatible with the 2.x
line of releases. The language is mostly the same, but many details, especially
how built-in objects like dictionaries and strings work, have changed
considerably, and a lot of deprecated features have finally been removed…”


Proving that Android’s, Java’s and Python’s sorting algorithm is broken (and showing how to fix it)

“Tim Peters developed the Timsort hybrid sorting algorithm in 2002. It is a clever combination of ideas from merge sort and insertion sort, and designed to perform well on real world data. TimSort was first developed for Python, but later ported to Java (where it appears as java.util.Collections.sort and java.util.Arrays.sort) by Joshua Bloch (the designer of Java Collections who also pointed out that most binary search algorithms were broken). TimSort  is today used as the default sorting algorithm for Android SDK, Sun’s JDK and OpenJDK. Given the popularity of these platforms this means that the number of computers, cloud services and mobile phones that use TimSort for sorting is well into the billions…”

Proving that Android’s, Java’s and Python’s sorting algorithm is broken (and showing how to fix it)

How to process input and output streams in Steel Bank Common Lisp?

“I’m trying to figure out how to use the output stream of one program I start with RUN-PROGRAM so it can be used as the input of another program started with RUN-PROGRAM (i.e., the moral and perhaps literal equivalent of piping). I’ve tried using a number of combinations of the :INPUT, :OUTPUT and :WAIT keyword arguments, but nothing I’ve hit upon has been productive so far. Any tips would be helpful; for example, how would I go about doing something like ls | grep lisp from the shell?…”

Trend analysis at the shallow end of the pool

“I have always wondered why some people feel Perl has to suck for their choice of language to be valid. It looks like there are a bunch of people who just try to satisfy their need for approval by seeking what’s most popular, and trying to hitch their wagon to that train. I do not know what they can gain by this, but they exist.

Yesterday, I noticed a post on HN which linked to a Google trends comparison of Perl and Python:…”

16 Months of Functional Programming

“I’d like to share my experience with functional programming in this article. I feel like I’ve learned more in the past 16 months about computer science and computer systems in general than I have in the past 10 years thanks to my foray into Scala and the world of functional programming. The reason functional programming forces you to learn so much is because it challenges every assumption about writing software that you had. Oftentimes you can’t believe that some common thing can be done in a different way and then—boom!—a functional programming concept introduces a better way to do it and blows you away. So, what happened 16 months ago? I quit my startup and was looking for interesting projects to work on. I happened to get a consulting gig at 2lemetry that later turned into a full-time obsession with functional programming, MQTT brokers, and distributed systems. One of the things that impacted me while working at 2lemetry was exposure to Scala. It felt like whatever ideas I had about writing programs were off and I had to relearn everything from scratch…”

Must-watch videos about javascript


  1. Dr. Axel Rauschmayer: Using ECMAScript 6 today


  1. Ilya Grigorik: Website Performance Optimization (Udacity course) [1:13:57]
  2. Mark DiMarco: User Interface Algorithms [27:41]
  3. Neil Green: Writing Custom DSLs [29:07]
  4. Philip Roberts: Help, I’m stuck in an event-loop [20:13]
  5. Eric Bidelman: Polymer and Web Components change everything you know about Web development [36:12]
  6. Alex Russell, Jake Archibald: Bridging the gap between the web and apps [48:40]
  7. Scott Hanselman: Virtual Machines, JavaScript and Assembler [25:56]
  8. Jafar Husain: Async JavaScript with Reactive Extensions [26:38]
  9. John-David Dalton: Unorthodox Performance [43:39]
  10. Gary Bernhardt: The Birth & Death of Javascript [29:22]
  11. Addy Osmani: Memory Management Masterclass [55:06]
  12. Reginald Braithwaite: Invent the future, don’t recreate the past [39:16]
  13. Kyle Simpson: Syncing Async [42:25]
  14. Ariya Hidayat: JavaScript and the Browser: Under the Hood [29:13]
  15. Jafar Husain: Version 7: The Evolution of JavaScript [1:11:53] ♨

Replicated SQLite using the Raft consensus protocol

SQLite is a “self-contained, serverless, zero-configuration, transactional SQL database engine”.  However, it doesn’t come with replication built in, so if you want to store mission-critical data in it, you better back it up. The usual approach is to continually copy the SQLite file on every change.

I wanted SQLite, I wanted it distributed, and I really wanted a more elegant solution for replication. So rqlite was born…”

Replicating SQLite using Raft Consensus

rqlite is a distributed system that provides a replicated SQLite database. rqlite is written in Go and uses Raft to achieve consensus across all the instances of the SQLite databases. rqlite ensures that every change made to the database is made to a majority of underlying SQLite files, or none-at-all…”

Replicating SQLite using Raft Consensus