On the search for the perfect Python IDE

Since I started to program with my beloved Python, I was using Eclipse and Pydev for that. It’s doing is job fairly well, nevertheless I’m somewhat unhappy about it’s screen usage. Somehow I have the impression, that the Eclipse developers are all proud owners of some one squaremeter huge screens and want to show everyone with a smaller screen, who has the bigger penis. That’s why I had written this bugreport a while ago, when I was trying out the latest Eclipse version, which even made the situation worse.

So even if the developers basically agreed to the issue, there doesn’t seem to happen a lot to improve the situation, so I started looking around for other IDEs. Requirements:

  • Editor with the usual gimmicks, syntax highlighting, automatic indentation etc.
  • Useful code completion
  • Git integration
  • Efficient code navigation and file browsing
  • Better screen usage then Eclipse
  • Some maturity, i.e. no obvious annoying bugs

Most of the programs from this list can be scratched instantly, as they are just somewhat pimped editors, but no IDEs. They don’t actually understand what you’re programming, so they lack features like the lovely ctrl-click in Eclipse, to quickly go to the definition of a symbol. So what would be left as an option is probably NetBeans, WingIDE, PyCharm and Komodo. After I read a recommendation, I gave Ninja-IDE a quick try, but this only falls into the pimped-editor category.

WingIDE was looking quite promising. Trying it out actually even ended up in some nice email conversation with the WingIDE support about suggested improvements, bugs, and things I hadn’t found at first when trying it out. Git integration is quite nice and the code completion and navigation works well. In general it made the impression of having all essential and necessary things without being a bit bloated like Eclipse, providing lots of stuff, that you actually never use. Unfortunately, it currently wastes nearly as much space as Eclipse. Ubuntu menu proxy is not yet used, there is a quite useless bar at the bottom, which can’t be hidden, and the file navigation bar could also need some improvements to be more useful. Some more control about shutting down the program, sending keyboard interrupt or SIGTERM to the running process, would be nice. Anyways, I’m quite looking forward for the upcoming version 5. They promised, that most of the mentioned issues will be addressed until then.

Beschneidungsdebatte: Politische Glanzleistung erster Güte

Dieser gelungene Artikel bei heise “Auch Kleinkinder haben ein recht auf Beschneidung” motivierte mich kürzlich zu folgendem, etwas längeren Kommentar. Die Bezeichnung Dampf ablassen trifft dafür denke ich ganz gut.

Religion an sich ist ja schon Schwachsinn genug, die eine mehr, die
andere noch mehr. Dass jetzt aber zur Legalisierung abstruser,
archaischer Riten auch noch Recht und (Grund-)Gesetz verbogen werden sollen, ist zum Haare raufen! Unser Bundestag hat da ganz
offensichtlich seine Prioritäten nicht im Lot. Rechtsstaat geht vor
jeglicher Religion – da bedarf es keiner Ausnahme! Sonst können wir
auch gleich wieder Menschenopfer für bessere Ernten einführen. Und
wenn wir schon dabei sind, Hexenverbrennungen und Exorzismen gleich mit.

Sämtliche Kommentare im Sinne, dass das natürlich etwas völlig
anderes sei, bitte gleich für sich behalten. Der Unterschied ist
lediglich quantitativ und nicht qualitativ. Beschneidung,
Hexenverbrennung, Steinigungen, Menschenopfer, … immer das gleiche
Schema. Religion maßt sich an, die körperliche Unversehrtheit von
Menschen gegen deren Willen zu verletzen. Dieses Recht räumt sich
hierzulande der Staat noch nicht einmal sich selbst ein!

Und das ebenfalls häufig gebrauchte Gegenargument, woher ich wissen
möchte, dass der Säugling gegen seinen Willen beschnitten wird,
bitte auch gleich vergessen. Solange er nicht aktiv zustimmen kann,
hat da nichts rumgeschnitten zu werden. Sonst könnte auch jeder
Mörder, der sein Opfer im Schlaf überrascht behaupten, das Opfer
hätte ja nichts dagegen gehabt. Hat ja schließlich nicht gesagt, dass
es nicht ermordet werden möchte, das schlafende Opfer!

