How to view va_list variables via gdb

By | March 7, 2016

Viewing variable values via gdb of a va_list is not as straight forward as gdb> p myvar. It requires a few extra steps not only in execution but in understanding. Read on if you want to know how va_* works and how to view the underlying variables. Step 1: The first step is to understand… Read More »

How 59 days was calculated from the Mastering Bitcoin book?

By | March 4, 2016

For some reason I was re-reading a particular section in a book called Mastering Bitcoin by Andreas M. Antonopoulos (http://chimera.labs.oreilly.com/books/1234000001802) and came across this paragraph: This means that a valid block for height 277,316 is one that has a block header hash that is less than the target. In binary that number would have more than the… Read More »

What’s in a block?

By | February 26, 2016

Introduction If you’ve spent some time reading up on the fundamentals of bitcoins and the block chain but felt it was way over your head, here it is from another angle. Reading the likes of: https://en.bitcoin.it/wiki/Block https://en.bitcoin.it/wiki/Transaction https://en.bitcoin.it/wiki/Block_hashing_algorithm https://en.bitcoin.it/wiki/Protocol_documentation can be a bit daunting so I’ve created some pretty pictures instead. The secret sauce at… Read More »

Linked List: An important concept to grasp

By | February 22, 2016

Understanding linked lists is very important when learning C. Understand it, master it and be able to teach it. This link explains it very well. http://cslibrary.stanford.edu/103/LinkedListBasics.pdf The key is to get your hands dirty and not only write the code samples, but experiment and alter the values and play around with it. Here is a link… Read More »

What is nice?

By | February 19, 2016

Knowing a nice person is good, being nice, even better but in the computer world, there is this funky concept of “nice” which determines the scheduling priority of a process. The scope here is that you are doing some programming and you want to be able to control or set the priority. You can set… Read More »

How swab32 or bswap_32 works

By | February 15, 2016

If you have come across some code with reference to swab32 or bswap_32 and wondered how it works, here is the answer. swab32 will probably be a function that calls bswap_32 which will probably be a macro. The macro will probably be defined as: ( (((x) << 24) & 0xff000000u) | (((x) << 8) &… Read More »

Big Endian and Little Endian in Pictures

By | February 12, 2016

You may have come across this image on Wikipedia when reading about endianness. While it is great, in practice when I’m viewing content in memory, it is displayed horizontally instead of vertically. So for those visual people out there, here is another take.       Big endian is defined at placing the Most Significant… Read More »