PyCon AU 2010 – 27th June – second day

A lot of these talks contained large amounts of demonstration so I took less notes sorry.  Watching the videos would be more instructive.  The wifi that was spotty on the first day but much better on the second. (at least until my laptop battery died)

Keynote: Nick Hodge, “IronPython & The Quest for the Holy Grail”

Demonstrated the cool things you could get IronPython to do under Windows.  I remember integration with WPF and python in a <script> tag within IE.

Hard Real-time Python, or, Giant Robots of Doom. – Mr. Simon Wittber

Controlling giant robots with Python and later with a Wiimote.  Best talk winner!

The future is soon! – Mr. Brian K Quinlan

Showing examples of futures in python.

It looks like a nice implementation, taking common python idioms and easily converting them to use futures.

Python Game Programming BOF

Richard Jones talked about cocos2d, extending what he mentioned in his lightning talk.

Building the Wave Robots API: Behind the Scenes – Ms. Pamela S Fox

Explaining the API for Wave Robots.  Think bots in IRC and you’re pretty close.  These
are hosted on Google Appengine (or your own website) and communicate to Wave via json.

  • she used a cool presentation tool called Prezi.
  • 3 P’s: Product, Protocol, Platform (and apparently Pamela one day too)
  • pygowave ?
  • wave robot examples: Tasky, Monty and Syntaxy
  • notification of capability with hashes
  • use OAuth for authentication
  • supports non-appengine now such as slicehost and amazon
  • use sphinx for docs

An Introduction to Processing – Mr. Clinton J Roy

Processing is a language to make cool interfaces and graphics easy for artists.  The talk dealt with how pyprocessing compared.

Mentions that processing and arduino were linked together but didn’t mention how.  The processing IDE looked similar to arduino’s though.

Basic structure:

  • setup() draw()
  • globals for state
  • callbacks for interaction

Webcam processing too!  Showed a cool demo where the Z axis of each pixel was set to the brightness level.  Only problem was that other demos were just screenshots.

Introducing Python to a Java shop – Juergen Brendel

Didn’t seem confident that people would be interested in his talk but a fair few people turned up in the end!

Introduced restx which seems to be a resful python/java implementation for enterprisey people.

Then talked about how he introduced python to a business.  Jython helped a lot as they could still use their existing java code.  I can’t remember if it was this talk or Nick Hodge’s talk where he had a Python class inheriting from a Ruby class (and possibly inheriting a java class too)

Gotcha: java exceptions != python exceptions so you need two catches if you’re expecting exceptions from both Java and Python.

Lightning talks

  • on using soap and SSL client certificates: Suds rocks! (I agree!)
  • check out redline for project management
  • repoze.py for web framework <- check out
  • hack to make an @inline decorator work! Using byteplay library to easily manipulate python bytecode.
  • look at http://github/rfk/promise for inlining code
Posted in Uncategorized | Leave a comment

PyCon AU 2010 – 26th June – first day

A quick summary of the notes I took for that day.

Keynote: Mark Pesce; “How Not To Be Seen”

Introduced Plexus which is a sort of plumbing for social networks.  The talk seemed to have a bit too much hype but at least there was some code and other people seemed keen.

Making your Python code fast – Mr. Andrew Bennetts

  • disappointed that some profiling tools were bzr specific.
  • timeit
  • lsprof + kcachegrind
  • strace
  • perf (linux-tools)
    • eg “perf stat bzr status”
  • bzr -import-profiling
  • traceback sampling
    • use SIGUSR to dump traceback!
    • sigquit -> debugger/pdb
  • automate tools, make it dead easy to profile
  • sudo tc qdisc add dev lo root netem delay 500ms
    • add a delay to localhops
    • 500ms means if 30s delay means 30 round trips
  • sudo tc qdisc del dev lo root < — to turn off!
  • tcptrace – net tracing through tcp dump
  • cpu freq -set -g performance // remove cpu scalling
  • http://bemusement.org/pycon10

Need for Speed – Dr. Graeme Cross

  • cprofile -> pstats
  • callgraph visualisation:
    • gprof2dot – static
    • pycallgraph
    • RunSnakeRun
  • optimisation steps
    • 1 use existing libs – numpy/scipy
    • 2 improve design
      • algorithms, data structures
      • O notation
      • parallel – threading/multiprocessing
    • 3 improve implementation
      • eg containers range/xrange
    • 4 inline optimisation
      • weave / pyinline
    • 5 write in C /other
      • cython – port of pyrex
      • shedskin – py to C++ converter
      • or SIP/SWING
      • ctypes / boost.python

