# Differences

This shows you the differences between two versions of the page.

python:pycon2013 [2013/03/17 09:25]
dblume
python:pycon2013 [2013/03/17 21:36] (current)
dblume
Line 4: Line 4:

**Speaker Decks**: [[https://speakerdeck.com/pyconslides|PyCon Slides]] **Speaker Decks**: [[https://speakerdeck.com/pyconslides|PyCon Slides]]
+
===== Books for Kids ===== ===== Books for Kids =====

* [[http://www.amazon.com/Python-Kids-Playful-Introduction-Programming/dp/1593274076/|Python 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]]   * [[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:
+
+<code>
+>>> s = "pycon2013"
+>>> hex( int( bin( int( hashlib.md5( s ).hexdigest(), 16 ) )[2:len(s)+2], 2 ) )[2:]
+</code>
+
+===== 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 ===== ===== Disney - Optimizing =====
Line 13: Line 35:
[[http://davidschachter.com/|David Schachter]] presented a talk on program optimization. [[http://davidschachter.com/|David Schachter]] presented a talk on program optimization.
[[http://davidschachter.com/ds/PyCon_slides_public.pdf|His slides]] are available, too. [[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.
+
+<code>
+x[1] = ...
+x[5] = ...
+x[10] = ...
+x[2] = ...
+x[6] = ...
+x[11] = ...
+...
+</code>

===== New Relic - Managing Python App Performance ===== ===== New Relic - Managing Python App Performance =====
Line 38: Line 72:

-2. Discovery +2.  [[http://goo.gl/cyY1U|Google Developers: Discovery API]]
- +
-[[http://goo.gl/cyY1U]] +
===== Lightning Talks ===== ===== Lightning Talks =====

Line 144: Line 175:
People often solve this problem with threads. People often solve this problem with threads.

+===== Raspberry Pi Quick Notes =====

+<code>
+User: pi
+
+\$ startx
+\$ raspi-config
+\$ sudo shutdown -h now
+</code>

===== Random Python-related URLs ===== ===== Random Python-related URLs =====