Category: SoftwareEngineering

  • C++: Unordered maps and sets for non-primitive types

    Since C++ 11, we can use unordered sets and unordered maps. However, these data structures only seem to work with primitive types and strings. If you need a pair or a vector as the key, you’re out of luck. Fortunately, it’s possible to use unordered containers with other types, we just have to do some…

  • QuickSelect

    Theory Implementation in C++ Practice

  • Fenwick tree (aka Binary Indexed Tree)

    Theory TopCoder – Binary Indexed Trees Algorithms Live – Fenwick tree Wikipedia – Fenwick tree Implementation in C++ Practice Kattis – Movie collection AtCoder – B Fenwick Tree

  • Disjoint Set Union (aka Union-Find)

    Theory Algorithms, 4th edition by Robert Sedgewick, Kevin Wayne 1.5   Case Study: Union-Find Union Find on Cubits.ai Implementation in C++ Practice https://atcoder.jp/contests/practice2/tasks/practice2_a

  • Must read

    Retries Exponential Backoff And Jitter AWS SDK Retry behavior Error retries and exponential backoff in AWS Example in Java The following example is not meant to be complete, its goal is to give you a good idea of how to configure your AWS clients.

  • Generate files with random bytes

    The following command grabs 20 Mb of random bytes from /dev/urandom and saves it to rnd.bin: Generate a bunch of files:

  • AES encryption in Go

    Here is a program I wrote to learn how to use the Go libraries for AES encryption. Build & run I hope it helps. References Advanced Encryption Standard Advanced Encryption Standard (Wikipedia)

  • Build C/C++ libraries with debugging support

    I’ve been debugging a program which uses certain library on CLion. The IDE is great, but I cannot see most of the code from the library, the debugger shows me assembly code, and that’s not very helpful. The solution was to build and install the library with debugging symbols: The actual commands for my particular…

  • Hello-World AWS Encryption SDK C/C++ program

    In one of my projects, I need to encrypt and decrypt data in C, specifically using the AWS Encryption SDK. The SDK supports C, but the documentation is not very clear, in my opinion, so I decided to share my hello-world implementation with my learnings. Setup I’m working on Ubuntu, however, not all distributions are…

  • Hello-World CGO program

    I’m sharing my first CGO program, I hope it helps. File structure: hello.c hello.h main.go Build & run References I followed Cgo: First steps tutorial, but the examples provided didn’t compile for me (see error down below), I had to create a header file (hello.h) and a source file (hello.c), as shown in this post.…