Archive 2012

Comtypes: How Dropbox learned to stop worrying and love the COM. Filed for future use. Accessing COM APIs in Windows from Python with fairly lean means. Could be interesting for one or the other admin tool in the company.

DataNitro. If you want to program your Excel spreadsheet in Python, this is the place to go. Might be interesting for one or the other number cruncher who uses Excel as a frontend.

Android-x86 - Porting Android to x86. Hmm, could this be a fun toy for my old eeeBook? I mean, it would be a pretty fat tablet with an integrated keyboard and an incompatible processor, what could possibly go wrong?

Pyjnius: Accessing Java classes from Python | Txzone. Very interesting side project of Kivy - with this you can quite easily integrate and use Java classes in Python without having to switch to Jython. It is based on Cython and JNI and integrates directly into native Python. Kivy is slowly becoming a real alternative for Android development that I should take a closer look at.

Beef Roulades with Parsnips

Something new - cooking with documentation! Juliana wanted to have the whole thing documented to show it off, so we took turns waving around the cooking utensils and the camera. And surprisingly, it all worked out - and it tasted great too!

So the ingredients for today's menu:

  • four beef roulades (about 850g of meat)
  • 3 parsnips
  • one carrot
  • some celery
  • green onions
  • spices (pepper, salt, ginger, hot paprika)
  • 250g bacon
  • a few cucumbers
  • a few cloves of garlic (feel free to use a few more)

Preparation came in sections, as this is quite time-consuming, especially with the time. So here is the preparation including the breaks (the steps are oriented towards the pictures, so just look at the appropriate picture above for each step):

  1. Chop celery, carrots, and green onions finely and prepare them for the broth in which the roulades are braised
  2. Mix bacon, diced cucumbers, and finely chopped garlic and prepare them for the filling of the roulades
  3. You need sharp mustard to spread on the roulades. Also in the picture are the cucumbers - they were with chili on them, which are great for roulades.
  4. Spread the mustard on the roulades, don't be too stingy.
  5. Distribute the filling on the roulades.
  6. Repeat the whole process with each roulade. Also visible are the roulade rings with which I hold the roulades together.
  7. Then all roulades are filled and rolled up.
  8. Sear the roulades
  9. Until they are nicely browned all around.
  10. Remove the roulades from the pot
  11. And add the vegetables for the broth
  12. Sear and braise the vegetables thoroughly (for a few minutes)
  13. Put the roulades back in the pot and fill with water and red wine so that the roulades are about 3/4 covered.
  14. Bring the broth to a boil and then braise the roulades for 2 hours at 190 degrees in the oven. The pot is hopefully oven-safe?
  15. Start with the parsnips about 1 hour before the end. (Well, it was more like 45 minutes before the end for us, but it was enough)
  16. Cut the parsnips into sticks
  17. Fry the parsnip sticks in the pan, season them with ginger, hot paprika, and pepper, braise them thoroughly until they are soft, then add some salt
  18. The broth must be pureed and turned into a sauce with cream and sauce thickener
  19. When the roulades are done braising, remove them from the pot and puree the broth
  20. Mix the pureed broth with cream and then add the sauce thickener
  21. Prepare the sauce back in the pot, bring to a boil, and add the roulades again so they lie nicely in the sauce. It just tastes better.
  22. Look forward to the meal
  23. And bon appétit!

It was fun to cook and even more fun to eat. Very delicious. Parsnips are a bit like a mix of potatoes and carrots with a slight cinnamon note in the taste. It was the first time for us that we prepared and ate them, it was very delicious. And the roulades were absolutely the highlight this time.

#21866 Remove AtomPub from core – WordPress Trac. Pappnasen. There have been bugs for years, yes. But they could have been fixed. Instead, AtomPub is being removed - but completely ignoring that the old WordPress XMLRPC stuff doesn't do the same thing - for example, it doesn't provide proper metadata updates for media uploads, which will result in only being able to use the AtomPub Plugin to sync images from Lightroom to WordPress with an export service in the future. There are still one or two things in this area that don't work properly, which is why I have always preferred to work with AtomPub from Lightroom. Now I can look forward to having to overhaul my entire image workflow after WordPress 3.5.

Jetstrap - The Bootstrap Interface Builder. Maybe check it out - with this you can design Bootstrap sites in their structure without having to fiddle with the CSS yourself. The output can then be used as a basis for your own website. Looks quite nice.

X11-Basic Homepage. And since I'm on the topic of Basic - X11 Basic is a GFA Basic clone that has many extensions and runs on all possible systems. Among other things, there is also an Android version - although on my Galaxy Nexus the font is no longer elderly-compatible and on the Nexus 7 I'm considering reaching for a magnifying glass. With this Basic, however, it's more about being able to maintain old habits rather than really working with the new systems - the Android specifics are quite manageable.

RFO BASIC! for Android. Fun system to play interactively with Android stuff - and especially to do that on the go. Basically a souped-up Basic with support for various Android sensors and access to all kinds of system services (e.g. SQLite), so you can really do a lot with it. Basic programs can even be converted into APKs that can be distributed as standalone apps. This brings back the feeling of programmable calculators from the 80s - amateur programs, but self-made hacks and tools.

