python - 27.7.2011 - 26.3.2012

haypo/pysandbox. Something to look at again: a sandbox for Python scripts. According to the project description, it's not necessarily a security solution but rather just a simple protection for the Python process. Thus, it would at least be usable as a simple safeguard for a main process against errors in extension scripts.

pyp - Python Power at the Prompt - Google Project Hosting. Since I prefer to play around with Python rather than awk or perl, this is quite an interesting tool. You can use it to edit text files with similar features as awk and perl. And all of it as a one-liner - pyp simply defines a few variables and operators that you can use. Looks quite good.

Clojure-Py. I can't quite say what I think about it yet, but someone is building Clojure (the language) with Python and PyPy as the target platform. Basically, this is certainly an interesting idea, as the LLVM-based JIT implementation of PyPy can also compile other things. And since I am a fan of both Python and Lisa, something like this has to pique my curiosity. The language scope of Clojure is not yet fully represented, but that can still come.

Create a package for IOS — Kivy 1.1.2-dev documentation. Kivy - a GUI framework for Python - now also offers a way to package the application for iOS and, for example, run it on an iPad. No idea if it will actually be accepted in the AppStore, but the developers have already managed to get a program based on it in there, so the chances are good.

JulianEberius/SublimeRope. Very interesting - an integration of Python Rope (a refactoring library for Python code, written in Python) into Sublime Text 2. This will then provide refactorings directly in ST2 - one of the features I have learned to love in PyCharm (especially syntactically correct rename and extract method) and which were previously missing in ST2. I should probably take a look at it, although for projects where I need refactoring, I tend to go straight to PyCharm, simply because many other things come with it (e.g., the integrated debugger). Lately, I tend to switch between editors for simple things and IDEs for large projects, even if you then have to learn different operations - the use cases are just too different to handle with just one tool.

PySide for Android thp.io. That sounds very interesting - this way I would have a much more favorable programming language at my disposal to build Android programs. However, the start time of Activities written in Python might be quite significant due to the loading times of the Python stack and the Qt libraries. But for building a few small tools for personal use, that shouldn't matter.

stochastic-technologies/goatfish - GitHub. Looks interesting, a small Python module that uses SQLite as a persistence layer for arbitrary objects. Not at the level of an ORM, but rather at the level of a more complex key-value store. Quite interesting for the usual small hacks where you need object persistence quickly, but due to the simple structures, you don't see much sense in a developed data modeling - or if you don't know yet how the structures will look like during prototyping.

generateDS 2.7b : Python Package Index. A colleague just found this, looks quite interesting - it generates Python class structures from XSD files. Not that something like this is absolutely necessary in Python, but we were just discussing how to generate a Django model from an XSD, this tool could be a starting point.

IdleX - IDLE Extensions for Python. There is actually a project that aims to enhance IDLE and teaches the rather neglected standard IDE of Python a whole lot of new tricks.

arskom/rpclib - GitHub. Since I recently had soaplib, this is the successor to it. The colleagues have probably already gained some experience with it (positive experience).

Laurence Tratt: Fast Enough VMs in Fast Enough Time. Interesting article by the developer of Converge (a language that picks up and combines ideas from Lisp - macros - and Python - indentation for scope and parts of the syntax) about RPython, the base language behind PyPy. This way you also understand a bit more what role RPython plays exactly (namely the implementation language for interpreters that automatically get a JIT).

ladon 0.7.0 : Python Package Index. And this one sounds a bit like my old Toolserver - so a simple way to provide Python code as a service. SOAP is also supported.

suds. Just a SOAP client for Python, but explicitly mentions the important binding styles (RPC/Literal, RPC/Encoded, and Document/Literal).

About — soaplib v2.0.0beta documentation. And another newer SOAP library for Python, also with significantly more activity than SOAPpy.

PySimpleSOAP - Python Simple SOAP Library. Sounds like I want to check this out, as it includes some features missing in SOAPpy (and since SOAPpy is no longer being developed, this is interesting).

python4delphi - Embedding Python within a Delphi application. Tutorials allegedly also work with Lazarus and Free Pascal, and probably rudimentary also under OSX. Could be interesting for one of these crazy projects that keep haunting me.

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.

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.

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.

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.

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.

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).

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.

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).

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.

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!).

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.

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.