Natürlich will jede Religion den Nachwuchs frühest möglich
integrieren. Klar, da sitzt einfach die Indoktrination besser. Nur
darf auch Religion kein rechtsfreier Raum sein, sondern hat sich da
unterzuordnen, wo Grundrechte verletzt werden.

Wie diese hirnfreien, angeblichen Rechtsexperten zu einem anderen
Urteil kommen können, ist mir schleierhaft. Das Grundgesetz liest
sich da sehr eindeutig. Auszug gefällig?

GG §1 Abs 1: Die Würde des Menschen ist unantastbar. Sie zu achten
und zu schützen ist Verpflichtung aller staatlichen Gewalt. – Das
schließt körperliche Unversehrtheit mit ein.

GG §2 Abs 1: Jeder hat das Recht auf die freie Entfaltung seiner
Persönlichkeit, soweit er nicht die Rechte anderer verletzt und nicht
gegen die verfassungsmäßige Ordnung oder das Sittengesetz verstößt. –
Hier endet sowohl die Ausübung der ansonsten zugesicherten eigenen
Religionsfreiheit als auch die Ausübung von elterlicher Gewalt
gegenüber den Kindern.

Diskussions- und Interpretationsspielraum? Ich sehe keinen! Der
eigentliche Skandal ist meines Erachtens, dass man im aufgeklärten
Deutschland des 21. Jahrhunderts noch solche lächerlichen Debatten
mit Religionsfanatikern führen muss, und dass diese perverse Praxis
hierzulande so lange ungestört ausgeübt wurde.

Wieso wird der Verfassungsschutz bei solchen Gesetzesvorlagen
eigentlich nicht mal aktiv und buchtet ein paar von unseren hirnverbrannten Abgeordneten ein? Dann würde er zur Abwechslung mal seinem Namen wirklich gerecht werden und tatsächlich die Verfassung
schützen!

Iodine fan page

As a frequent traveller you know that shit: You just checked in into a new hotel, paid a totally exaggerated amount of money, and in the end you find out, that not even the wifi was included. Instead they want to charge you an even more exaggerated amount of money. Per minute! As if we would still be living in prehistoric analog times! But wait, no need for hyperventilating and destroying your room like a rockstar: Thanks to the benevolent Flying Spaghetti Monster, there is Iodine!

So I recently decided to show some sign appreciation for this great project, but couldn’t find a fan page on facebook to click the infamous like-button. Long story short, here it is now.

 

Page revival

Computer nerdYes, I admit it. Deep down inside I’m quite a nerd. Programming, hacks, robots, automating things – it’s great! So in order to collect some thoughts and projects, I decided to resurrect this ancient page. Expect to read some stuff about python, programming and net politics here in the future.

The new name for the blog was inspired by this lovely video, which actually encourages us nerds to be nerdy.

Hair tattoos

Since I got to know the the remarkable hairdresser Mikhail Rodomakin in Odessa some years ago, I became a big fan of fancy haircuts. I was always playing around with the idea of getting some tattoo, but ended up never having one, as I just know, two month after having it, I would think about it as some stuipid idea and would want some other tattoo. And that’s exactly the good thing about hair tattoos: They grow out themselfs.

A while ago we even made it to Odessa television, when I got my second Ukrainian sign tattooed. Enjoy!

Games, games, games

Computer games, yep, I used to play them. Quite a lot even. If I remember correctly, the first game I played was Nibbles, or Snake, as you would call it nowadays probably. This game with the snake eating things and becoming longer all the time, you know it. I was seven, eight maybe? I was playing on an old 286 still with green-only monitor. As a kid, computers were something quite holy and expensive at first, that I weren’t allowed to touch too often.

But the situation became better quickly. We got some shining new 486 with a color monitor. Colors!! And all those lovely jump-n-run games that were suddenly available! Commander Keen, Duke Nukem 1+2 … I guess about this time I started to run into arguments with my parents about how much I was allowed to play the first time. Continue reading Games, games, games

University internships