Using Python in a scientific real-time data collection network – Dr. Paul Dyson

  • great picture summary of some of the data collection equipment used
  • about 10 stations around Australia
  • they’d love to stick with win 2000 just cause its stable and rock solid, but can’t find hardware support anymore, so debian stable now.
  • moving from mixtures of VB, fortran, C to just python everywhere

Don’t Break It: Continuous Integration & Deployment – Benno Rice

examples of tools:

  • buildbot – written in twisted/used by python
  • bitten – for trac
  • Hudson – written in java <– talk centered on this

why Hudson/continuous integration?

  • triggers
  • scm integration
  • generalisation builds
  • different systems
  • artifact retention
  • integration with tools
  • notifications
  • nose for testing
  • hudson
  • virtualenv
  • stdeb – py pkg to deb pkg
  • fabric – remote control a server via ssh
  • pip – package management
  • stdeb can also convert required modules into debian dependencies

There was a great demonstration of the steps necessary in setting up a continuous integration environment which should be evident in the video

Python in Video Games and Multimedia Projects – Mr. Chris McCormick

  • worked on RJDJ (and showed a video).  Make music based on random sounds. Sunglasses for your ears.
  • uses Pure Data – DSP rapid prototyping.  also look at MaxMSP

Infinite 8bit platformer!

  • multiplayer exploration platformer where all users can contribute.
  • infiniteplatformer.com
  • stackless python
  • actor model
  • podsixnet – network lib
  • pygame

Using Python for Natural Language Generation and Analysis – Mr. Tennessee J Leeuwenburg

Using language tools to generate weather reports.  Apparently Victoria is live now and NSW will be live in a few weeks.  Later looked at the word trends in reports.

  • analysis using NLTK
  • read Natural Lang Processing with Ptyhon – Steven Bind 2009
  • NLGEN2

whoops I deployed again – new ways to get your app in the cloud – Dylan Jay

  • silverlining / hostout (fabric + buildout)
  • cool table of options etc
  • fabric – run scripts on server easily
  • buildout – configuration system
  • dependency management
  • hostout – install webapp on other servers
  • check out web framework repoze
  • check out siverlining.. maybe?

Lightning Talks

  • OLPC – now in NT, Australia
  • check out Jython for optimising
  • embedding python interpreter and run from c main()
  • inflect.py – pluralise words!  (some failed but classic mode!)
  • cocos2d – game framework.  check out “Abbey’s grand adventure”
  • working at Google
    • no direction given. Bad idea to say you’ll do what you’re told.
    • you might need to adjust to change
    • always people smarter than you
    • noone will write code for you (unless you’re Guido)
  • python 2.6 can execute zip files and directories!
    • see “import __main__ module”

Dinner – Anthony Baxter

Gentle jabs at Java and Python.  There was some example code from Google Wave which was particularly horrible but Python had it’s own problems.

See the pyconau 2010 website and videos!

Posted in Uncategorized | Leave a comment

You Are Super Player

The message “You are super player” appears in games such as the Super Nintendo’s Super Mario World and Aladdin.  Super Mario World’s final secret level, “Funky”, ends with a massive “You are super player” written in coins. (corrected to “You are a super player” in the USA and Europe versions).

The Aladdin appearance has some meaning to my brother and I.  We deduced that there would be a special ending if you collected all 70 gems as there was a counter during the final credits. As it was a rental, we spent all week trying to hunt down these gems.  At one point, we had collected all but one and were forced to restart the game as it was impossible to go back to collect it.  We finally collected every last one but after killing the final boss, we received the message “You are super player!”.  Seemed a bit of an anti-climax.

You can find people on YouTube who have found all 70 gems, such as jaysmad’s Aladdin speed run: part 1 and part 2.

I found the Pro Action Reply code so you can actually just force the red gems to 70. I wanted to check that the message was the same in both the PAL and NTSC versions but didn’t feel like playing right through the game again.  It turns out that the game stores a local count for each section of levels as well as a global count.

PAR code for Europe and US versions are:
7E03750A – find all 10 gems in section
7E037646 – find all 70 gems in game.
(you heard it here first!  I have never seen these codes anywhere)

But why do Japanese have trouble with ‘a’ in “You are a super player”?  My partner Allison suggests: “Because they don’t have particles.  They don’t have an equivalent of ‘a’. The literal word-for-word in Japanese would be ‘you are super player’ to mean ‘you are a super player’.  If they had to be really specific to mean you are one super player, they’d have a fancy word for that.  You basically just don’t need to use the word in Japanese and it doesn’t exist (I’m drawing on my limited Indonesian knowledge here) See Japanese Counter Word

For reference to other game endings in bad English, check out TV Trope’s “A Winner is You”.

Posted in Uncategorized | Leave a comment

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

Posted in Uncategorized | Leave a comment