Author: gpanther

  • A (mostly) cross-platform clickable map of Romanian counties

    TL;DR – I’ve created a map of Romania’s counties (judete) using Javascript which can be used as an alternative for drop-down boxes during form input. It works great with FF and Chrome :-). See it in action and browse the source code. The map is based on the SVG drawings from Wikimedia Commons postprocessed in…

  • Every end is a new beginning

    TL;DR: I’m shutting down the twitfeeder project (it was on lifesupport for a long time) so I mirrored a technical article from the blog in the hope that it might be useful for somebody someday. Proxying URL fetch requests from the Google App Engine Hosting on the Google App Engine means giving up a lot…

  • Helper for testing multi-threaded programs in Java

    This post was originally published on the Transylvania JUG blog. Testing multi-threaded code is hard. The main problem is that you invoke your assertions either too soon (and they fail for no good reason) or too late (in which case the test runs for a long time, frustrating you). A possible solution is to declare…

  • GeekMeet talk about Google App Engine

    The GAE presentation I’ve given for the 12th edition of Cluj Geek Meet can be found here (created using reveal.js). You can find the source code here.

  • Lightning talk at Cluj.PM

    The slides from my Cluj.PM lightning talk: It was a stressful (but fun!) experience. Thanks to the organizers!

  • Running pep8 and pylint programatically

    Having tools like pep8 and pylint are great, especially given the huge amount of dynamism involved in Python – which results in many opportunities to shooting yourself in the foot. Sometimes however you want to invoke these tools in more specialized ways, for example only on the files which changed since the last commit. Here…

  • Clearing your Google App Engine datastore

    Warning! This is a method to erase the data from your Google App Engine datastore. There is no way to recover your data after you go trough with this! Only use this if you’re absolutely certain! If you have a GAE account used for experimentation, you might like to clean it up sometimes (erase the…

  • Relaxed JSON parsing

    This blogpost was originally posted to the Transylvania JUG blog. JSON is a good alternative when you need a lightweight format to specify structured data. But sometimes (for example when you want the user to specify JSON manually) you would like to relax the formalism required to specify "valid" JSON data. For example the following…

  • Updating the root certificates for Java

    One usually thinks of SSL in the context of HTTPS, but there are also other protocols which rely on it to provide security. See this link for a short overview of SSL – it only mentions HTTPS, but the same applies for IMAPS, FTPS, etc – SSL is independent of the wrapped protocol. You can…

  • Vagrant and VirtualBox on Windows

    Vagrant is a collection of scripts written in Ruby to manage VirtualBox images in a shared environment (like the QA boxes inside a company): install them, update them, etc. Unfortunately installing it under Windows is not as straight forward as one would want, so here are some useful tips: Read the Windows setup page and…