I stumbled upon my archive with university files recently, and decided some of them would be worth putting online, at least as a memory for myself, like my first first schedule at university. There were some quite interesting projects, that we did there. Sometimes alone, sometimes in small groups. In one of the first terms I had an internship at the Hermann-Gutmann-Werke in Weißenburg. The main idea was to learn, how to work with metal, especially steel and aluminium. I did a lot of drilling, milling, sawing, welding, and in the end, I had build a bunch of nice thingys.

This experience came in quite handy for our next project. We had a competition within our semester, to build a robot for some well defined small task, which we had to accomplish in groups of about ten students. The last years they often had some route finding problems, where robots had to find their way through some labyrinth. But as students already had startet to use some previous code, we got something new. The problem we had to solve, was to grab two pieces of metal from their defined start location and transfer it to a target area. The target area was a printed black ring on white ground, which could be moved around within the white area. So the black circle had to be detected and the metal piece had to be dropped exactly in it’s center. Criterias for the competition were the weight of the whole construction, the precision of finding the circle center and the total time of execution.

When constructing it, it felt like half of the time was spent in endless and pointless discussions about the design, but in the end we achieved some quite good result, actually we even won the competition. The key to that was our design of the mechanism for detecting the circle center. The other groups tried to have some precise construction with a portal robot. In principle they moved a photo diode once in x and once in y direction over the target area, found four spots, and calculated the center from that data. Then they moved the robot there and dropped the load.

The problem with that is, that you have incertainties over the whole construction, and with only one photo diode as a sensor, you have a very bad edge detection. We avoided these issues, using the fact that the circle had a fixed diameter. So our robot arm looked like a fork with three tips. Left and right, we had a whole line of photo diodes upright towards the circle line. The middle tip was holding the metal piece. So the arm was moving into the target area, always following the black lines. As soon as the left and right tip were over the middle of the black line of the circle, no further movement was required and the piece just had to be dropped. It was one of the lightest and still the most precise construction in the field.

An internship, that had quite some impact on my future university life was PEMSY, an internship for programming embedded devices. You get some Atmel ATmega32 microcontroller an put it on a board, which is empty at first. It start putting some LEDs there, and switch them on and of, add some switch, to trigger some action, add a LCD display, a PS/2 keyboard and a RS232 serial connection. Finally we were talking with the RS232 connection to an old mobile phone, could trigger dialing and sending messages, maintaining a phonebook with numbers, triggering all action with the keyboard and the LCD display. Two very intense weeks, where I probably learned more practical knowledge to apply later, than in one year of university before. As I really liked the internship, I ended up becoming the tutor for it as a part time job and stayed with it nearly to the end of my studies.

While studying I was most of the time doing some side jobs, mainly at Siemens, which have their headquater for the medical branch in Erlangen. So as we had to do some more mandatory internships, it was a good choice for me to just stay at Siemens and explore some other departments, which resulted in this first and second report.

I think it was fifth term, when we had a seminar about picking some technical topic and creating an one hour presentation about it. Everybody put quite some effort in that, which resulted for me in these picture rich slides about flow cytometrie.

A bit later I went to China, to the Tongji University in Shanghai, for half a year and became member of the local RoboCup team. Working with Sonys Aibos, I learned a lot about object recognition and wrote a tool in Qt, to visualize the single recognition steps on the fly, make manual adjustments and calibrate the recognition. Quite messy programming, as I had to work with parts of the robots code, where the class structure looked more like a bunch of connected neurons, than like a hierarchy!

Anyways, respect for the team! Unlike many other teams their, they had written their code from scratch totally on their own, and not just reused the open sourced software of the GermanTeam. In the end we became 2nd of the Chinese national competition. My impressions of this half year are collected in my Shanghai Blog. Here are the slides of my final presentation  about it.

After all this experience with embedded systems, doing my diploma work in the same area was the obvious choice. I built a real time measuring system for laser cutting or welding processes, which detects the distance between the laser source and the workpiece, in order to adjust this distance for optimal welding results. I always hated, to write together reports or papers. So doing the actual experiments and implementation was fine, but writing it together was quite a torture, though I’m still quite happy with the final result and this presentation. At that time I was even thinking about starting to work for some German laser manufacturers, nevertheless, the first and only try with an engineering job afterwards was in the car industry. But that’s another story.