I remembered a simple trick I used to know, but that could not remember on the spot, to solve a problem in understanding the exact lifetime of C++ objects.
In the hot, cruel desert of this space, wind howled in solitude. A stone statue lay on the ground like a man asleep, succumbing to its own weight, mental and physical. For more than one year, no stirring. The sun shines on again today. A wanderer passes by on a camel, and looks at the strange statue. He swears that he saw it moving.
I am always on the lookout for ways to enhance my proficiency with programming. In the last months I have come to agree with the common saying that, with programming languages, you only learn by doing.
Unit testing is a fundamental activity in software development, even if not as widespread as it should. As C++ has been around for quite some time, several libraries are available for carrying out this activity. This week I’ve had a look at cpptest. In the future, I plan to compare compare it to another pretty popular test library, googletest.
I was looking for some practice with DBs, and my choice fell on the SQLite project, maybe only because it looked lighter than PostgreSQL, which I also plan to play with. My first general impression about the API is that it looks a little too much C-oriented, even though I am not sure whether this is a good or a bad thing, and I am ignorant about the latitude of choice an engineer has when designing an API that has to interact with applications written in either C or C++.
Before C++11, hash tables could be used in C++ only with some tricks. The only associative container available in the STL used to be the
std::map (along with its sibling, the
multimap). This class, however, is implemented as a binary search tree, and does not provide a way to customize a hash function. What hurt me most was that you didn’t have the great performances offered by a true hash map: almost constant time insert, delete, and search (depending on how good is the hash function). You insert in O(log N) time. You find in O(log N) time. Too bad.
This week I have had a look at two nice types of iterators: the move iterators and the insert iterators. Their main use seems to be related to STL algorithms.
I was curious about all the great sites I know of releasing their API. Twitter, Google, Facebook, Yelp, are only a few examples of websites providing a way to access their services in a programmatic way. In this post, I have investigated a simple but very interesting API, offered by Rotten Tomatoes, a website about movies.