====== Notes from PyCon 2013 ======
@pydanny: #pycon pro-tip: Show up to @raymondh or @jacobian or @roguelynn's talks early!
**Speaker Decks**: [[https://speakerdeck.com/pyconslides|PyCon Slides]]
===== Books for Kids =====
* [[http://www.amazon.com/Python-Kids-Playful-Introduction-Programming/dp/1593274076/|Python for Kids]]
* [[http://www.amazon.com/Hello-World-Computer-Programming-Beginners/dp/1933988495/|Hello World! Computer Programming for Kids and Other Beginners]]
===== swiftstack Challenge =====
> Given an ASCII string X, take the len(X) most significant bits of the md5 hash digest of that string. Treat those bits as an unsigned int, and append its base16 representation to "http://swiftstack.com/". Do it for "pycon2013."
Hmm, something like this works:
>>> s = "pycon2013"
>>> hex( int( bin( int( hashlib.md5( s ).hexdigest(), 16 ) )[2:len(s)+2], 2 ) )[2:]
===== TODO: contextual.io Challenge =====
[[http://www.contextual.io/pycon2013/122111021012022020120210111]]
References:
* http://wordaligned.org/articles/steganography
* https://github.com/psibi/Rizzy/blob/master/stepic.py
===== Disney - Optimizing =====
[[http://davidschachter.com/|David Schachter]] presented a talk on program optimization.
[[http://davidschachter.com/ds/PyCon_slides_public.pdf|His slides]] are available, too.
There's an interesting slide where he forces a miss on the L1 cache to unblock threads when he's filling up an array, by not accessing sequential addresses.
x[1] = ...
x[5] = ...
x[10] = ...
x[2] = ...
x[6] = ...
x[11] = ...
...
===== New Relic - Managing Python App Performance =====
Instrument Django apps with New Relic. He ran us through some katas.
[[http://newrelic-python-kata.herokuapp.com]]
They love postgression for PostgreSQL testing. It makes temporary databases.
xml.weather.yahoo.com looks interesting. Should look into that.
Recommended book: [[http://django.2scoops.org|Two Scoops of Django]]
[[https://newrelic.com/docs/python]] has a link to instrumented Python packages.
Promocode: pycon13, free T-shirt
===== Google talk (3 parts) =====
1. User / Application Identity
Adam Eidenberg spoke. They say they're going to post a link somewhere.
# Create a project https://code.google.com/apis/console/
# More stuff... https://code.google.com/p/google-api-python-client/downloads/list
2. [[http://goo.gl/cyY1U|Google Developers: Discovery API]]
===== Lightning Talks =====
**PyCharm**
PyCharm is a Python IDE.
Compare against Wing IDE.
**Mark Ransom**
NASberryPi speaker got it working on a Pogo plug.
uPNP Media Server (minidlna)
Uses OpenVPN client for torrent to the house from cloud.
samba
minidlna
transmission-daemon
OpenVPN and Transmission
Uses a up.sh
**NES Javascript Guto Maia**
nodeNES
**PyWeek challenge**
April 14-21
kivy.org used for game development
**Don't Make People Watch You Type**
stuart@swilliams.ca
import code module, interactiveconsole
**Job Security**
"How do I write unmainainable code?" Bad names.
Monkey Patching
import magic
math.sin, math.cos = math.cos, math.sin
**KHAN Academy**
KA Lite runs on a RaspBerry Pi
Started with Django, standard web server... trimmed it down to pure python,
cherrypy, etc.
Offline Commons (release content such that peer-to-peer is allowed.)
Jamie learningacademy.org
**5K Run**
John Hunter Memorial fund
**Raymond Hettinger** @raymondh
What makes Python awesome?
whoami id -un
Python is a big box of LEGOs.
(That was referring to iterables as built in to the language.)
Generators and the yield statement.
formfeed example. Find it. "Winning Language Features:"
Checkout twisted's inline deferred, @inline_deferred
Check out itty
from itty import get, post, run_itty
@get('/pathsomething')
def xxx():
xxxxx
with ignore(OSError):
os.remove(someFile)
===== Keynote 1 =====
Over 2500 attendees
PyCon is more than 20% Women
Python got to keep the name in the EU.
[[http://preview.python.org/|Preview of the new python.org]]
===== Guido's Keynote =====
Async IO. Issue came up in PythonIdeas mail list.
People often solve this problem with threads.
===== Raspberry Pi Quick Notes =====
User: pi
Password: raspberry
$ startx
$ raspi-config
$ sudo shutdown -h now
===== Random Python-related URLs =====
[[http://libjoe.blogspot.com/2013/03/programming-othello-reversi-part-1.html|Programming Othello/Reversi in Python]] \\
[[http://www.infoworld.com/t/python/why-netflix-embracing-python-over-java-214288|Why Netflix is embracing Python over Java]]. Sounds like an overly-zealous article.