I am a seasoned software designer, developer and consultant. In business since 1998. Having worked for many years in public and private sectors in different countries, I have gained deep understanding of various approaches to software development processes. Exposure to multiple cultures, work with demanding clients in fast paced environments developed my communication and business skills. My approach is result-oriented, constructive and pragmatic.
It has been about a year since I joined Toptal as a developer. And overall the experience is rather disappointing so far. For a developer of my level I think it's more or less a waste of time. Let me explain why.
For quite some time I wanted to have a Drupal theme that would allow me to have a bootstrap based theme together with the look and feel as dictated by the Material Design principles from Google. Mainly because I like the way these two look and because I myself have very limited abilities in creating pretty user interfaces.
I have recently upgraded my Amazon cloud t2.micro instance from Ubuntu 15.04 to 15.10. And soon I noticed a very strange high load on the machine - constantly above 2.0, and without doing much. The apparent culprit seemed kswapd0 process. I tried various simple steps to reduce the load, but nothing seemed to work, mainly because, as I already mentioned, no heavy activity was supposed to be happening.
Developers often have to look at log files. This is sometimes boring, sometimes tedious, but it's a fact of life. It would really help if some special lines, such as errors, warnings etc. could stand out. One way to do it is to use the clog utility.
To make clog usage more streamlined from a terminal, you can define this bash function:
Cmake is a great build tool. It takes care of generating build system files, targeting, among others, Unix makefile, MS Visual Studio, ninja, XCode etc. There are various extra modules available for Cmake. One in particular allows the discovery of MySQL development files, such as headers and libraries. It can be found here. Unfortunately, it has a few issues: it doesn't work for Windows, and it has a bug towards the end. Other alternatives I found on the web were even worse.
Recently I had to figure out how to publish a NUGet package to a private password-protected repository as part of a TeamCity CI build process. NUGet, for those who are not aware, is a tool for managing .NET software in a convenient manner. It is similar in its purpose to Maven, the Java packaging framework. The implementation details are, of course, quite different.
Scrapy is a nice python environment for web scraping, i.e. extracting information from web sites automatically by crawling them. It works best with anonymous data discovery, but nothing stops you from having active sessions as well. In fact, scrapy transparently manages cookies, which are usually used to track user sessions. Unfortunately, the sessions don't survive between runs. This, however, can be fixed quite easily by adding custom cookie middleware. Here is an example:
.NET's MemoryStream is a very convenient class. It allows you to use a byte array as storage, while accessing it via standard Stream API. Among other things, it allows you to work with a section of a larger byte array, which is very handy when different actions need to be taken for different slices.