programmierung - 23.8.2011 - 5.1.2012

FPC New Features 2.6.0 - Lazarus wiki. And further nice changes in FreePascal, especially the new Delphi features will certainly interest one or the other, or also the further expanded ObjectPascal dialect for Cocoa programming under OSX. If now Lazarus switches from Carbon to standard Cocoa and thus also becomes fully 64-bit, it will become really interesting even for normal work with it. In any case, if you don't like Objective-C. Or if you prefer the Delphi-like environment of the XCode environment.

charles leifer | Updates to peewee, including atomic updates, select related and basic transactions. The small ORM for Python is slowly growing up and learning transactions, atomic updates and select related. Very interesting for smaller tools because you can simply save the entire infrastructure of a full Django project and copy the ORM as a single Python file.

Distribunomicon | Learn You Some Erlang for Great Good!. Interesting article about distributed processing with Erlang and the pitfalls you can fall into (e.g. the note that remote links can produce an event storm if the network fails over which the remote links go).

Sublime Text. Hmm, just took a look and was quite surprised to realize that this is quite a nice editor. With various others recently, I thought, okay, nicely done, but not really usable features. But the 10000-feed overview for the currently active source, for example, is surprisingly easy to use - you can actually recognize the structure of your own source and quickly find positions in the source again. And the idea of commands via the command palette is also really useful. And Python plugins sound good too, even if I haven't looked at the API and performance in more detail yet. (Yes, yes, I know, I just talked about how much I like PyCharm and now another editor... it's just the eternal search for perfection!)

web2py. As a free book for online reading or for purchase on dead wood or as PDF. Small, compact web framework in Python - if Django is too powerful, you might want to check this out.

Mac App Store - Clozure CL. One of the nicer free Common Lisp implementations is now in Apple's App Store. CCL is essentially the free and portable version of the old Macintosh Common Lisp, with integration into Objective C frameworks. So it's quite interesting to play around with if you like both Lisp and Cocoa.

Clay Programming Language. Another new programming language. This one targets system programming (so the C camp) and has some interesting features. Particularly interesting for me is the implementation of Type Inference and Generic Functions - this is one of the more elegant solutions I've seen in recent times.

Thoughts on Python 3. More detailed than some "Python 3 has changed and I don't like it" articles you can find on the web, this article goes into more concrete details about the current problems with Python 3.

Learn Smalltalk with ProfStef. I've already tried Amber, which is Smalltalk 80 based on JavaScript. Now it comes with a node.js-based web server that implements minimal WebDAV and is at least compatible enough with the language that the author could port the ProfStef tutorial - and I've linked it here. Just try playing with a Smalltalk on the website for 5 minutes.

Open Object Rexx. Just noted here as a software archaeologist that there is now an open source implementation of Object Rexx. For whatever one would want that.

hangout-disco - Renders a WebGL room with avatars for each participant of a Google+ Hangout, with the possibility to play music, etc. - Google Project Hosting. Fun - something like a virtual Hangout world.

Zinc HTTP Components. Interesting project that has set itself the task of providing as complete support as possible for all aspects of the HTTP protocol. Interesting because they start from the protocol definition and not, as in many other cases, the HTTP implementation is only as far as it was necessary for the respective web framework.

I'm a confessed PyPy fan, and with version 1.7, PyPy has done a good job - the memory leaks of version 1.6 seem to be gone, and you can now run long-running processes (like a Tornado web server here in the post) with it. Especially for more complex template engines and situations where you work internally with larger data structures to produce results, it's a real alternative - but remember, PyPy needs more memory for the same work.

GemStone Seaside | About. About Seaside: there is a pretty cool virtual appliance (i.e. pre-chewed virtual disk image) for mounting in VMWare installations with a GemStone/S installation including Seaside and a Squeak as an IDE for development for this system. So if you want to see how the big kids work with Smalltalk, click here to download and try it out.

Python Math | Python for iPhone/iPad/iPod Touch - Keep away from the last update, as you can no longer bring in external scripts into the tool, which makes it completely useless. The author promises an editor in an update, but it remains to be seen whether it will be even remotely usable. Of course, this is just one of the nonsensical Apple policies he has implemented - but the way he installs an update and only mentions it in the last line of the update information is really bad. Because if you miss that, you have an currently unusable part on the Pad or Phone.

Welcome to NeuroLab’s documentation! — NeuroLab v0.2.1 documentation. Okay, I don't need it right now (and honestly, I don't know if I will ever need it), but what the heck, I'm just a fan of neural networks. And Python. And therefore, here's a reference to a library that provides a whole range of algorithms from this field for Python.

Technical Overview : Dart : Structured web programming. Of all the current "we're reinventing JavaScript" approaches, this one is almost the most interesting - in principle, it is a classic OO language with a C#-like feature set and mapping to JavaScript. But what is interesting about this system: it is designed from the outset to also develop in a browser environment. But not just within a browser, but as its own IDE, which integrates a runtime browser. And the developer of the project is the Newspeak (previous post) developer, who has already shown very interesting ideas for an IDE. Currently, the Dart Editor is much more oriented towards typical IDEs than the more innovative ideas of the database-based IDE in my opinion.