Luban: a generic “language” for creating user interface — luban v0.2 documentation. Check it out - it could help with my eternal search for a compact user interface to use. Specifically, web as UI is becoming increasingly interesting with all the things that have emerged in this area in recent years.

PyPy Status Blog: PyPy 1.6 - kickass panda. Getting better and better - ctypes are now properly fixed (this is one of the FFI options in Python) and there is beta support for C extensions from the cpython environment (which is only a stopgap, direct PyPy extensions will actually always be more efficient, but at least some of the extensions are available as long as they do not offer their own PyPy version). Oh, and there is a first approach for a numpy module that is directly integrated with the JIT of PyPy - not yet complete, but a start has been made.

The Python Standard Library By Example - Doug Hellmann. For all those who prefer a printed version of the internet: this is a book with all the PyMOTW (Python Module of the Week) articles in it, polished and beautified and nicely compiled. Certainly very practical, because sometimes you have a book quicker at hand than a computer - and computers are forbidden in bed anyway. (Warning: regarding bed, this is a 1344-page whopper!).

Python and fileinput - All this. I know the module, honestly. But somehow it has slipped my mind again. It's really a handy thing when you write command-line tools, simply because it takes care of the Unix-typical handling of input for you.

ipdb makes the Python debugger a bit prettier and more user-friendly by integrating the tools from ipython. If you're already using ipython, it might be a good idea to install ipdb as well. Alternatively, you can use pdbpp, which provides similar features without ipython (e.g., you could combine this with bpython).

rad2py - Rapid Aplication Development platform for python. Wow, why didn't I know about this before? It looks interesting, although the description is a bit heavy. And it's still in a very early stage (first full prototype planned for November 2011).

Python, SymPy and Quantum Physics. So far, NumPy/Matplotlib and SymPy have been two separate worlds for me - this blog post shows how to connect these two, meaning to work out your function definitions symbolically with SymPy and then transfer them to NumPy to perform numerical investigations. This is particularly interesting in connection with the qtconsole of ipython, because it only displays matplotlib plots inline, while SymPy plots open in a separate window (as they run via pyglet), which is rather inconvenient for saving the results of your work.

wsgi_lite. Since I sometimes program "raw" against WSGI, this is not entirely uninteresting for me - a slimmed-down WSGI that defines simpler calling conventions for middleware and applications and thus further reduces the code somewhat. For entire apps, it usually doesn't bring much, as you typically write apps with a web framework, which already eases this part for you.

Issue 438 - pyglet - pyglet 1.1.3 fails on Snow Leopard. Oh man, this is really annoying. Pyglet is used by Sympy to output mathematical expressions. Unfortunately, Pyglet uses Carbon on OSX - and that is only 32-bit. And all my attempts to force something to 32-bit were in vain - actually, this can be done via environment variable or alternatively with the arch tool, but for some reason (probably due to internal indirect program calls) this is not done in Python as documented. Annoying, because Sympy has been on the list of things to try out for a while (not just since the QT console).

Innovations in iPython. Very interesting things happening with iPython - this is already becoming very similar to typical math environments like Maxima or Mathematica. At least if you install Sympy and such. The QT console worked for me after some tinkering and installing packages with Homebrew. However, I can't get matplotlib installed on Lion at all, something is still not working there, which is a shame - that would also be interesting with the pylab mode. Here's more about the QT console.

WSGI and the Pluggable Pipe Dream | Armin Ronacher's Thoughts and Writings. Just read it to get a good overview of what WSGI actually is, what is possible with it, and where it might also get stuck.

WebKit in PyQt - rendering web pages. Since I'm once again pondering GUI libraries and tools and playing around with Python and Qt, I should of course not forget the WebKit integration of Qt, which is really beautifully simple to implement, as these rather simple examples show. And the Qt interfaces under OSX are not 100% like native applications, but already much better than those of GTK. And you can then also run your code on other systems without much effort. The blog has even more very interesting small articles about Python and Qt.

Orange - Data Mining Fruitful & Fun. Wow, just stumbled upon this, I didn't know it, I think. A GUI interface with a node interface for defining data analyses and visualizations, where these nodes are programmed in Python. The entire interface is built with QT, so there is also an OSX version of it. If you need to sift through larger amounts of data, this is definitely worth a look, especially since it is open source and you don't lose anything there.