Good software propagates its own correctness

Writing good software code is an exercise in applied schizophrenia. You need to please two radically disctinct audiences. The first audience is the compiler and the runtime. A patient and diligent audience that takes your writing to the letter. The second audience is your peers, fellow software engineers. On the plus side, this audience tries to adhere to the spirit of your writing; on the minus side, they can misunderstand your writing entirely.

A weirder definition of Bitcoin

While attemps have been made in the past to come up with a [efinition of Bitcoin, I felt that those definitions were somehow failing at capturing the very esssence of Bitcoin, so I decided to roll my own. Enjoy! A weirder definition of Bitcoin Abstract: Bitcoin is best characterized as an exceedingly weird virtue-inducing artifact. Attempts at making Bitcoin less weird have only two outcomes: either the attempt fails and Bitcoin just becomes weirder; or the attempt succeeds and this is not Bitcoin anymore.

Addressing a few loose angles of Bitcoin

Two weeks ago, I had the unique privilege of meeting not one, but a whole series, of truly remarkable people at Satoshi’s Vision in Tokyo. This list includes Amaury Séchet, Shammah Chancellor, Tomas van der Wansem, and quite a few others. While Bitcoin had gained my interest back in 2011, I never had taken much time to think about the Nakamoto consensus itself. To my defense, running Lokad, my company, was simply capturing my day-to-day interests.

Satoshi's Vision, talk on Terabyte Blocks for Bitcoin

Last week, I was in Tokyo at the Satoshi’s Vision conference. I gave a talk about Terabyte Blocks for Bitcoin. Here are the slides. Check the video too, there are some good questions raised at the end of the talk. Overall, it was a incredible event, tremendously positive for Bitcoin. I am thrilled to see so many hard-working contributors doing their best to address all the challenges that Bitcoin is facing.

Fast 1D convolution with AVX

Convolutions are important in a variety of fields. For example, in deep learning, convolutional layers represent a critical building block for most signal processing: image, sound or both. My company Lokad is also extensively using convolutions as part of its own algebra of distribution. One technical problem associated to convolutions is that they are slow. The theory tells you that FFT can be used to obtain good asymptotic performance, but FFT isn’t typically an option when your signal has only a few dozen data points; but that you still need to process tens of millions of such signals.

Mankind needs fractional satoshis

Bitcoin Cash aims at becoming the world currency. As discussed previously, terabyte blocks are needed to achieve this goal. However, the Bitcoin Cash protocol also needs a few changes as well. In this post, I will demonstrate why fractional satoshis are needed for Bitcoin Cash. In the following, for the sake of concision, Bitcoin always refers to Bitcoin Cash. Overview of the issue A satoshi is, presently, the smallest unit of payment that can be sent across the Bitcoin network.

Terabyte blocks for Bitcoin Cash

Terabyte blocks are feasible both technically and economically, they will allow over 50 transactions per human on earth per day for a cost of less than 1/10th of a cent of USD. This analysis assumes no further decrease in hardware costs, and no further software breakthrough, only assembling existing, proven technologies. Introduction As pointed out in the original Bitcoin whitepaper, achieving very large blocks do require taking advantage of Moore’s Law rather than being stuck with fixed-capacity device.

Bitcoin Cash is Bitcoin, a software CEO perspective

TLDR: my company, Lokad, is redirecting its attention to Bitcoin Cash, as the true Bitcoin Like Jeff Bezos, I also believe that being successful in business depends on being right rather than being smart. Smarter means that you will solve given problems faster and better. Righter means that you will identify better problems. As I had been writing in the past, smarter problems trump smarter solutions. Any single time. What’s Bitcoin about?

Details on the .NET first strategy for CNTK

An extensive discussion is taking place on the CNTK project. As I am partly responsible for this discussion, I am gather some more concrete proposals for CNTK. Correctness by design and BrainScript My company, Lokad, has built as complex data-driven analytical solution built on .NET. Because machine learning data pipelines are hellish to debug, we seek technologies to ensure as much design correctness as possible. For example, in many programming language, a certain degree of design correctness can be obtained through strong typing.

.NET-first strategy for CNTK

CNTK is an incredible deep learning toolkit from Microsoft. Despite being little known, under the hood, the technology rivals the capabilities of TensorFlow. While originating from Microsoft, it’s unfortunate that CNTK decided steer away from the Microsoft ecosystem, actually making CNTK a less viable option than TensorFlow as far .NET is concerned. My conclusions: as a contender for the Python ecosystem, CNTK is a lost cause. TensorFlow has already won by a large margin; just like x86-64 won over IA-64.