Archive 13.1.2011 - 7.2.2011

RUR-PLE is something like Logo, only with Python instead of Logo as the language. So actually just the graphical environment of typical Logo implementations. In any case, a nice toy.

using negotiate authentication (GSSAPI Kerberos) with Firefox. We have looked at this from time to time and wondered how to link Firefox to Kerberos logins.

Newcomer: Kenko to offer system camera with C-mount lenses. Simply interesting because this brings another somewhat unusual system camera - C-mount are compact video lenses, there are also some from Zeiss (so with quite good quality) and the image circle of these optics is rather suitable for compact camera chips. This naturally means worse low-light capability, but chances for very compact bodies (although my NEX with its APS-C chip already delivers a very compact body). It's a bit like the heyday of analog photography in the 35mm format again, when the market became really colorful with the Olympus Pen, the Pentax 110 and other camera exotics. I like it.

what a superb owl

superb owl Probably from here (I only heard about it indirectly via Twitter).

Lenzig

Played around with the Auto-HDR of the Nex-3 in Cafe Lenzig, also used the Zeiss 50/1.4 via Novoflex adapter. Somehow, I really like this.

How to write vim plugins with python. Because I like Python, because I like Vim and because you always want to build smaller things that make life easier. And because Vim's own scripting language is rather awful.

It seems that the Sony Alpha NEX-Open-Source-Firmware is Linux-based. I can't yet say exactly what's behind it, but Sony has Linux Kernel downloads (and the usual embedded tools) for the NEX on the server. If there's really a Linux running on it, this could become a hacker's paradise in the long run!

Layout Experiments

Since I'm still figuring out where my new blog is going, there are always some layout experiments. The first iteration was a bit too dark for me, so everything is now a bit lighter. I also noticed that I write a lot of asides (short articles without titles), which can be a bit hard to read, so I've adjusted the font size and line height of asides to match regular posts. Overall, I think it looks a bit more relaxed now.

In response to a question: no, I still don't plan to make the links colorful again - in fact, I've even removed the color from the small date tags. For some reason, color just doesn't seem to work well in my layout right now - except in my pictures, of course. But maybe the darker links are now better to read due to the larger font.

I usually test with Firefox, Chrome, and Safari - so if something doesn't work with IE, I won't notice. If something is broken, you can let me know via my contact form.

WorkingWithSubversion - Mercurial. Since I keep encountering outdated SVN repositories and clearly prefer Mercurial, I should take a closer look at hgsubversion.

Because I'm not looking for something like this for the first time and it looks quite practical: Sorting elements with jQuery – James Padolsey.

SLR Magic 35 1.7 Lens review on the Sony NEX-5. Interesting - cheap - lens for the Sony NEX. Basically, this is a lens like those used in surveillance cameras, adapted to the E mount. The optical quality is "interesting" - basically a fun lens for experiments.

Ricoh developing M-mount module for GXR system: I ended up with the Sony Nex 3 to revive my Leica lenses. And I am very satisfied with the new firmware for the Nexes. But the GXR with such an M module would certainly also be quite interesting (though probably not price-wise).

Vimari - Keyboard Shortcuts extension for Safari - GitHub. A bit like Vimium for Chrome, but can do significantly fewer tricks (and the links seem to be affected by the page CSS, which is why the QuickLinks look weird on my website)

Google: Bing Is Cheating, Copying Our Search Results. Interesting article, if this is true, Microsoft has made a pretty big (and embarrassing) mistake.

Java Hangs When Converting 2.2250738585072012e-308. PHP too. The solution to the puzzle in both cases: the number is the smallest representable number in double floats and approximations are determined for the conversion in Java and PHP, but unfavorable values are assumed as starting points - and thus infinite loops result because the target value is never reached. And yes, this is critical because you can send servers into a loop if you enter these number values in input fields that convert to double float. I also tried it with Python (CPython and PyPy), but they don't run into a loop, they simply deliver a slightly different value.

mobl is more my thing, a programming language that compiles to HTML5+JavaScript and comes with IDE support in Eclipse. Since HTML5 also includes client-side databases, and the entire application can be cached on the device via manifest files, you can also build offline-capable applications. And incidentally, it's also useful for Android.

Three20 - check it out if I want to give iPhone programming another try. It has some interesting concepts, especially regarding persistence and internal structure (uses internal URLs and URL routing to bring models and views together).

Introduction to Pharen. A Lisp that compiles to PHP. Weird. Okay, could be practical if the host only offers PHP as a server language. But still. Weird.

cfbolz / Pyrolog. Interesting project because it implements Prolog in Python, but uses the PyPy toolchain for JIT - this gives a nice insight into what is possible with PyPy besides Python.

Sho - Microsoft Research. A bit like SciPy and Sage (the part of Sage that deals with data analysis and visualization), but based on IronPython and .NET.

eMIPS - Microsoft Research. Yes, Microsoft does other things besides windows. And some of it is quite interesting - such as extensible MIPS, essentially a processor architecture with loadable microcode. We had something like this before with the Xerox machines (the Alto of course and later also the D systems).

live-processing is something like Impromptu - so a live coding environment - in Clojure. It naturally focuses more on graphics, as it is based on Processing, and does not yet have the full scope of Processing available, but hey, it should be enough to play around with a new language.

Optimizing Crajsh – Part 1 « #ponce's blog. A lot of information (also read the linked second part!) about efficient use of JavaScript in the browser for game development.

don't code today what you can't debug tomorrow: PhantomJS: minimalistic headless WebKit-based JavaScript-driven tool. Way cool - I definitely have to check this out, could be interesting for many experiments.

linq.js - LINQ for JavaScript. Quite an interesting hack to provide LINQ in JavaScript.