Mr McNamee suggested that repressive regimes would “laugh till they choke when the EU next lectures them regarding free speech online”: via Clean IT: Die EU-Kommission will das Internet überwachen und filtern, ganz ohne Gesetze.

Plug-ins for Adobe Photoshop Lightroom | Adobe Labs. If you use manual lenses on Sony NEX cameras and rely on ultra-wide-angle or similar, you might know the phenomenon: asymmetric darkening and an asymmetric color cast in the edge areas. Can this be corrected in Lightroom now using a reference image and this plugin.

Jforc Contents. J for C Programmers. To make their brains smoke and steam. Which is not always a bad thing. There is even J for Android, so you can play around with it on the go. Especially compact languages are particularly pleasant on mobile devices with small screens. More functionality fits in when the function is noted compactly. However, you then also have to live with the fact that the code looks a bit like line noise.

toastdriven/django-tastypie. I think I've mentioned this before, but it doesn't matter, it still looks interesting - an alternative to django-piston with significantly more functionality (for example, quite extensive options for authentication and authorization). What does it do? REST interfaces for Django models including their relations. In various formats (XML, JSON, YAML).

linq.js - LINQ for JavaScript. What it says on the tin. LINQ for JS objects and arrays. Which can make the code more readable when dealing with structured data from services that are rendered in the browser via JS.

Postgres-XC project Page. Multi-Master (Read and Write) Cluster for PostgreSQL. Supports replicated setups as well as partitioned setups (or mixed forms).

Online Python Tutor - Learn programming by visualizing code execution. Great if you're learning Python as a beginner and want visual support to understand what the code is actually doing.

pyMCU - The Python Controlled Microcontroller. Alternative for those who would rather use Python instead of Arduino and its Processing-based development environment. Since I've been playing around with Android, Java has lost much of its terror for me; you get used to everything. Presumably, my COBOL experience from the first 10 years of my career helps here; once you've been through that, almost everything is acceptable.

amoffat/sh. Cool little module that integrates external commands as if they were functions. You simply call a function git with a few named parameters and get the git output as a string. Makes shell scripts in Python much more compact and readable. Exactly the right thing for sysadmins.

MS Optical Sonnetar 50mm f/1.1 Test pictures | Japan Camera Hunter. It's simply interesting that there is a lone wolf in Japa (where else?) who produces handcrafted lenses with M-mount in single production.

Android Bootstrap. Hmm, maybe I should check it out - it should help you get a framework for an application done faster than if you manually put all the pieces together yourself. The idea behind it is a bit like the various HTML and CSS bootstraps - a base that you then further edit. Although I don't find the normal Android APIs so terribly complicated in general.

Buildroid for VirtualBox | BuilDroid. An alternative for AMD CPU owners and VirtualBox users to the previous part from Intel: this starts Android in VirtualBox and makes it available as an emulated system. Sounds quite interesting, especially since I already work a lot with VirtualBox and therefore this might be less stressful for me.

Supercharge Your Android Emulator Speed - Developer.com. Interesting - Intel has its own Android images based on x86 and a virtualization driver that allows the Android emulator to run at native speed. The downside is that it conflicts with VirtualBox and you can only run one or the other. But if you absolutely have to work with the Android emulator (e.g. because you don't have a developer device with you or because you can't have all device forms as hardware), this is definitely still interesting.

David Waring - Remember the Milk CLI. I switched from OmniFocus to RTM because OmniFocus is a data silo on Apple systems - and especially for tasks, I don't want to be tied to a platform but be able to move to any arbitrary one. And RTM is the only service I have found so far where you can define recurring events with appropriate power (specifically, the "repeat after X units after checking off" is important). Well, here there is a Python CLI solution with which you can even use the Linux command line for your tasks. And with that, todo.sh is probably done for me, because that way everything ends up in a database.

Leipzig

On the occasion of our first wedding anniversary, Juliana and I went to Leipzig and, among other things, visited the zoo there (and also the Museum of Musical Instruments and the Ethnographic Museum, but there are no pictures of that).

Lazarus 1.0 release available for download. Great, the Pascal IDE is now available in version 1.0. And also for OSX. I've always played around with the pre-releases and it's really impressive what's all included. Nevertheless, I ended up with RealBasic, but I still have Lazarus and FreePascal installed and play around with them from time to time.

Cameron Lairds personal notes on varieties of Python implementation. And if by now there are too many Python variants to keep track of: someone has already done that, keeping track. And yes, there is a whole bunch of different distributions and implementations.

Numba vs Cython - Pythonic Perambulations. Another alternative to Cython and PyPy, with which you can marry LLVM and Python for performance gains. Here, real Python code is accelerated without modification via decorators, which is an extension to normal Python, so all libraries remain available and only the performance-critical routines are post-processed with LLVM.

Another rescue package. That's why I probably won't link to media anymore in the future. Newspapers and such nonsense. And to be quite honest? I even hope that Google removes German publishers from the index. Completely. Then let the screaming and later complaining begin, as in Belgium. At least the entertainment value would finally be there again.

