Photo by Alexandre Debiève on Unsplash

HDL 102: Synthesis

The following is the simplified design flow for digital circuits. Design Entry Behavioral Simulation Synthesis Functional Simulation Place and Route Timing Simulation Implementation Synthesis is the process of turning the HDL code into circuitry. A software analogy for this is the compilation process that turns software code into machine binary. Read more…

PoW as Checksum

The purpose of a checksum is to determine whether a message was transmitted error free. There are many ways to determine a checksum and one of the ways to do this is to use a cryptographic hash. A cryptographic hash function has several useful properties to do this: A single Read more…

Photo by Alexandre Debiève on Unsplash

HDL 101: Introduction

Our new hires have to go through a series of refresher courses on basic/fundamental skills that are important here – Git, C/C++ programming, etc. For most of these things, there are plenty of resources online that can be used. However, there seems to be a shortage of materials for a Read more…

Understanding Proof-of-Work

I was curious to study the behaviour of the Proof-of-Work protocol in block-chains. The essence of POW is the use of a nonce as part of the payload being signed. In order to do this, I decided to test it out with a simple signing test program. The signature algorithm Read more…

Blockchain SQL

While there are many arguments about the value and valuation of Bitcoin, the crypto-currency, there is overall consensus on the importance of the block-chain, which is the technology that underpins all crypto-currencies in this world. The block-chain, as a distributed ledger, is extremely useful as a storage mechanism to replace Read more…

Remote Wireshark

Wireshark is a free and open source packet analyser. It is used for network troubleshooting, analysis, software and communications protocol development, and education. This is not a well advertised feature but it is possible to use Wireshark to monitor the traffic on a third machine. This may come in handy Read more…

Aliyun – Malaysia vs Singapore

I’ve been waiting for a decent cloud provider to provide a data centre in Malaysia for a while. And recently, Alibaba Cloud launched their data centre in Malaysia to some fanfare. So, I decided to take a look at their offerings. While their offerings are pretty nice when compared to Read more…

Slow IPv6 Routes

We’re trying to increase IPv6 adoption by migrating things. However, slow IPv6 routes don’t help. We tested things using Vultr’s network as they had servers is 15 countries. These are an abbreviated sample of the results. LONDON HOST: vm1359261.vultr.com Loss% Snt Last Avg Best Wrst StDev 1. ??? 100.0 10 Read more…

Death of the General Purpose CPU

General purpose CPUs are dead. Long live the general purpose CPU. I think that this is what’s happening in the world today – we are witnessing a shift in computing paradigms. The most obvious of these shifts is the exponential growth of artificial intelligence (AI) computations. As more and more Read more…

Why C++ Web Development

I generally receive a stunned look when I tell people that we build everything with C++ where possible, including web applications. It happened again recently and they will usually ask me – Why?!!! I’d like to document some reasons why we chose to use C++ to build web applications here. Read more…