Open Letter to the Content Industry. The Schockwellenreiter recommends it and I can only agree: it's worth reading. This is a truly well-rounded rant against these pathetic "content producers" who let themselves be used in open letters to make degrading tirades against and spread lies about the online community.
Archive 17.2.2012 - 6.4.2012
The unbearable finality of pixel space. I tried the linked archiving tool for Flickr once and it works really well. I can even forgive the PHP for that. I have also occasionally pushed Flickr images into this blog (the "Neulich auf Flickr" posts), but the advantage of this backup script is that the structure and even the Flickr access rights are preserved. Unfortunately, albums and sets are not yet backed up, only the photostream. And the layout is very spartan. But maybe this would be a candidate to play with Bootstrap 2.0 and spice up the whole thing a bit.
flatiron/plates. An interesting JavaScript templating engine that takes a slightly different approach than many others - there is no separate template language, only HTML and JavaScript. Any logic is in the JavaScript and any structure is in the HTML and both are quite strongly separated. Instead of a template language, there are functions for precisely specifying which elements in the HTML should be changed how.
Recently on Google+
I have uploaded new pictures to Google+. Here they are - unsorted and uncommented.
RQ: Documentation. Hmm, python-job-queue based on Redis with a rather simple interface. Could be an interesting alternative to Celery.
Kenko extensions tube with full electronic control!. Woopdidoo. Ok, extension tubes are not the optimum in terms of performance, but still quite interesting, as they offer a relatively simple and usually cost-effective way to improve macro capabilities.
iphone - What happens to JavaScript code after app is compiled using Titanium Mobile - Stack Overflow. I was also interested in the question, so I blogmarked it here. Quite interesting what happens there, it goes much further than what PhoneGap does, for example.
Titanium Desktop – Node.js Prototype « Appcelerator Developer Center. Titanium is already on the list of things to test because, alongside PhoneGap, it is one of the ways to turn JS+HTML code into apps and desktop applications. And here, one of the developers shows how to integrate a node server into the desktop. This would also be quite interesting, although it probably won't work with iOS and Android (since there you are forced to use the JS engine provided by the system in the browser widget if you want to load dynamic code from outside).
Embedding and running Node.js within a Firefox XUL extension. Impressive what you can do with Firefox and its infrastructure. Theoretically, you could also modify this extension so that it runs in a single-site browser, which then directly opens the homepage of the embedded server, allowing you to build completely autonomous desktop applications in JavaScript (and for those wondering why I'm collecting all these JS-on-desktop things: with the help of Phonegap and some glue, you could not only build apps for iOS and Android, but also desktop applications with the same code).
NodObjC. I'm not sure if I really want this, but with this library you can bridge ObjC frameworks with JavaScript. This could be interesting, for example, in the context of PhoneGap, if you need to access iOS native APIs that are not yet provided by PhoneGap (though you need Node.js as a basis, I don't know if that already works on iOS).
topcube. I should take a closer look at this - a desktop app that includes an embedded web server (node.js) and browser (GTKWebKit). With this, you can build desktop applications based on JavaScript and Node.js - for example, also rebuild Amber Smalltalk into a compact desktop application. Unfortunately, the OSX support is still somewhat limited.
haypo/pysandbox. Something to look at again: a sandbox for Python scripts. According to the project description, it's not necessarily a security solution but rather just a simple protection for the Python process. Thus, it would at least be usable as a simple safeguard for a main process against errors in extension scripts.
Recently on Flickr - Black and White Edition
I have uploaded new pictures to Flickr. Here they are - unsorted and uncommented. This is the black and white version.
Recently on Flickr
I have uploaded new pictures to Flickr. Here they are - unsorted and uncommented.
SynthCam for iPhone. Uses the camera's video feature to achieve a shallow depth of field effect. What it does is a stitch from many individual images, where defined areas (via tracking) become sharp and other areas become blurred through camera movement. Pretty cool stuff.
Depth of field. Good explanation of what depth of field really means mathematically. Quite interesting to read if you don't yet fully understand the relationships (Hint: the primary factor is the imaging ratio, everything else is just a function of it).
No Quick-Freeze: Chancellor urges Rösler to implement data retention. Isn't that funny? An EU commission wants something that has been rejected as unconstitutional in several member states, partly stopped by courts. There is a chancellor who has already been reprimanded by the Federal Constitutional Court because she pushed through an unconstitutional law. There is an EU commissioner who announces a new version due to constitutional problems. And what does the EU do? It threatens with penalties if the current, non-constitutional version is not implemented. And what does the chancellor, who is sworn to uphold the constitution, do? She wants to enforce a regulation against the objections of her own justice minister and against the decision of the Federal Constitutional Court over the Rösler boy (of course she takes him, after all, he has been on the chopping block since the NRW debacle and is dispensable). And amidst all this nonsense, the prolethicians in Berlin wonder why everyone is so upset about their surveillance fetish. A comedian who comes up with such an absurd story would be booed.
Cat Content
The Schockwellenreiter has recently shown the way, and I really can't resist the essential cat content in the blog world anymore. Health.
BOO - Getting Started. After a long time, I took another look at Boo and I like what's happening there. Still very strongly based on Python in terms of syntax, but semantically quite different - for example, real macros in various variations, so that there is really an extended syntax. Or also the optionally available Duck Typing - a variant that I particularly like, because Boo combines static typing, type inference and Duck Typing in a way that really keeps all options open for the programmer. Then there's the good integration with .Net and C# assemblies. I think I need to play around with it a bit more, because as a prototyping language it could be quite practical - and at the moment I tend to use Mono more as a runtime, primarily because of the JIT implementations available there (and with Mono also AOT compilation, where it is needed).
Beef Roulades
Yes, very simple, just beef roulades. With homemade filling, of course. The ingredients are quite simple, actually the hardest part is waiting for the long cooking time:
- 4 beef roulades from the butcher (I don't know how to get the quantities for less, besides, 4 fit well in my pot)
- 125g diced bacon
- 5 small pickles (vinegar or even spicy seasoned, but better not the salty ones)
- one thicker onion
- two cloves of garlic
- marjoram and rosemary as spices
- sharp mustard
- 500ml beef broth, red wine and tomato paste for the sauce (and the wine to drink with the meal)
The roulades are spread with mustard, then the filling (bacon, diced pickles, onions, garlic, spices) is placed on top, then rolled up and fixed with roulade clamps or kitchen string. Then the roulades are seared on all sides in the pot. Put the lid on the pot in between, because then more of the juice stays liquid and it doesn't splash all the time so terribly. Once the roulades are browned all around, remove them from the pot, set them aside somewhere, then stir the fond with the red wine, a little tomato paste and the broth. Bring the whole thing back to a boil, then put the roulades back into the soup and let it simmer for 1.5 hours. Remove the roulades and thicken the juice in the pot with Mondamin for the sauce. We also had leftovers from the vegetables last time, it also goes well with noodles or rice or potatoes or whatever you like with it.
pyp - Python Power at the Prompt - Google Project Hosting. Since I prefer to play around with Python rather than awk or perl, this is quite an interesting tool. You can use it to edit text files with similar features as awk and perl. And all of it as a one-liner - pyp simply defines a few variables and operators that you can use. Looks quite good.
Gprowl is a nice little script that monitors a GMail account and sends messages when a new message appears in the inbox. With this, you can create push notifications if you use Sparrow (which does not yet support push notifications). Of course, it also works with forwarding and BoxCar, but I don't really want to forward my spam to other servers ... (and hey, the script is in Python!)
Clojure-Py. I can't quite say what I think about it yet, but someone is building Clojure (the language) with Python and PyPy as the target platform. Basically, this is certainly an interesting idea, as the LLVM-based JIT implementation of PyPy can also compile other things. And since I am a fan of both Python and Lisa, something like this has to pique my curiosity. The language scope of Clojure is not yet fully represented, but that can still come.
LensRentals.com - Undressing an NEX. Very interesting, a completely different look at a camera - at the innards. Even if it was somehow more interesting with the mechanical cameras earlier, I also find the "inner values" of the NEX quite impressive. Oh, and as a system, they have Linux (unfortunately still not hacked and opened).
Create a package for IOS — Kivy 1.1.2-dev documentation. Kivy - a GUI framework for Python - now also offers a way to package the application for iOS and, for example, run it on an iPad. No idea if it will actually be accepted in the AppStore, but the developers have already managed to get a program based on it in there, so the chances are good.
Recently on Flickr - Black and White Edition
I have uploaded new pictures to Flickr. Here they are - unsorted and uncommented. These ones are missing color.
Recently on Flickr
I have uploaded new pictures to Flickr. Here they are - unsorted and uncommented.
wbond/sublime_package_control. This is quite interesting - it seems like an ecosystem around Sublime Text 2 is slowly being built, similar to vim or TextMate. This will make the integration of extensions easier in the long run.
JulianEberius/SublimeRope. Very interesting - an integration of Python Rope (a refactoring library for Python code, written in Python) into Sublime Text 2. This will then provide refactorings directly in ST2 - one of the features I have learned to love in PyCharm (especially syntactically correct rename and extract method) and which were previously missing in ST2. I should probably take a look at it, although for projects where I need refactoring, I tend to go straight to PyCharm, simply because many other things come with it (e.g., the integrated debugger). Lately, I tend to switch between editors for simple things and IDEs for large projects, even if you then have to learn different operations - the use cases are just too different to handle with just one tool.
HyperCard, Visual Basic and the Importance of the Novice Developer. Interesting article that puts HyperCard in relation to Handheld Developer. And after playing around with Handheld Developer, I would say they are not completely wrong - it is a nice visual environment for creating iOS web applications with integrated hosting with which you can quickly put together a prototype and even get server-side scripting in JavaScript. Ok, it is not quite cheap, but there is a test version to see if you could have fun with it. The applications are actually not so fixed on iOS, because in principle it is just HTML5 and JavaScript - and should therefore also work with Androids (I have not tried that yet).
mtravers/heroku-buildpack-cl. And yet another Lisp link - here someone has relied on Heroku's buildpack-capable stack and built a buildpack for Clozure CL, so that you can also put Common Lisp in the cloud through it. Although this then has less similarity with Google App Engine, but rather with something similar to Amazon EC2.
Heroku | Clojure on Heroku. And even more Lisp. With Clojure, you can now also work on Heroku, the cloud platform. This might be an alternative to, for example, Google App Engine (on whose Java incarnation Clojure also runs).
Deep down inside, I'm still a Lisp fan. That's why the ecl-iphone-builder by Terje Norderhaug is very interesting to me - with it, you can compile a version of Embeddable Common Lisp for the iPhone or iPad and then deploy it to an iOS device via Xcode, start a Swank server there, and then connect remotely - and then play around or program with Lisp on the iPhone. Ok, the binding to the OSX APIs is still a bit brittle.
Room 101: The Miracle of become:. One of the corners where Smalltalk clearly differs from all other languages I have had to do with so far (except Common Lisp, but that's different, because everything is possible there), is the become: method, with which two objects in the running system exchange their identity - so that after the call all references to a after a become: b then refer to b and vice versa. This explains what this means in practice.
Chrome can be cracked in five minutes | Products | futurezone.at: Technology-News. Oy Gevalt! I think some people need to rethink things now. No, sandboxing is not a guaranteed solution for security, it is at best a single component of a complete solution. And yes, making programs more complex also increases the complexity of the security situation. And eventually, there will be a breakthrough like this. (and no, the other browsers are no better, Chrome was just considered "secure" for longer and after the last Pwn2Own it was considered "uncrackable" by some)
[[[New App]] Impressive: AIDE Is An IDE That Lets You Write And Compile Android Apps On Your Android Device, Begs For The Yo Dawg Treatment](http://www.androidpolice.com/2012/03/06/android-gets-a-native-ide-lets-you-write-android-apps-on-your-android-tablet-is-begging-for-the-yo-dawg-treatment/). Android development on Android devices (preferably tablets). That is so meta.
Vagrant - Virtualized development for the masses.. Looks good, you can quickly set up a development environment based on BSD or Linux via the command line - and then work with it without having to manually install a bunch of things. Basically appliance templates that can be installed via command line tool. And a whole range of systems are offered as hosts (including OSX, for example). So, for example, also a very easy way to set up a LAMP stack or something similar under OSX.
PySide for Android thp.io. That sounds very interesting - this way I would have a much more favorable programming language at my disposal to build Android programs. However, the start time of Activities written in Python might be quite significant due to the loading times of the Python stack and the Qt libraries. But for building a few small tools for personal use, that shouldn't matter.
Robin Wong has tested the Olympus E-M5 and posted a mountain of sample photos. Looks very promising already, and the dynamic range tests also show good results. It will be exciting to see when the first pixel-peeper sites jump in and publish measurements, but based on the samples I would say that the E-M5 comes - at least at the lower ISO values - quite close to the Sony NEX series in terms of dynamic range.
Hyper-V, Virtual Machines, Drive Letters, Madness, Microsoft
Yupp, the above combination is really not great. Scenario: Hyper-V machine, several virtual machines, some with snapshots, various very long-running installations and a lot of work in these machines. New machines are created based on existing images, which are each generalized with sysprep and prepared for first use and then configured.
Enter the system administrator: a new virtual machine created, sysprep running, unfortunately not in the virtual machine, but on the Hyper-V server. It was then gone. First panic attack.
Colleague has revived the (of course remote) Hyper-V server and put it back into the domain, I get on. All configurations still there, all virtual machines still there. Not a single one of them works. Second panic attack.
Trying to edit virtual machines, no go - the configurations are not accessible, Hyper-V thinks they are all on drive C:. Checked, oh, the drives I: and J: (where the machines were before) are no longer there, have different letters. Ok, letters reversed and Hyper-V restarted. None of the machines run, they still think they are on C:. Third panic attack, as I realize that no configuration changes can be made.
Well, even in the configurations and the registry there is nothing about this mysterious C: - where does it come from? After a long search, found, for each virtual machine and for each snapshot Hyper-V places symbolic links under NTFS. These are located under %systemdrive%:\ProgramData\Microsoft\Windows\Hyper-V in the subdirectories "Virtual Machines" and "Snapshots" and point to the real target files. And in a magical way, all of these pointed to C: - apparently "corrected" NTFS at startup defective symbolic links that point to non-existent drives. Great.
So the links were recreated (first only an unimportant server, so I can see if it works). Of course it doesn't work, because Hyper-V ignores the nice new symbolic link. Permissions are wrong. Icacls can fix that - "NT VIRTUAL MACHINE\
Found, while swearing, that a Frenchman also had problems with this - Microsoft in its great wisdom has localized the names. Under the German version, therefore "NT VIRTUELLER COMPUTER\
pyprocessing - A Processing-like environment for doing graphics with Python - Google Project Hosting. Processing, for Python. It's already in the title.
Former Federal President Wulff receives the honorary salary. We (the taxpayers) are now seriously paying the bargain hunter 200,000 euros every year, until the end of his life. Expensive fun. And of course, a resignation because of the revelation of his creative financial management and his many friends is very political. And then the backbencher in the Bundestag is still surprised about the political disillusionment.
41MP Nokia 808 smartphone hints at pixel-binning future for small sensor cameras. I also raised an eyebrow at first reading - 41 megapixels in a phone sounds ridiculous, and Symbian doesn't really sound future-oriented. DPreview takes a closer look at what these 41 megapixels actually mean - the chip is significantly larger, so the pixels aren't really smaller than those in normal 8-megapixel phone cameras. Multiple pixels are combined to create a typical target image in the 5-8 megapixel range (the full resolution is also available as an option) to improve noise and other artifacts. Therefore, it is most comparable to the Foveon concept, where the pixels are simply placed in front of each other instead of next to each other. However, Symbian is not future-proof regardless of the photo part.
Temporal Keys, Part 2 | Experimental Thoughts. One always learns new things about PostgreSQL - this time PERIOD, a data type that encompasses time spans, and EXCLUDES, another form of constraint on tables, with which overlaps of time periods can be avoided in the data design together with PERIOD. In Dynamics AX, there is something similar in the form of Date Effectivity, which goes a bit further because it also includes automatic creation of new areas, gap-free timelines, etc., while this is only the basics for non-overlapping data records. On the other hand, this can be used much more broadly, as you can formulate any EXCLUDES constraints.
ResponsiveSlides.js · Responsive jQuery slideshow. I am a fan of Bin and Lightbox, but I also like this small library at first glance - it is simple and easy to use and does not do a thousand things at once, but simply shows images in a slideshow. Specifically for animating header graphics, for example, this could be quite interesting.
6: Sony infrared conversion service. Interesting - if I ever have a Sony (and have 250 euros to spare - so probably never), I could take advantage of this. Infrared photography without filters is quite interesting.
Carnival. And now please take off the paper noses, okay?
Juliana has never experienced anything like this before, so we went to the Rosenmontag parade in Münster. I have no idea when I last attended a carnival parade, it must have been over 30 years ago. Well, fortunately, the parade in Münster is largely staffed by Dutch carnivalists, otherwise it would have been quite boring and colorless. And you shouldn't expect current political comments - in Münster, no one had to change the carnival float because of a (former) federal president.
The Julia Manual. Hmm, not yet sure what to think of this language, but it does sound interesting - a kind of Matlab, but based on LLVM and linguistically significantly renovated, with some interesting ideas (e.g., Julia expressions are stored internally in a Julia-specific data structure, so that real macros can be implemented).
German Keyboard Layout under Parallels, VMWare, BootCamp and VirtualBox - Info - Schirmacher. Because I needed it just now - this moves the special characters that you do need occasionally when programming to keys that are more Mac-like. Not perfect, but much better than the standard PC layout, as the MacBook usually doesn't have any markings for these special characters, so you would otherwise search for them in vain.
Mac Developer Tips » How to Uninstall Xcode. There is also an official way to get rid of XCode. Just linking to it, because unfortunately XCode can dynamically load what you need from the internet, but not get rid of it - for this you are allowed to delete the XCode stuff and then reinstall it (smaller). Just the iOS stuff alone takes up 6G, so you can save a lot if you don't plan to program the iPhone.