josevalim/elixir is a programming language for the Erlang environment and its virtual machine, which integrates into the Erlang environment and has a similar focus as Erlang. However, Elixir provides a Ruby-like syntax and some interesting extensions as well as, of course, interoperability with Erlang code (otherwise it wouldn't make sense, because Erlang is not just the rather strange language, but above all the server structure and the libraries).
programmierung - 11.5.2011 - 15.6.2011
Tumult Hype. Interesting - I had actually expected this much earlier, a tool for creating animated presentations using only HTML5 and JavaScript. Essentially what Macromedia Director or Asymmetrix Toolbox used to be.
Interactive Console for the C Programming Language - Google Project Hosting. Sounds interesting if you want to play around with Low-Level-APIs and sometimes want to interactively crash your system.
Asciiflow - ASCII Flow Diagram Tool. Diagram. In ASCII art. With an interactive environment in JavaScript. In the web browser.
Florian (Author) thinks I might be interested in burrahobbit and he's right: persistent data structures (i.e., functional persistence) in Python, with time behavior comparable to normal data structures. So far, he has dictionaries and sets.
Cloud9 meets Bitbucket - Cloud9 IDEs Posterous. That's nice, because Mercurial is my preferred versioning tool and Cloud9 can now directly support it - and thus also access Bitbucket projects. It's getting more and more interesting.
Why aren't you using git-flow? - Jeff Kreeftmeijer. Sounds like a few sensible tools that make git a bit easier to use for standard cases. Of course, you can manage everything on your own, but why did you buy a computer in the first place ...
Comparison to Python | Cobra - just blogged for completeness, as the language has some interesting ideas. Specifically, I would like the contracts as explicit syntax, Python only allows similar things in a roundabout way. However, the language is otherwise just one of the many niche languages. And honestly, Python is more than just the indentation - what about the very sophisticated metaprotocol of Python in the various niche languages? PyPy in combination with Rpython and the new ctypes for pypy is much more interesting.
Clack - Web Application Environment for Common Lisp. This finally looks really nice and lean - most Common Lisp web frameworks are just too big, too complicated. This looks much more pragmatic, a simple routing, a lean request and a function that reacts to it. One could play around with that, installation is trivial thanks to Quicklisp (I'm so glad that Quicklisp exists now, the asdf-install hassle was really annoying). In its approach, it reminds me a bit of Turbogear for Python - various existing libraries are bundled with Clack, so to speak a lean web best practices. There is already an application framework that also runs in the minimal environment, Caveman.
Polycode. Looks like something like Processing for C++ and Lua - so it's actually a C++ library for creative projects (2D/3D), but at the same time there is a Lua-based scripting layer with which you can program directly with the same APIs. Sounds a bit similar to Cinder, except that there is no scripting solution included, but only a C++ library.
CouchDB: The Definitive Guide. And since it fits so well, here is the link to a book on CouchDB for online reading. It is also available online in German (and of course in English. And also in French). However, the German version seems to be incomplete - you keep encountering English pages.
Simple JavaScript Applications with CouchDB - CouchApp.org. Interesting approach: entire applications are implemented in HTML+CSS+JavaScript and stored directly in the CouchDB, also persist their data in the CouchDB. Reminds me a bit of Frontier, only here CouchDB and JavaScript are used instead of the Frontier Roots and UserScript. The big advantage: if the application actually gets by with the elements used, you get the easy scalability so to speak for free - because CouchDB can be easily scaled by starting multiple instances. Maybe it becomes clearer what it means in this tutorial.
Its About The Hashbangs. Blogged because it is a pretty good description of what is wrong with these #! in addresses. The part after the # is only client-side, the server never sees it - any form of server-side redirection and server-side routing is completely out of the question. Also, server-side access controls are largely out of the question, the server only sees the main page. For single-page applications like TiddlyWiki, this is all fine - everything is already in one file and it is the declared purpose of these applications to be structured this way. For websites like Twitter or even news sites like those of Gawker Media, it is simply absurd. Twitter can perhaps guarantee due to its banal structure that the URLs to tweets also work with #! in the long run, in that a corresponding JavaScript part remains in the homepage forever (which is already pretty silly), but news sites will sooner or later simply drop the old #! URLs - and thus produce massive link rot.
Shedding Bikes: Github's Favorite Joke. Why social networks in combination with code and geeks quickly become asocial networks. One reason why I also keep my distance from Github - I have an account there to set favorites and make bug reports, but I prefer to host my projects on Bitbucket. And even then, I'm very glad that Mercurial (as well as Git) as a distributed version system allows me to switch to other systems or switch to self-hosted sites (Rhodecode would be useful to install in the long run). Update: Github reacts and finally builds in blocking.
cloud9 is the software behind Cloud9ide.com - an IDE that runs entirely in the browser and is programmed in JavaScript based on Node.js. An interesting project, the current version also offers an offline mode, so you can easily work on projects on your server via the browser and then continue working locally in the offline case (on the train or in WLAN-sparse hotels in Swabia) and later resynchronize. I myself am IDE-incompatible, but programming in the browser has fascinated me for many years, simply because you can access your projects from anywhere, even without having your own computer with you. If I ever want to take a closer look, someone has written an installation guide for Ubuntu. Support for iOS devices is also in the works - so this could also be a nice way to access your own projects via iPad while on the go.
Spring cleaning for some of our APIs - The official Google Code blog. Good example of why cloud services are simply a bad idea as a basis for projects that have any significance beyond "playing around". The provider of these cloud services and APIs can simply shut them down at any time - and Google once again shows how to piss off a large number of developers with such actions. I can only quote from one of the comments: Why should we ever use any API from Google again?
clj-android. And while I'm at it, a framework for Clojure and Android. Although it all seems a bit raw (for example, it requires a fork of Clojure to work around some issues with Dalvik). And just for playing around with Clojure on the go, the Clojure REPL might be interesting.
scalaforandroid - Scala for Android. And for completeness, a project for creating Android applications with Scala. Scala does require a large runtime library of its own, but scalaforandroid uses a tree shaker (Proguard) that only transfers the used classes of the library during packaging, keeping the volume small.
mirah/pindah - GitHub. Mirah is a language inspired by Ruby, but continues to work with static types and is therefore closer to Java in terms of performance. Type inference takes the pain out of types, as you can often skip the declarations. Codemakros also offer interesting approaches for internal DSLs. Pindah is a framework and toolset for writing Android applications with Mirah. Mirah offers the advantage over JRuby that no separate runtime and no dynamic interpretation is added - the applications should therefore be significantly closer to Java applications in terms of performance.
Ruboto: Ruby on Android. A small article at the IBM Developernetwork with a small example application in Ruby for Android. Ruboto currently has the problem of rather high startup times for applications and rather large application size, as the entire JRuby is delivered with it.
Ruboto is a framework and an app for Android devices. With the framework, you can write Android apps in Ruby (based on JRuby, which, unlike JPython, can not only keep up with regular Ruby but also sometimes leads in performance) and with the app, you can script interactively in Ruby directly on the Android device. Maybe a reason to dust off my Ruby-Foo ...
Zotonic - Hmm, should I take a look at this? A CMS in Erlang that has some interesting features on the list - and aims a bit in the direction that Drupal also has, i.e. rather a CMS construction kit than a pure pre-made blogging solution. The admin interface also looks quite tidy.
hij1nx/SugarSkull - GitHub. Because I recently had single-page JavaScript apps (an example of this type of application would be TiddlyWiki): this is a simple library with no prerequisites, with which you can build simple parsing and automatic function start for hash-routes. So basically something like the Django URL Handler, but in JavaScript and purely on the client.
Seesaw - GitHub. Since GUI programming almost always annoys me, this is quite interesting: a Clojure library that brings Swing into a much more compact form. So that you don't have to write your fingers raw for simple GUIs. And since MCL-IDE now also supports Clojure, it might actually be time to take a closer look at the whole thing.
Single Page Apps with Node.js. - blog.nodejitsu.com - scaling node.js applications one callback at a time.. A few interesting projects linked from the article that are interesting for web applications that live in a single HTML page. Bookmarked for later.
Roundabout for jQuery by Fred LeBlanc. Nice effect, even if I'm not sure right now what I would need it for (ok, you could use it to display images, but personally I prefer Lightbox or something similar). It's probably just a gimmick, but sometimes that's quite useful.
Cloud Foundry - Make it Yours!. Interesting project for building a cloud platform based on Ruby. The source is freely available on Github. CloudFoundry is probably what runs under ActiveState Stackato (where Perl and Python are supported). Such a private cloud can also be quite interesting for your own projects, because you can develop locally at home or on the go, and the deployment to your own root server is simple and easy. At some point, I think I want to set something like this up (currently, every service is set up individually for me, which can be quite annoying in the long run).
Introducing JetBrains dotPeek - dotPeek - Confluence. For those curious about peeking into .NET assemblies (and Mono assemblies too, although the source is often available there anyway).
QuickSilver Network. Hmm, had I already mentioned that? Doesn't matter, it's cool. It's a Smalltalk-like development environment, but with JavaScript as the language and in the web browser instead of in an application. However, it's all still very raw and some things don't quite work (at least in Safari), but somehow still nice. Somehow, I could imagine someone combining it with TiddlyWiki (for persistence) and then making a JavaScript image system like the old Smalltalk systems, but on the web. Would be somehow funny. Pointless, but funny.
On TermKit. A pretty cool project for reinventing terminals. In this case, the output is made as HTML and the terminal is not rendered as a simple console but as a browser window. This way, for example, you can make directory lists graphical or output images directly. It also works on things like pipes and the idea of how data is transported between tools, so that they can all work universally with it - JSON is used here. The whole thing makes a well-thought-out impression.
AI art | painting robot | art | expert systems. Something else - a real robot controlled by Lisp (at least for prototyping). So not a virtual robot like Turtle graphics, but real hardware that moves.
xmlisp - eXtreme Media Lisp: Rich media cross-platform programming for 3D (OpenGL) and 2D applications. I think I've mentioned this before, but I'm not sure. Doesn't matter, repetitions aren't unusual, and this is really interesting - a Lisp environment with particularly good support for 2D and 3D data. Has a lot more on the TODO list - the goal is a Lisp environment specifically for game programming and other graphical, interactive programs. A bit like Processing.
MilkPack - Edgar Gonçalves. Interesting project that implements a task list that communicates with Remember the Milk on the Internet. The interesting thing about it: it is written in Common Lisp and intensively uses the Objective-C Bridge for OpenMCL.
MichaelMacInnis/oh. A shell in Go. The shell has some interesting features, for example prototype-based object orientation, first-class functions, and explicit channels (which other shells have implicitly behind pipes). Looks quite interesting at first glance.
Javascript PC Emulator - Technical Notes. Yes, a PC emulator. Based on QEmu, so quite mature code. Boots Linux in the browser. Because it can.
Lightroom Developer Center. Since I want to take a closer look at this again soon, maybe I will create my own plugin for easy sync to WordPress after all. And Lua is not such a terrible language.
Microsoft Small Basic. In a strange way, nostalgic. A Basic in the style of QBasic, but for Silverlight and the browser with libraries for graphics output and similar things. Essentially something like Processing, but .NET instead of JVM and Basic instead of Java.
Writing Plugins for gedit 3 with Python. It looks like Gnome 3 actually gets a quite generic interface for Python scripting. PyGTK was already there, but that's just a GUI library. Now, work is being done on GObject and Friends, making many more elements accessible. By the way, gedit is a quite nice graphical editor that can certainly be considered an alternative to BBEdit or TextWrangler, which are popular under OSX.
Python Interpreter by Noam Gat -- Unity Asset Store. And this is more for my private tinkering: a plugin that integrates an interactive Python shell into Unity3D. Somehow, Unity3D always fascinates me when I see it. Especially since the entry is now free (unfortunately, the jump to Pro - which offers some essential tools like a profiler or support for external versioning - is quite steep).
micromongo — micromongo v0.1 documentation. Also check out micromongo, it provides a minimal ORM for MongoDB servers. However, I would have to check if django-nosql already supports MongoDB by now, then I wouldn't have to use a different ORM syntax - although micromongo is really quite lean and is based only on pymongo, so for example nice for small web services, because you don't have to install a bunch of modules.
execnet v1.0.9 documentation. I should also check this out, it's basically a library for distributing functions across a network of instances - not a full map/reduce or similar, more like a better RPC. Specifically interesting to use, for example, a normal cpython front with a compute backend based on PyPy (or vice versa, to give a PyPy server a numpy+scipy backend in CPython for data analysis).
Read the Docs. I didn't know this one yet - a web service where you can read various documentations through a uniform interface. And host your documentations for projects. And also directly different versions of documentations for projects.
"When you choose an eventually consistent data store you're prioritizing availability and partition tolerance over consistency, but this doesn't mean your application has to be inconsistent. What it does mean is that you have to move your conflict resolution from writes to reads." via Mochi Labs - statebox, an eventually consistent data model for Erlang (and Riak). Also interesting outside of Erlang, as the problem is of a more general nature - data models for transactional databases cannot simply be transferred to an eventually consistent database like Riak (or Cassandra). The reason lies in the fact that conflicts only become apparent later when reading, as they are still "on the way" beforehand.
pmundkur/odisco. An implementation of Map/Reduce according to the Disco Worker model in Objective Caml. There's already something like this for Python. If I ever want to play around with OCaml again.
Reinteract might be interesting for all number crunchers and graphics players, provided they don't get pimples from Python: an implementation of worksheets as you know them from Mathematica and Sage, but as a direct Python application based on PyGTK. You can hack in and execute Python source code, edit older source code afterward, and your output in the worksheet will be automatically updated. Downloads are also available for OSX. Unfortunately, PyGTK is not a 1st-class citizen of the Mac environment - it just looks awful with the half-defective controls, and the usability is unfortunately not really OSX-like. Someone could port this to Cocoa.
A successful Git branching model » nvie.com. Not entirely uninteresting article about distributed version control and branching/merging. Ok, it specifically addresses git and its commands, but the overviews and considerations apply to many points equally to Mercurial and in the deviations the problems are similar enough that the article remains worth reading.
counterclockwise - Counterclockwise is an Eclipse plugin helping developers write Clojure code. And if you already have Eclipse installed, a Clojure plugin might not be uninteresting either, so you can get your daily dose of parentheses.
Typesafe Stack is a distribution of Scala (2.9.0) and Akka (1.1, an actor framework for Scala with various tools for programming distributed solutions in Scala) for easy installation. Additionally, it points to sbt and Scala IDE for Eclipse (use the beta version 2, as this is completely new and the 1.x versions do not work with Scala 2.9.0 and are not particularly good) as supplements. Installers are available for Windows, OSX, and Linux (you can of course install them yourself on all platforms, but some people prefer normal installation paths). And if you want, you can buy support there - and the company belongs to Odersky, the Scala inventor and JVM languages guru. Actually, Odersky could also include his book on Scala programming as PDF (in the first edition, this is also free).
LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #1/3. Not only what undefined behavior is in language standards, but also the motivation behind it and what it means for compiler manufacturers.
RaptorDB sounds quite interesting, a classic Key/Value-Store for .NET that is based on MurMurHash and is especially designed for performance and storage stability. Could be quite useful for one purpose or another, especially since it also works cleanly with threading.