omniverse theirix's Thoughts About Research and Development

Amazon AWS SDK v2

Recently I noticed that my hobby project usbunfreeze uses AWS SDK version 1. It was fresh vesion when I wrote it at New Year holidays. But a few weeks later the Version 2 became available. It was a challenge to explore a new API without any good up-to-date examples and tutorials. Older SDK contains a lot of official working examples inside. All Ruby service mappings were standard classes with well-defined methods without metaprogramming magic. Then Amazon moved to description of their services via JSON manifests (i.e. EC2.api.json). It is definitely more generic approach but there is no way to look inside the code and check an implementation. Only rubydocs. It looks like YARD docs are also automatically generated from JSON manifests…

All things became clearer when you understand the logic behind the mappings for each service. API is more flexible than v1, allows pagination, advanced async mechanics, provides more structured responses with automatic deserialization. The best reference to hack the new API is an official AWS SDK Ruby blog with a few examples and service descriptions in SDK. Very few projects moved to the new API so GitHub is not the best helper. Hope my project will be usefuly for someone who hacking new SDK right now :)

Tests and color

It is a hard choice to pick a good test frameworks for C++. Generally I’m using Google Test and Boost Test. Both frameworks are mature, support fixtures, complex test cases, expects and asserts (Google Test suited me a little better because of non-fatal assertion support)

But there is only one feature that stops me from using Boost Test. It can’t produce colored output. Seriously, it’s 2015 and you must squeeze into raw output to find which test had failed. Do they remember the concept of green bar for unit tests?

It is especially sad that Boost Test has a wonderful extendable output generator (supports both xml and human-readable output) and there is no sign of any activity for adding colored output. People on boost mailing list advised to write generator on your own.

So I have chosen my testing framework by the coloring support…