Linkblog - 29.12.2010 - 1.2.2011

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.

Welcome to WuWei. Interesting Common Lisp library that makes it possible to program Ajax user interfaces purely in Common Lisp, without having to deal with the implementation in JavaScript. Unfortunately, it is not for my preferred JS library jQuery, but for Prototype and Scriptaculous.

Bizarre sea slug is half plant, half animal. Nature just keeps building the strangest creatures.

Mozilla Labs » skywriter. And this one just as a reminder that web-based code editors are not really something entirely new.

Life at Eclipse » Blog Archive » Introducing Orion. A browser-based IDE based on Eclipse ideas (but newly implemented, so not just Java applets, but cleanly based on HTML5 and JavaScript). Could be quite interesting - of course, there are the usual naysayers, and of course the web is not necessarily the ideal platform for an IDE. But the web browser is everywhere and access is relatively easy from anywhere. So as an additional option to supplement a normal IDE, it can certainly make sense (e.g. for working on the go via an iPad).

Please forget. Best not only the images (which is actually sensible in some cases), but also the - quite stupid and in the case of the "inventor" quite transparent - approach of the Bundesilse and her professor.

Bundestube. This is actually something really useful. Search for content and speakers from Bundestag debates and then watch the recordings.

App der British Library: High Literature for iOS and Android Devices. Those interested in old scripts might be interested in this. I would wish that other museums and libraries would work similarly and make works digitized available.

Chromium Blog: HTML Video Codec Support in Chrome. Wow. Google is removing H.264 from Chrome's video support and fully switching to Theora and WebM.

MonoMac - Mono. Let's take a closer look, it now has a more up-to-date packager that includes all the Mono stuff directly into the application. On the one hand, you can then upload apps to the AppStore, on the other hand, it's simply easier to install the applications. And since I have to deal with all the .NET stuff anyway, I can also put it to good use.

Modernizr could be useful if you want to access newer HTML5 features but don't always encounter the latest browsers (basically a browser switch that someone else has already programmed for you and that you can access via CSS rules from stylesheets or jQuery code).

Malmström: EU Commissioner does not want internet blocks for other topics. Oh, great, we just have to give the EU Commissioner the general filtering tool and then believe her that the EU does not plan and want to expand it to other topics. And then also believe the same for all following EU Commissions, because they would never expand a once introduced censorship tool in its application. I mean, that would be like assuming that the toll data would also be used for purposes other than just the pure billing of road usage. (by the way: anyone who finds sarcasm in my comments is welcome to keep it)

Department of Justice: Twitter must hand over WikiLeaks data to US court. It would be nice if the US would somehow deal with WikiLeaks and the published content in a meaningful way - general suspicions and wild activism beyond any rule of law is much more fun. And don't believe that this would be a purely American problem, our prolethicians are probably already sitting there and considering whether they can do the same. Because such big secrets like the incompetence and arrogance of our Federal Foreign Minister must not under any circumstances become public.

Nischni Tagil - that's where it's going, if anyone is interested. Departure in one hour, train to Frankfurt (with plenty of time, you never know with the train these days) and then late in the evening by plane. If everything goes well, I'll freeze my butt off at 7 local time in the Urals.