Newspeak » The Newspeak Programming Language. I think I've mentioned this before, but I'm not really linking it because of the language itself, but because of the IDE presented there - it runs within Squeak, but is largely autonomous and looks very interesting to me. From the first glance, I would say that someone is very inspired by the old Apple Dylan - the hierarchical representation of classes and methods, the linking and the general presentation of the source as a kind of hyperlinked database looks very good.

Radius limited searching with the ORM | Neogeo ramblings with a Python twist. Looking at this, there are really nice features in GeoDjango. Unfortunately, I don't currently have a project where I could use it, so just bookmarked for later. The blog also has other interesting articles about GeoDjango.

Pinax. And once again something I think I already had. But for current reasons, it has come back on my radar, and therefore I will take a closer look at it. Something like a peddler's tray for Django projects with a focus on social networks and community sites. Sounds very interesting - a bit like Drupal with Python and on Django (so rather not finished sites but building blocks and framework for creating them).

Codify – iPad. Hey, looks nice for the iPad - a Lua IDE, where you don't provide the results as your own app, but let them run within the environment instead. Not a bad approach, the old basics were nothing else - and you can play around on the iPad without any additional tools, graphics and multitouch and stuff also work. Maybe exactly the right thing for doodling on the go.

Galileo Computing :: Developing Apps for iPhone and iPad - index. Since I once again have access to an iOS Developer Account, I'll blog about it. A free book to read about iOS development, which also works with the new features in iOS and Xcode (at least with some of the new features). Seen at Schockwellenreiter. Of course, you can also simply buy the book if you want dead trees.

Mellow Morning » Django Facebook 3.2 – Simple image upload and wall posts. Since FB is unfortunately still the only social network with a serious API (sorry, but G+ doesn't have a serious API as long as they only offer a level like RSS-over-JSON and the Diaspora API is unfortunately still internal - but Diaspora is in alpha anyway, so there will certainly be more in the beta), you have to deal with it. And the new features of django-facebook look like they could ease some of the pain (and maybe one or the other interesting toy could become interesting for me).

Mojolicious - Perl real-time web framework. Looks quite interesting, simply because it gives a rather lean impression and does not require too many Perl peculiarities. Of course, you can also have this with Ruby or Python, microframeworks are not extremely exciting, but there are still people who work with Perl.

Python Math | Python for iPhone/iPad/iPod Touch. Pretty cool, this is a really useful Python on the iPad. No GUI modules or anything - just a slightly enhanced shell and the standard library as well as sympy. numpy, scipy and matplotlib are under consideration. The implementation is surprisingly usable - it's good for small tinkering and you can export the transcript by email and get files via the "Open in ..." functions e.g. from Mail or Dropbox.

Cleaning… – Marco.org. There are still some odd things about iOS 5. Here's the issue with the cache and tmp directories, which are now cleaned up much more aggressively, causing some applications to have to fetch data from the network much more often (or violate Apple's guidelines and store documents in the cache). This mainly affects offline readers, as their content is, by definition, reconstructable and thus belongs in the cache - but it might be removed there, which makes the whole offline reading absurd. Not good.

How to speed up the Android Emulator by up to 400%, Nuxeo Developers Blog. Badly blogged, as we will probably soon play around with apps and the Android simulator is extremely slow - testing with it makes almost no sense, as with Phonegap applications, you could outperform the browser rendering with paper, pencil, and eraser, so slow is the image build-up. With the solution here, you don't have an exact test of an Android device, but at least for the first feeling tests, it should be sufficient, as with Phonegap it is more important that the rendering engine is the same than that the CPU is the same.

SuperCollider » About. This is what is used as a basis under the previous project. SuperCollider has its own programming language, so it can also be used for live coding and similar purposes.

Home // Overtone. I'm always excited about sound makers - this is a tool for interactive sound programming and live coding and instrument building (of course digital), and all of it written in Clojure. Maybe for one or the other a reason to take a closer look at Clojure.

virtualenvwrapper 2.10.1 — virtualenvwrapper v2.10.1 documentation. Hmm, I think I've already seen this, but since I now almost exclusively work with virtualenv, I should take another look - this seems to really simplify things (although it seems to assume that all environments are in a main directory, I would probably have to adjust a bit on my side).

Straight Talk on Event Loops. After his beautiful rant "Node.js is Cancer" Ted Dziuba goes into more detail about what the problem is with pure async-event solutions like node.js. As a programmer of a rather old project in Python - the Toolserver for Python - I can certainly understand this. There are good reasons why I implemented threads integrated into the event loop for parallel processing as needed. This "async is faster and better than threads" is exactly the kind of hype nonsense like "NoSQL is faster and better than SQL" and other pigs that are currently being driven through the village.

dust is a JavaScript template library used in Kanso. Functionally very similar to Django Templates, though with slightly modified syntax.