KDE Necessitas project - Welcome to KDE Necessitas project. Hmm, it has received a new homepage, but more importantly, a new Alpha4 which will soon become Beta1. And from Beta1, ABI compatibility is guaranteed and then it will be a real alternative for Android development. Ok, C++ is not really much better than Java for me - quite the opposite. But it has the advantage that you can write apps with QT and C++ that can be made available as desktop applications with little effort. So just take a look when I find the time.

rawson.js - a camera raw previewer in javascript. Jupp. A RAW module for JavaScript. It's crazy what can be built with JavaScript. Although, after the PC emulator running in the browser that boots Linux, nothing should surprise me anymore.

commonsguy/cwac-anddown. Another Markdown implementation - this one uses sundown internally and JNI and the NDK to have a fast implementation of Markdown on Android. Worked flawlessly for me with the Nexus.

LuminosoInsight/python-ftfy. A handy little tool that cleans up various inconsistencies in text encodings after something has gone wrong. This is of course no substitute for correct use of encodings in Python, but sometimes you get your input from external sources (or have legacy data from old programs from times when the whole Unicode stuff was not yet so well developed) and have no influence on how the data looks - in that case, this is a very practical little tool.

kmike/marisa-trie. Very practical - there are quite a few things done in Python with Dicts that actually belong in other structures. Especially the prefix search and the search for existing prefixes is practical. And all of this with a C extension also quite fast.

Arduino - MacOSX. What fascinates me about Arduino: the simple interface of the IDE (which is just an enhanced Processing) and the pile of crazy projects around it, such as Digispark, a mini-board that can do less but is tiny and runs directly from the USB port. You can really think about things like water level sensors for plant irrigation or similar. With the prices for the mini-board, this becomes directly realistic.

myabc/markdownj I should check out, because JMD is somehow still a bit buggy and the developer is no longer doing anything with it. This is a port of the original Perl sources, so it heavily uses Regular Expressions, but that shouldn't really cause big problems with my UniversalBrain program structure, since I cache the HTML output. Maybe it behaves better than JMD. Although, of course, the question is whether it can be properly integrated as a library.

mitotic/otrace. Interesting alternative Python debugger designed for debugging and tracing multithreading applications. It's less about stepping sequentially through the Python code and more about analyzing an environment that dynamically changes through threads (the normal Python debugger is a bit cumbersome here).

Cletus/jmd. Since PegDown doesn't run on Android because the underlying parser wants to generate a dynamic parser class, which is not allowed there, take a look at this. It should also be quite comprehensive and is based on the Markdown# project for C#.

mitmel/SimpleContentProvider. Looks like a simple ORM that automatically generates an Android Content Provider. This makes the creation much slimmer in code.

sattvik/neko. Also noted for later, Clojure for programming Android applications with a few bindings for the Android APIs. Although the question remains whether they have tackled the startup problem, or if that still limits the use of Clojure.

ActionBarSherlock - Home. For later use: this allows you to use the ActionBar in code even on older Android versions, it automatically uses a backport if no native ActionBar is available.

sirthias/pegdown. Interesting Markdown implementation in Java, based on a real parser and not the usual ad-hoc parsers or collections of regular expressions. Could be an interesting starting point for me, especially since it also comes as an Idea project and I should be able to integrate it quite easily.

Recently on the Internet

I have uploaded new pictures to Google+ and/or Flickr. Here they are - unsorted and uncommented.

Recently on the Internet (Black and White Edition)

I have uploaded new pictures to Google+ and/or Flickr. Here they are - unsorted and uncommented. This is the black and white version.

n8han/giter8. And another practical tool, not necessarily Scala-related, but very useful: templates stored on GitHub are used to set up project structures. There is also a template for Android projects that use Scala.

Getting started · jberkel/android-plugin Wiki. And here is the central element for Scala programming for Android. This provides various sbt commands that handle Android integration and delivery.

mpeltonen/sbt-idea. Hmm, interesting - an sbt plugin with which you can generate Idea project structures. With this, you can then use the IDE at the points where you want to use it on the same project. For example, for remote debug integration, the IDE is quite nice.

Android programming with Scala. A bit stilted language, but useful content. The article provides a nice overview of what you gain when using Scala for Android programming. I need to take a closer look at this myself, as typing in Java sometimes gets on my nerves. Additionally, a workflow with sbt and a normal editor sounds much leaner than the various Java IDE environments. And some Scala language features practically scream to be used in the Android environment (especially traits).

Postbox — Awesome Email. I was never really enthusiastic about Thunderbird, so the announcement that it would no longer be developed didn't bother me much. But the fact that Sparrow now belongs to Google and, according to the announcements, nothing more is to be expected from it, really annoyed me - it was one of the faster clients for gmail and also had usable feature support for it. The Apple Mail client is rather stiff in comparison. Postbox claims to support gmail features, so it might be worth a try if Sparrow can no longer be used reliably due to bit rot.

Facebook analyzes chats for crime fighting. Is this then under the project name "fully automatic informer"?