Category Archives: Development Tools

How to compare C++ builder/Delphi DFM binary files with Tortoise SVN ?


With antique versions of Delphi or C++ builder (<= 4), the DFM files – which define the structure of the application forms – are stored as binary files.
Binary files are a hassle because they prevent any batch processing, search, etc… But only with version control do they become a real pain in the ass. Versions can’t be compared, which makes conflict solving almost impossible. And conflicts happen often because Delphi and C++ builder modifiy DFM files for any reason (ex : moving a form around).

If you use Tortoise SVN and strugle with DFM conflicts, here is a solution to automate DFM comparison : Continue reading

Wattpad API requests must contain a valid browser User-Agent header

Recently, I’ve been playing with the Wattpad API. I was interested in collecting stats about the most popular publications.
Wattpad_logo_svg
Even though the API is simple and well documented, all attempts to use it through a python script failed. Requests were rejected with a “403 Access forbidden” HTTP error. My first intuition was that the basic authentication was incorrectly specified, but despite the API samples, I couldn’t figure out what was wrong with it.

Using WireShark to sniff the API sample requests would have helped solving the issue, but since the API only supports https, sniffing wasn’t an option (I later realized that I could have simply disabled https, just to sniff the request, since I didn’t care about the response).

Eventually, the problem came from the User-Agent header. The python script used a default User-Agent, which was rejected by the Wattpad server. Impersonating a legitimate browser (ex : chrome) solved the issue, requests were immediately accepted.

Below is a Python sample.
Continue reading

The 10 Most Popular Issue Trackers

I was looking for an issue tracking/project management software, and stumbled upon this wikipedia page comparing the features of 43 of the most common ones. A bunch of features can be useful, but you won’t care about them if the job can’t be done easily and quickly, or if you fail to install the software and that there’s no one to tell you what you did wrong.

So, I looked for the most popular issue trackers. Continue reading

How to close Crucible Reviews in batch ?

If you’re using Atlassian Crucible to do peer reviews, you may end up in a situation where you have many pending reviews not relevant anymore that you would like to close in one shot. Unlike JIRA, Crucible doesn’t offer a batch process feature, but you can use its REST API to automate this task. Here are two Windows batch that will take care of completing or closing all pending Crucible reviews in a given id range for a user. Continue reading