General description – what the hell will we try to do here: When you find yourself chasing memory leaks, or Heisenbugs for a long time chances are you will have a huge debug log. If the disk gets full and you need only the logs at the end when the problem raises it’s ugly head, use the technique described here.   The technique involves: closing the file handle where the process writes the logs currently – int creat(const char *path, mode_t mode); creating a new…Continue Reading “Hot-swapping a log file on a running process w/ GDB w/o stopping it”

Sometimes you find yourself cheeping out an giving not enough space on you virtualbox host machine. Self-sabotage, masochism – who knows the reasons that rule the decision of not assigning the default 8GBs of space that is ALLOCATED AS NEEDED. Sometimes you give it 32 gigs, and finding that all of a sudden that is not enough… In any case you have the privilege to reverse some mistakes of planing and this is one of them reversible types. Since software is constructed following the principle…Continue Reading “How To: Increase the Size of Red Hat / CentOS / Fedora VirtualBox guest host … and some LVM usage stuff”

Doxygen allows the generation of documentation from source code files for various languages: C/C++, C#, JAVA, Python and others. This is a short document on how to work with it, serving as a reminder for me and maybe helping others at the same time.

Continue Reading "How To: Doxygen"

YouTube videos can take a massive amount of time to upload. For example, 30 FPS, MP4 video of size 870,4 MB takes around 2 hours on < 1Mbps upload speeds: To minimize that time I use a simple workflow (i) and a script that feeds video files into HandBrake video transcoder (ii). You can find the installation steps for HandBrake here. My workflow is simple: - Download the videos from my phone/camera to my laptop; - Add them to appropriate folders that I create based...Continue Reading “How To: Batch prepare videos to upload to youtube with HandBrake”

How to get the HTTP response code of the page: If you mainly used curl for troubleshooting, you actually will be surprised that HTTP response code is not readily available on PJS … although its not that hard to get either console.log('—- Loading a web page —–'); var page = require('webpage').create(),     url = 'http://mandog-test.ml/'; page.open(url, function (status) {   console.log("Status: " + status); // This is not the status we are looking for   console.log('—- Exiting … —-');   phantom.exit(); }); page.onResourceReceived = function(response) {   console.log(response.status); // This…Continue Reading “[WIP] How to: PhantomJs”

The philosophizing … There are dimensions of software products that differentiate them from other systems. To a large extent compatibility between iterations is one such dimension. This probably is because of the tempo at which software pieces are being delivered compared to other systems – if you want to release often and build the piece incrementally you better make sure that people will not have to waste time recreating everything they have done with the previous versions… or that the added value of the new…Continue Reading “How To: Exporting dashboards, visualizations and saved searches from Kibana v4.0.1 … and some software philosophizing”