PyPy Status Blog: PyPy wants you! - yay! Fast-forward in PyPy gemerged! This means soon a 2.7 compatible PyPy - the project is now looking for contributors to implement the missing 2.7 features. The next PyPy version will be very interesting!.

InformIT: Art of Computer Programming, Volume 4A, The: Combinatorial Algorithms, Part 1. Part 1 - these are 2 headings in the planned book, it almost looks like it will be more like 4-5 books. Nobody has that much space in their bookshelf! By the way, Volume 5 is planned for 2020. Only 9 years left.

Exactly. If you want to explain something boring like "why generic functions and not single-object-dispatch," then use examples like these:

A short example: Imagine you have a class human which is inherited by a class male and female. Now as we all have an urge to reproduce where to put a method for having sex? Create a method haveSex in the human class, duplicate it in male or female? What would the argument to such a class be? What about having sex with people of the same sex, toys, animals, buildings...

via /dev/random - Random Thoughts On Programming In Parentheses - Coops - An introduction to chicken scheme's object system.

Tail Call Optimization Decorator - someone taught Python tail recursion as a decorator. Very cool. Someone else picked that up and built two faster versions, which, however, have minor restrictions in use. And at LTU someone also made a version - what's particularly cool about it is that it uses my lazypy module. And then I also found a super-short and fast version that, however, delivers incorrect results if a function is not called in tail position. But since you usually use tail calls in compact recursive functions (or two or a few that do mutual recursion), you should be able to handle that.

App Development Tools Contrib - Yes! This is something many have been waiting for - better tools for OSX programming with CCL directly in the IDE. I hope the next release of CCL is soon stable and includes these tools.

Harmony Of My Dreams | Brendan Eich. Interesting post by Mr. JavaScript. I hope he can push his ideas through and we see them in a future JavaScript, as that would make the language much more pleasant to write in the affected cases, in my opinion.

Swordcane : The Official Web Site of Burger Knives - could I get something like this through customs? (not a serious question, I'm pretty sure that sword canes are illegal in Germany, as they are concealed weapons)

F-Script Home Oldy but Good! is still actively developed. I still wish for a native class browser with editing capabilities to turn F-Script into a "real" Smalltalk for OSX, but it also serves as a replacement for AppleScript (with drastically more extensive capabilities, as it supports not only the Scripting Bridge but all Objective-C frameworks). And for many purposes, it's close enough to Smalltalk.

Lively Kernel - Lively. Something similar to a Smalltalk system, but it runs in the browser, lives in web pages, and uses JavaScript as the language. Provides typical Smalltalk tools like the class browser and inspectors. And a test on the iPad was not blazing fast, but usable. By Dan Ingalls, the Smalltalk implementer alongside Alan Kay.

Open Cobalt Website. What has become of OpenCroquet - apparently usable downloads are now available, not just an SDK. Peer2Peer virtual worlds in Smalltalk.

Pyrates are cool — A wiki about python game development. That's what it says. Certainly not everything is linked, but it's a wiki, and as a starting point for someone who wants to see what's happening around games with Python, it might be quite interesting.

CoRD: Remote Desktop for Mac OS X. Open Source and more Mac-like than the Microsoft version.

CLPython - an implementation of Python in Common Lisp. Simply because it combines two of my favorite languages and makes pure-Python libraries available for Common Lisp. Perhaps now some of you can see where my search is heading - to have my cake and eat it too. By the way, CLPython is compatible with Python 2.5, so it's even a fairly up-to-date language level (even though I'm sure I'll miss some things from 2.6, but it's no different with PyPy).

FSet on Common-Lisp.net provides functional data structures as well. This library is also available in Quicklisp, so it's easier to install. And it looks very interesting.

CL-STM is simple Software Transactional Memory for Common Lisp (yes, I'm currently looking at CL alternatives for various Clojure features).

CLAZY: Lazy Calling in Common Lisp provides extended lazy evaluation for Common Lisp that goes beyond the usual delay/force pair.

Funds provides fully functional data structures for Common Lisp. This can be very helpful, especially for multi-threaded code. Unfortunately, it is not yet in Quicklisp.

qb.js: An implementation of QBASIC in Javascript (part 1) - Steve Hanov's Programming Blog. Blasts from the past.

Who is used to Vi and uses Chrome: Vimium provides Vi-like keyboard control for Chrome. After a short period of getting used to it, it is really very useful and can significantly help in reducing the strain on the mouse hand.

Home of the WordPress Wiki Plugin. Not sure if I really want something like this, but it could potentially be interesting in the long run, should I ever be struck by another bout of documentation mania. First blogged, you never know. It looked the most interesting of the WordPress-integrated wikis, though.

Embedder Plugin Home | moztools. Bookmarked for later - I once had a simple snippet/glossary/macro/embed plugin for WordPress, but this one looks like I should use it instead of making my own. It seems very practical for quickly entering frequently recurring snippets.

CBSC Decision | CHOZ-FM re the song “Money for Nothing” by Dire Straits. Hmm. Okay, they noticed quite early that this song shouldn't be played in Canada. If I think about it, with proper implementation of these guidelines in Canada, probably only Country and Western would remain acceptable...

dcolthorp/matchure - Pattern-Matching on Clojure data structures (not just strings and regular expressions, but also more complex matchings against lists, vectors, maps).

About Dirigible - for all those who want a spreadsheet in the cloud, but don't want to program with JavaScript like in Google Docs, but with Python. As a self-hosted solution, I would find it really great, especially because of the simple linking of spreadsheets across server boundaries described there.

kriyative/clojurejs - GitHub I should check out, is another JS integration, here for a subset of Clojure, which is automatically translated to client-side JavaScript. And this one also supports jQuery rudimentarily.