Categories
python SHOUTcast

Python Dynamic Playlist Script for SHOUTcast Transcoder (for Linux)

If you want to provide music to a SHOUTcast server directly from the same server (instead of streaming it to the server from you PC) then SHOUTcast Transcoder is your weapon of choice.

Categories
Uncategorized

PyMT – A Python Multi-Touch Framework


pymt demo reel from Thomas Hansen on Vimeo.

With PyMT there is a new kid in town for visual multi-touch interaction frameworks, which is based on the scripting language Python and connects to TUIO producers like the Touchlib, reacTIVision or Touchsmart TUIO.

Currently, the most multi-touch applications seem to be implemented in Flash AS3. Flash is relatively easy to learn, offers great possibilities in interactive 2D animation programming and there seem to be of people that at least can make multi-touch things work in Flash by plugging modules together. Python has not so far been common for interaction or animation but for rapid, high-performance and professional “underneath the hood” server development.

Categories
django facebook python Uncategorized

How to Build a Facebook App in Django

Nice tutorial.

Categories
django opensuse python

Django on OpenSUSE Virtual Server

I had some struggles when installing django on my OpenSUSE virtual server. It started with the problem, that I have not found a django rpm via yast in the OpenSUSE repositories. Thus, I decided to install django manually and to keep the footprint as small as possible. Luckily, Python 2.5.1 and the appropriate mod_python module for Apache have been installed already.

These are the steps that worked for me:

  1. I installed subversion, the MySQL Python lib and python-devel via yast.
  2. I checked out the up to date django version via svn into /opt.
  3. I ran “sudo python setup.py install” from the trunk directory.
  4. I added “PYTHONPATH = djangoProjectDirectory” to my bash configuration (exchange djangoProjectDirectory with the path to your project directory).
  5. For the integration of django into Apache I needed to enable mod_env.
  6. According to the django mod_python site, I created a snippet I need for the integration into Apache. This snippet looks like this:#Map global URL /media to media folder of django's admin page
    Alias /media /opt/trunk/django/contrib/admin/media
    <Directory /opt/trunk/django/contrib/admin/media>
    Order allow,deny
    Allow from all
    </Directory>
    #add django project itself (repeat so for each additional django project)
    <Location "/mysite/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonOption django.root /mysite
    PythonDebug On
    </Location>
  7. I stored this snippet in a separate config file called django.conf into the folder /etc/apache2/conf.d/ from which all files are automatically loaded whenever Apache starts.
  8. Restart Apache.
  9. Go to http://your-domain.com/mysite or http://your-domain.com/mysite/admin (as you might have guessed already, exchange your-domain.com with your domain)

Done.

Categories
apache django opensuse python

Django Invalid command ‘SetEnv’ in OpenSUSE

Today I came upon a problem when I wanted to integrate a Django project into my Apache via mod_python on my OpenSUSE virtual server.

I put the snippet I need for Django into a separate config file called django.conf into the folder /etc/apache2/conf.d/ from which all files are automatically loaded whenever Apache starts.

Everytime I wanted to start my Apache it said
Syntax error on line 6 of /etc/apache2/conf.d/django.conf:
Invalid command 'SetEnv', perhaps misspelled or defined by a module not included in the server configuration

This seems to be a problem with the Apache configuration of OpenSUSE as mod_env which provides the SetEnv directive is installed but disabled.

Solution:

  1. Start yast (from the command line)
  2. Select “Network Services”
  3. Select “HTTP Server”
  4. Select “Server Modules”
  5. Select “Network Services”
  6. Scroll to “env”
  7. Select “Toggle Status”
  8. Select “Finish”

Done.