>Science Fiction: “The Hacker and the Ants”

This book was written by Rudy Rucker, the author of “Software”  and other SF and science books. “The Hacker and the Ants” was published in the early 90s and it shows it’s age.  The hero of the book is a middle-age hacker who works building software for robots. He also dabbles in building A-life creatures (A-life is short for Artificial Life). He helps to develop software ants that live in cyberspace and do some bad things as the story unfolds.

As it happens with books of this type, some of the “future” technologies have been already outdated and the one’s that haven’t – like the cyberspace “decks” – seem clunky at best.

I found the book to be fun, but it was not as good as “Software“.


PyGotham 2011 – (Day 2)

On the second day I attended three talks:

  • Python Concurrency – this talk, given by Bob Hancock, was my favorite of the entire conference. The talk covered a lot of material on O/S concurrency and multi-threading. When the slides to the talk are posted I will post a link. but meanwhile here are some interesting tidbits :
  1. Bibliography on O/S and Concurrency
  2. “The most important quality in  a  programmer is patience” – Guy Steele
  3. Explanation of Python GIL
  4. Generators in Python can now be used to implement co-routines (very cool!).
  5. Read C.A. R. Hoare’s paper on Communicating Sequential Processes
  6. Async I/O plus co-routines can be used to build co-operative and very light weight threading in Python (see greenlets)
  7. The new language from Google GO uses similar ideas.

A lot of this was very familiar as in the past I used co-routines to implement    concurrency in PASCAL and Modula-2 programs.

  • Brubeck.io web framework – Brubeck is a web framework in Python that uses the greenlet libraries and co-routines to make web programming bit easier. The interesting part of the talk was that we all actually got to try and install the software on our own laptops and try to run it. I only got about half way though it.
  • Machine Learning – this was an introductory talk on machine learning. Machine learning is the kind of stuff that Google does to figure things out by analyzing ream and reams of data. A simple example of this kind of stuff is the Spam filter in your email client.  For Python programmers there are bunch libraries that can be used to perform these types of computations: nltk,  scikits.learn, pybrain etc.  As part of the talk the speaker presented an example of a program that analyzed data from Twitter to decide whether a tweet was more Republican or Democratic leaning. Kind of fun…

PyGotham 2011 – Python Conference (day 1)

I’m at a two day Python conference today and tomorrow. Here is the website of the conference and here is a brief description of talks I attended:

  1. MongoDB Schema Design – this talk was given by Kyle Banker (the author of an upcoming book “MongoDB in Action”). MongoDB is one of those NoSQL databases that is meant to hold humongous amounts of data. The schema for MongoDB objects is expressed via JSON notation, there is even a tool that lets you interact with database using Javascript. See MongoDB website for details. MongoDB reminds me of some of the object oriented databases from the 90s, although MongoDB seems to be much easier to use.
  2. MongoDB Python Library – this talk was given by Dan Crosta from 10Gen. He walked us through a small example of using MongoDB and the Mongo engine Python driver to build a simple game called Nymwit you can get all the code from https://github.com/dcrosta/nymwit.
  3. Fiesta.cc – this talk was give by Mike Dirolf – the author of “MongoDB Definitive Guide”. He spoke how his company used Python and MongoDB to create a simple emailing group manager. Check it out at https://fiesta.cc/
  4. TMUX and ipython – this talk was about using “tmux” unix tool. “tmux” is similar to GNU Screen and other similar programs. I did not stay to the end this talk.
  5. Python and Functional Languages – presented by Andrea O.K. Wright. This talk went through details of how to interface between Python and several popular functional languages: Erlang, Scala and F#. I thought the communication set up between Erlag and Python was the coolest – really showed the power of meta-programming.
  6. MongoDB Scaling and Sharding – this talk was give by the CTO of 10Gen. He explained the architecture and the operation of MongoDB sharding. I asked what the largest MongoDB installations exist and he said in terms of data size largest is in 100 terrabytes (but not yet in peta byte range) and largest cluster has about 75 nodes (where a node is 3 machines).