pickle and cStringIO
More of a note to myself: You just cannot (I guess because of lacking proper pickling C API support) pickle cStringIO.StringIO instances. Use StringIO.StringIO instead.
Latest
Essays and field notes on software, open source, communities, and the systems around them.
More of a note to myself: You just cannot (I guess because of lacking proper pickling C API support) pickle cStringIO.StringIO instances. Use StringIO.StringIO instead.
As most of you already know, I have small wap site running to check when LPP bus is coming to a bus station in Ljubljana. Today I added name of direction for each bus. Happy puncual days! link
I have been thinking about my development issue for a while. Working on many projects and quick switching is a pain. I could not find a solution that even thouches this subject, so I started my own development project management called spaces. Here is the basic configuration file (in YAML) that already works: --- !project name: gspaces --- !chromium-browser urls: - http://docs.python.org/dev/library/logging.html - http://docs.python.org/dev/library/subprocess.html - http://docs.python.org/dev/library/optparse.html - http://en.wikipedia.org/wiki/YAML#Basic_components_of_YAML - http://docs.repoze.org/configuration/index.html --- !gvim mode: tabbed open: - gspaces/__init__.py - setup.py - gspaces.yml --- !screen windows: - title: gspaces cmd: python manage.py runserver Obviously, it prepares your workspace and opens some stuff for you. I also plan to add "shutdown" support. I will release it under BSD licence and hope somebody else will find it useful.
Getting lost in all glory of big nginx.conf is not that uncommon. I could not stand it anymore, so I wrote this little clever script with support of pyparsing module for Python: from pyparsing import * nginx_conf_expr = OneOrMore(Suppress(SkipTo('server' + White())) + originalTextFor(Word('server ') + nestedExpr('{', '}'))).parseWithTabs() server_name_expr = (Suppress(SkipTo('server_name' + White()) + Word('server_name') + White()) + CharsNotIn(' ;')).parseWithTabs() nginx_conf = open('nginx.conf').read() new_nginx_conf = str(nginx_conf) for server in nginx_conf_expr.parseString(nginx_conf): try: name = server_name_expr.parseString(server)[0] f = open('nginxsite_%s.conf' % name, 'w+') f.write(str(server)) f.close() # update nginx config new_nginx_conf = new_nginx_conf.replace(str(server), '') except: print 'Entry failed:\n', server open('new_nginx.conf', 'w').write(new_nginx_conf) Warning! Do not use that on production data before making a backup copy! Script has been tested on ~1500 long nginx config, and is not bulletproof This script basically extracts all server {} entries and writes them to separate files named "nginxsite_sitename.conf" (all in current working directory). It also produces new_nginx.conf that does not include extracted entries. All you need to do is to add include directive to new_nginx.conf like this:
I'm proud to release first public version of BurnerOnFire. BurnerOnFire is written in Python, providing simple GUI(GTK+) and CLI interface to burning .iso images simultaneously to multiple CD/DVD burners. Documentation and install instructions are located at kiberpipa.org. Features: write iso image to multiple CD/DVD burners count number of successfully burned discs option to limit number of discs to be burned detects write speeds and intersect results eject/close tray burner TODO: write multiple iso images from a folder