You’ve been with me at home and on the highway. Thank you (Mike Johnston on J.J. Cale.).
driving by fenced field with vegetable gardens and reeds, i know the field was wild before, and someone has been shooting animals, bodies of a fox and another animal hanging on a barbed wire fence. a horse and a goat(?) are watching me pass, their heads over the fence next to the dead animals, can’t see whether they are attached to the fence or not, by the skin on the top of their heads. car is beeping, fuel gauge shows almost empty, there is a sort of metallic plastic foil over part of the steering wheel. now inside, walking into empty house, light swtiches don’t work, realize i haven’t spoken to or seen dad for a long time. begin calling out louder, dad, dad, dad, dad, dad! and i hear his cough, and he is there, in front of the computer in a corridor. he is putting super-glue on his eye to try and keep it closed. no! you can’t do that dad! but he doesn’t care, he wants the eye, the right eye, to close, and he puts the glue on it, on the eyelashes and the eyeball. his face now looks better and i tell him he looks good. now he suddenly does look good, younger, a young english actor look, jeans, wet, combed hair to the side. ‘i’m in contact with someone for work’. he says. i reply, ‘i can help you look for work, dad.’ he says ‘i may not be looking for work with whom you think’.
Rough notes from EuroPython 2013.
Chairman of the Python Software Foundation, works for Rackspace and OpenStack.
import this
.Creator of the Flask framework and the Werkzeug and Jinja2 libraries among many others
We all suffer from going with the flow in many cases.
The keynote gave some examples of how questioning some established rules revolutionized the industry and how we open our mind a bit.
It included interesting examples from the Python and programming community where people tried something new with tremendous success and how they came up with the idea.
Founder and co-developer of a number of popular Python projects, among them PyPy, py.test, tox and execnet. Regularly gives talks at conferences as well as open courses and in-house trainings on testing topics. His interests also include P2P computing, metaprogramming and politics.
A video of this presentation is now online.
Consider myself from global IT community, not from a particular nation
@gonzohacker:
Someday when I’m living in a post-apocalyptic police state, run by autonomous flying drones, I want to tell my kids, “I helped build that.”
How much is Google, Facebook, etc. responsible for aiding Spying Cartel?
Which Internet Future do we prefer:
Which one happens depends on:
IT people are like bishops. We know how programming works and relates to society. We have a responsibility to make choices that cause no harm. It’s all about communication between devices, mediated by technology.
Centralization (current situation)
0 0
\ /
0 — 0 — 0
/ \
0 0
Espionage Cartels are happy:
How to disrupt Cartels?
Decentralization
0 — 0 — 0 0 — 0
/ \ / | / \ /
0 — 0 — 0 — 0 — 0
/ | /
0 0 — 0
Example: http://crypho.com, but: crypho as mediator has meta-data == PROBLEM
P2P code needs to be FOSS & run on OWN device.
Example: TAHOE-LAFS storage:
Communication is about more than only file storage. New promising WC3 standard: Web RTC - browser-to-browser data streaming, real-time communications.
With power comes abuse
We are good at client/server, not so much P2P"
Global WLAN situation is idiotic. Idiotic == private ‘only for me’ in ancient greek
Lookup:
Given enough time, looking at history, countries are in danger of having criminals in charge.
It’s about Convenience. Some choose inconvenience (Edward Snowden).
¿Q: Is there hope for a world without nation states?
Yes. FOSS is transnational. WebRTC standard - nations had no say. Nations not so important in internet world.
How do we do mediation?
Need social ID
TAHOE-LAFS trust model works.
It would make much more sense to have government communications open and transparent as they have nothing to hide, right?
Answer to the “If you have nothing to hide, you shouldn’t worry about surveillance” argument: The damage from a totalitarian society is much higher than from terrorists.
Author of Python in a Nutshell and the first 2 editions of the Python Cookbook. For the last 8+ years has been working (as ‘uber’ tech lead and senior staff engineer) for Google in Mountain View, California.
“Worse is Better” —Unix, ‘New Jersey’ approach.
Well == Simple.
G.K. Chesterton:
Anything worth doing is worth doing badly.
E. Raymond:
Given enough eyeballs, all bugs are shallow.
Perfection == Big Design Up Front.
Alex Martelli:
The world is changing all the time. Your perfection is a memory of the past.
Use ‘Perfect’ as Verb, rather than adjective.
Don’t save on:
No cowboy coding!
From the start:
Best at start, but acceptable to add later:
def find_by_col(root, color):
if root.color == color: yield root
yield from (find_by_col(c. color) for c in root.cs)
def find_by_sha(root, shape):
if root.shape == shape: yield root
yield from (find_by_sha(c. shape) for c in root.cs)
Versus:
def find(root, n, v):
if getattr(root, n) == v: yield root
yield from (find(c, n, v) for c in root.cs)
Okay to incur technical debt, WITH CARE.
Focus on potential errors that could cause irrecoverable losses:
Hynek Schlawack is an infrastructure and software engineer from Berlin, Germany, PSF fellow and contributor to a wide variety of open source projects.
How a German web hosting company and domain registrar deploys numerous Python applications on UNIX-based systems. Simple is not Easy. Put effort into making your deployments simple.
Edsger W. Dijkstra:
Simplicity is prerequisite for reliability.
Donald Knuth:
It is important to find simple solutions instead of stopping as soon as a first solution is found.
Links:
Lynn Root is a software engineer at Red Hat on the Identity Management team. She is the founder and leader of PyLadies San Francisco, an international mentorship group for women and friends in the Python community.
How to integrate Django applications to authenticate against already existing identity management systems like LDAP, Kerberos, etc. Links:
Advanced e-learning, or introducing programming to new coders.
Tutorials:
Daniel Greenfeld is a software developer and co-author of Two Scoops of Django. Audrey Roy is a software developer and designer and co-author of Two Scoops of Django.
Hands-on Django workshop. Built a real, working site from the ground up, using Django 1.6 and Python 2.7/3.3. Covered Python and Django setup, project creation, app creation, models, the Django admin UI, views, migrations with South, user image uploads, new user registration, basic forms, and basic internationalization.
Patrick Büchler is a Software Developer.
Car analogy - people who go to BMW will get different quality than Fiat. Same with software, but not appreciated.
Right mix of people important. Pointless to have lots of all-stars because they will all have their own idea of how it should be done.
Why Python? Too many languages == uncomfortably hot. Python is platform independent, has big community, good traction/adoption/future plans, good learning curve:
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea – let’s do more of those!
How to implement Python? How to manage risks?
Choose project and do it with Python
Problems
Mostly went surprisingly smoothly! Consider the following:
def my_function() != public int myFunction()
Do code reviews! Especially when devs used Java or C# before. Developers coming from VB have less projects.Factors critical for decision about tech to use:
Tech and org factors (reasonable)
Human Factors (personal)
The word ‘Python’ won’t open doors, but the folowing may:
Fears/questions from customers:
Was it worth it?
:) Yes!
Q: Tried sales pitch “lets do a prototype in Python first and see if it works” A: No, but it is a good idea
General notes: