[CentralOH] 2014-07-26 to 2014-07-28 PyOhio Scribbles

jep200404 at columbus.rr.com jep200404 at columbus.rr.com
Sat Aug 9 22:00:55 CEST 2014


send URLs to xxxxx for free cookbook URLs from Don Lancaster

lend Genius to xxxxxxx xxxxxx

archive http://www.bizjournals.com/columbus/print-edition/2014/06/27/forecast-watch-the-man-who-checks-meteorologists.html?page=all

checkout https://github.com/CarlFK

write instructions about resolution and colors

    cite videos where text can not be read

make bumper sticker for always use pip and virtualenv

thank raymond for low res presentation

    and that colors on dark were legible (at least from 1/3 back)

Warn PyOhio 2015 presenters that projectors are 1280x720.
(but Carl wants 1024x768 for video production)



Jason Myers
    Eventbrite was setting up call center in Nashville.
        got them to set up development office in Nashville. 
    works for emma

David Lindsey
    tastypie RESTful APIs for Django



Waypaver is trying to attract talent to Chattanooga to lift Chattanooga.
It is associated with a business incubator: "The Lamp Post Group".
Attracts talent, assists recuiter arm of "The Lamp Post Group".

    The Lamp Post Group
        business incubator
        supply both capital and mentorship
        and services legal, accounting, soylent, recruiting, and downtown office space
        has 31000 sq ft of shared office space
        10 subsidized apartments for new recruits and employees
        150 work at the lamp post group
        10000 work remotely
        Chattanooga (government?) and "area" funds

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

10:30 Ben Rousch - Kivy

It seems that he's doing a lot of stuff for kivy, building tools as need arises.

use buildozer
    automates much of tedium
    handles both android and ios
    it's not included with kivy, so need to install separately
        pip install buildozer

(parti)cular to Ohio Union PyOhio?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

11:30 Pandas - Jason Myers

Jason A Myers

df = pivot_t.join(g_sum) # Join works just like SQL.
8df.fillna(0, inplace=True)

he works at Emma in Nashville
he fights spam

(almost) everything that comes out of pandas is either a series or dataframe

vincent vega javascript library to use d3 library to make really nifty charts

import vincent
# vincent natively understands pandas

get slides from github

got panda animated GIFs from internet


Carl ipython notebook

    wants to have ipython notebook conference
        in four to six months from now
        in Chicago for his convenience

    can watch pyohio live (Cool!)
    don't visit this onsite from PyOhio (bandwidth hog)

native resolution of Ohio Union projectors is 1280x720 (i.e. 720p)


14:00 strace - Brandon Rhodes

... | strace -o foo.txt python foo.py | ...

John Chambers noticed true grew just copyright comments
Did they copyright their copyright message?

strace -o trace.txt /bin/true

mmap2() is cool
man 2 mmap2
Does stuff from mmap2 persist after close?

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC????????????)
lsof -p PID

strace of true shows boilerplate for all programs

strace -o trace.txt python3.4 -c ''
wc -l trace.txt yields 507 lins

    foo at bar:~$ strace -o trace.txt python -c ''
    foo at bar:~$ wc trace.txt 
      878  5972 67467 trace.txt
    foo at bar:~$ 

easy_install adds a directory for each thing installed to sys.path?
zope adds 183 directories to a path

Don't use easy_install.

python3 caches stuff

what is 

make bumper sticker for always use pip and virtualenv

ltrace follows library calls, great for SSL



15:00 shapely - Alison Alvarez

one of top three presentations I saw


buffer is the duct tape of shapely

touching by one point in shapely is OK
touching by two points in shapely is bad

free shape stuff

TIGER data includes water
wp:Topologically Integrated Geographic Encoding and Referencing

bowtie is bad: polygons must not cross themselves

explain validity
use it much

zip codes are for postal routes (not geographical _areas_)
ZCTA: wp:ZIP Code Tabulation Area

zipcodes.com has bad data
denoising algorithm to clean up zipcode areas

basemap is good
ZCTAs are as good as anything: voids where no people


16:00 introduction to Celery - Caleb Smith

Caleb works for Cactus, which is in North Carolina



RabbitMQ is the most robust thing that celery works with
Celery was created with RabbitMQ in mind.

Gross oversimplification: RabbitMQ is the PostgreSQL of message brokers.



17:00 A new default web stack - Simon Willison
director of architecture of eventbrite

showed tiny text

solr : search engine
elastic search full text search

search engine is smart way of denormalizing data
Solr or ElasticSearch?

solr is 10 years old very robust, wants XML
elasticsearch is only a few years old json by default, runs on multiple nodes

you should never be the largest user of a piece of technology, 
because you'll be finding bugs that others won't provoke


celery works pretty good
redis is kind of a swiss army knife
    the more he uses it, the more he finds uses for it and the more he likes it

    phenominally great performance
        50000 pages per second? on $5/month VM
    difficult to figure out, has it own language vcl (varnish config language)

use feature flags
    release early
    deploy later
    easy rollback when problems

gargoyle (or gutter) feature flag

lanyard is a structured wikipedia for events

read-only version is useful
    easier migratoin (MySQL on EC2 to PostgreSQL on ?

statsd + graphite
    keeps track and show 



    just increase code coverage by 1%

We have one simple rule: just increase code coverage by 1%. We are constantly
increasing code coverage by writing more testcases. Even if the increase is
small, it is still a good thing to do.




12:00 Chris Neugebauer (aussie)

can do one true set of tools of all

mobile devices

web apps and discoverability
pure python apps
hybrid approaches

2008 iphone (ios) set the paradigm
touchscreens (not styli)
touchscreen keyboards
app stores
    define rules about what can be run
    app stores are the only way of discovering what's available)

ios banned flash (and python along with flash)
    until 2 years ago

ios new
    swift (new fond)
    objective c

    is weird
    need to avoid conflicts with other players
    hence dalvik
        hence compatibility problems
        hence jython does not work on android
    chose java, so we have to work to use python on android
    moving away from jvm behaviors

    ART android run time

mobile platforms have preferred languages
official APIs also provide visual/design consistency
ios did a massive change last year

rest of this talk is about the things that python can do on mobile

part #1
web apps and discoverability
designing for touch !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    no hover
    no precision
    can not see through fingers and hands
        so must not need to see what they are over
    android 48 pixel grid for buttons
    constraint-responsive UIs
        alter themselves when visual constraints change
        dimension can change much, such as when soft keyboards appear and

web apps 

showed how bad pyohio.org is in chrome on android
make your web apps look like an app and _act_ like an app.

    preserve cookies
    remember last location on the web app
    use html offline support whereeve possible
    make it easy to get back to some place in your app

simple launchers
web view

play nice in the mobile world, and nobody will care.

Part 2
Full Apps with Python
    Kivy is the leader

    pure python UI framework
    python support on ios & android

what kivy is
    custom UIs
    touch or click

what kivy isn't
    "Native" UIs
        won't implement native ios look or android look
    something that will let you do mobile and desktop at once (controversy)

kivy has gotten better at accessing hardware 
    such as data from acclerometer
    PyJnius & PyObjus
    PyJnius requires much boilerplate
    PyObjus also requires much boilerplate
    Plyer is good

The future
    native UIs in Python

it looks like pyjnius was written to access android hardware

ios has a python.framework now (silently)
so now one can write native mac stuff in python

Part 3: Hybrid approach

use python for what it's actually good at
use other languages for other stuff
base most of app on web services

badness: latency, traffic
make sure that everything is repeatable

write most of app in python
with native UI shims

he'll post his slides there

kivy requires embedded python interpreter as part of app
    that adds 6MB
    also startup delay

    run on mobile
    user interface toolkit

ben rousch: at least two python rebels on android store



13:00 Implementing Celery, Lessons Learned - Michael Robellard
works at Onshift

rabbitmq is really the way to go
he assumes that you're using it

at work has 5 stage/testing environments (on one box)
one rabbitmq

use names for queues
    queue names come from config?

    create multiple queues
    assign workers to each queue
    you can assing moe or less workers as mecessary.
        can do this dynamically

handling failures
    if failure is due to bug in code, 
    rerunning it will not help

    placing failed items in a failure queue
        makes failures clear
    when to retry?
        when retries help:
            DB deadlocks
            server busy
        but not when:
            unhandled exeptions
            permanent email address failure
    log failures somewhere
        and make sure someone knows it failed
        they use sentry
            Sentry is a realtime, platform-agnostic error logging and
            aggregation platform https://getsentry.com

integration with sql alchemy
    desire to tie the creation of the task with the transaction commit
    ie, don't put in queue until transaction has finished successfully

    commit trnsaction on task completion
    rollback on task failure
    proper session handling

creating tasks in postgres
    doesn't mnatively send the content type
    hack on github to set it to json
    Use specific names in your task definition

ons* chose celery over 
apache queueing thing is kafka
pica is low-level ampq library


14:00 Clean code - Brandon Rhodes

really really need to study how subroutines should be used, 
Dr. Wheeler screwed us up, the biggest mistake of the last 60 years.

Need to watch his presentation over and over again.


15:00 configman - Lars

great presentation!

    best use of color in a presentation


16:00 SDR radios - Thomas Winningham

WBFM: wide band FM (ordinary FM broadcast)



great community on reddit

dangerous prototypes


tinaja.com has free PDFs of classic Cookbooks






The magic unicorn did not appear this year.


virtualenv broken with anaconda
canopy (formerly EPD)
    it uses its own virtualenv

epd was open source but not anymore

oil gas finance
    Travis Oliphant and Peter Wang
21st floor

31 gifts
    vera knockoffs

amy flatt
    young coders

greg wilson
    software carpentry

continuum analytics is the company
    travis oliphant 
        primary developer of numpy
        a founding contributor of scipy
        used to be president of enthought
    peter wang
    anaconda is product
        "deploy and manage python and other packages internally"
        package management and 
        pip apt-get


ideas for places real estate
zukin design industrial designer gahanna

wp:Edward Norton Lorenz
    wp:Chaos theory
    wp:Lorenz attractor
    wp:butterfly effect
wp:Chaos: Making a New Science

Einstein: His Life and Universe by Walter Isaacson
xxxxxxx recommends above biography

More information about the CentralOH mailing list