Kanso Framework. That sounds very interesting - a framework for programming JavaScript CouchApps. So applications that are written in JavaScript and run entirely from a CouchDB installation. The server only needs to provide a CouchDB instance and that's it in terms of requirements - and since CouchDB comes with replication by default, you can easily scale up or implement fault tolerance - simply form a cluster of several CouchDB instances. Equally interesting are replications of the production database to another pot, such as a private developer machine or various other scenarios that are possible with CouchDB. Since the whole thing is based on CommonJS as the language base, JavaScript is not quite as bad as if it were used raw.

StatsModels: Statistics in Python — statsmodels v0.3.0 documentation. Not my focus at the moment, but with this module you can examine numbers for their statistical model.

pandas: powerful Python data analysis toolkit — pandas v0.4.1 documentation. I think I haven't had this before, but it's quite interesting for number crunchers and list comparers: a quite powerful toolkit for analyzing large datasets, especially with handling missing data and aligning data on a common basis. Overall, not entirely uninteresting for a project at work where I frequently deal with larger datasets from external sources.

websites - How do I suppress the address bar in mobile Safari? - Apple - Stack Exchange. Bookmarked because I just want to remember this - it's quite practical for web applications if the silly address bar is not there (at least if you work with Single-Page-Applications that do most of the work on the client)

"Algorithm" is Not a Four-Letter Word. Algorithms and their diversity and why programmers should deal with them (keyword: mental bench press) using the example of algorithms for generating labyrinths.

psycopg2-ctypes - GitHub. If you're playing around with PyPy and need a database driver, this could help - it's the classic psycopg2, but in a version that is based on ctypes and can therefore be efficiently integrated into PyPy.

django-tastypie - GitHub. This sounds very interesting as an alternative to django-piston - for example, it automatically provides all CRUD features via different APIs without any programming. This is particularly interesting for projects that are more focused on web apps (and where larger parts of the code run locally in the client in JavaScript).

coleifer/flask-peewee - GitHub. Interesting small project that works with Flask and Peewee and makes a somewhat more complete stack for Python web programming out of it. Also provides an admin interface, like Django - for this wtforms is used. Flask itself uses Jinja2 and Werkzeug underneath - this brings in good debugging tools and powerful templating, for example. By the way, PyCharm in the upcoming version 2 will also support Jinja2 at the same level as Django Templates (template debugging with breakpoints and stepping in the template!).

Poor Mans IDE Plugin PMIP - Google Project Hosting. If you've been inspired by a post about PyCharm as a Python IDE and now want to expand the IDE as well - with this plugin you can build relatively simple scripts with Ruby and don't always have to pull out the full IntelliJ SDK.

Python for Facebook - Welcome. Since Facebook discontinued support for the Python SDK last summer and also emptied the entire bug tracker, Python developers for Facebook apps have gathered elsewhere - this is one of those places. However, there are probably still one or two other places on the net where people collect patches and fixes.

facebook/python-sdk - GitHub. Also important, the official Python SDK for Facebook Open Graph applications. With this, you can access all the things directly from Python - so also completely without Django (if you want that).

Django Facebook 2.0 – Integrating Facebook. Since it's interesting at the moment (yes, yes, I know, everything is G+, but one should act counter-cyclically), here's a link to a Django library with which you can build Open Graph apps for Facebook. Could be interesting again, especially with the new Facebook Timeline. And G+? Well, as long as they only provide meager cut-rate APIs, it's simply uninteresting for tinkerers.

storm auf GitHub. Twitter has published its distributed event system as open source. Sounds very interesting - basically a load-distributed and fault-tolerant RPC dispatcher with a guarantee of execution for each event. Generally interesting where you need to process high events/sec - Storm offers easy scaling as needed by simply adding new nodes. And it's also quite independent of the programming languages used (Ruby and Python are already on board as additional languages besides JVM languages).

PLEAC-Objective CAML. If you know the Perl Cookbook, you might be interested in this - it's simply the problem statements from the Perl Cookbook in Objective Caml. Generally, the PLEAC project provides the same for various programming languages, but OCaml is the only language besides Perl and Groovy with 100% coverage.

Offline Web Applications - Dive Into HTML5. It was somehow better described in the first glance than in other sources I have read so far. Therefore, I have blogged it.

albertz/Pyjector - GitHub. Interesting for Python hackers who don't mind destabilizing their system a bit, but in return get a Python shell in every Cocoa program. Can be well used to hack around in the browser, for example. The author shows one use case with his Chrome extension that allows creating web apps under OSX. This feature is not currently available in the released OSX version of Chrome.

PyPy Status Blog: We need Software Transactional Memory. Interesting article on why we want STM, even if it may not be obvious - namely to make the more complex primitives of higher-level languages like Python transactional. And if we have STM as an implementation detail, we can also easily make it available to the programmer.

Why I'm not on Google Plus - Charlies Diary. Charles Stross on things programmers often get wrong when thinking about names. Specifically about Google+