ongoing by Tim Bray · Broken Links. Why these overused #! fragments in URLs are a big mess and why you shouldn't use them. And yes, it's annoying to rape the web - especially since there's absolutely no reason to do so, dynamic servers can easily map various URL structures. And yes, I know about the problem that you can only switch the URL in the browser in the fragment part via JavaScript, without forcing a reload - but that's no reason to convert all URLs to such a stupid fragment format.
programmierung - 22.12.2010 - 10.2.2011
scgi-wsgi 1.1 released - Allan Saddi's projects blog - so far we have been using its FLUP-based server that comes with Django, but the option to switch to mod_prox_scgi would be interesting because we could effectively save one server in between and no longer have to work with ajp. Although ajp is not that bad either - so maybe just do a few tests. For simple web services, however, I will continue to use the wsgi server based on gevent that I have been using in deezeit, because it is simply incredibly fast and uses almost no resources.
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.
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.
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.
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...
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.
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.
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.
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.
dcolthorp/matchure - Pattern-Matching on Clojure data structures (not just strings and regular expressions, but also more complex matchings against lists, vectors, maps).
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.
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).
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).
A Type-Safe Database Query DSL for Scala. Sounds interesting, something between LINQ and ORM for Scala. I should check it out when I'm back from the cold.
Sequel: The Database Toolkit for Ruby. Looks quite nice, I kind of like the DSL. Reminds me in parts of Django's ORM.
MacRuby: The Definitive Guide. Book at O'Reilly about MacRuby. You can already read many parts, maybe interesting for one or the other.
hoc - Project Hosting on Google Code. Just blogged about it in case I want to play with Haskell again. HOC is a bridge between Haskell and Objective-C and thus allows access to the OSX frameworks.
emscripten - Project Hosting on Google Code. And this is the tool that brought Python to the browser/server. It converts LLVM bitcode to JavaScript and enables a number of interesting tricks.
pyfilesystem - Project Hosting on Google Code. Could be useful if you want to access different types of filesystems from Python using uniform code.
Monads Are Not Metaphors - Code Commit. Definitely one of the better explanations of what a monad is that I have read.
J Home. Because you should sometimes just take a look at other languages that are so different that you don't even get the temptation to compare them with the usual (and hey, an APL offshoot with an ASCII character set is at least worth some attention once a year). You can also consider it as a high-end calculator.
'surface' plot 1 2 o. / 0.2 * i.60
The Art and Science of Smalltalk is now freely available on the web (PDF link). And where the book is located there are more books about Smalltalk for free download.
Oni Labs: Apollo. Interesting JavaScript runtime for browsers that translates StratifiedJS to JavaScript and thus allows asynchronous code to be written largely as one would write synchronous code. This can be very practical, especially with Ajax, because the actual algorithm is no longer buried in the many callbacks.
Python Package Index : futures 2.0. Just stumbled upon it, one of the features is new in Python 3.2, but the reference implementation also runs with Python 2.6. Basically does something like my lazypy and lindypy (i.e. solves the same problems, but in a slightly different way).