OSDC 2009 Day 1 Wrapup

OSDC 2009 Australia is being held in Brisbane this year at the Bardon Conference Centre, and I was lucky enough to get 3 speaking slots (2 shared with Paul King). Day 1 was full of interesting talks, my notes are summarised below.

Understanding Volunteers

Karen Pauley delivered the day one keynote. My notes as follows:

  • recommended book by Charles Handy (Understanding Organizations)
  • organisation for mutual support (eg. Tokyo Linux Users Group, Sydney Perl Mongers) – consist entirely of volunteers who have a shared interest, don’t like to be managed, but a group needs some management (it’s like herding cats), anybody can join
  • organisation to provide a service (eg. The Perl Foundation) – requires structure to handle queries, cannot just join if you want you, expectations of communication and responsiveness and regular releases
  • campaigning organisation (eg. Enlightened Perl Organisation) – camapigns aren’t managed they are led, usually fail when the organiser gets bored
  • motivations – in open source we like to reinvent things
  • fun should be self evident, we volunteer to enjoy ourselves
  • lack of respect can stop the fun, need to treat each other well, need to apologize (and not follow it with a but…)
  • anger – “I know you’re all volunteers but…”, feedback can offend volunteers, in many cases people don’t mean to offend, in some cultures you write directly, tone down the rage and pause before replying
  • learnings – want a creative learning environment, learning and using something new is fun
  • as per Maslow, one of our key needs is to belong
  • belong with people who think the same way
  • impressions – decide very quickly our perception of people (4 seconds) – in person we judge looks, on the internet we judge the way we type
  • our first impression of people on the internet could be an email, IRC or a twitter – we make judgements of people based on 140 characters
  • the online life is real, so be yourself
  • everybody has a voice, make your communities fun

Joopal and Drumla: Not Your Usual Mashup

Sam Moffatt presented this brief talk about Joomla! integrated into Drupal (Drumla)

Introducing Django – Calling All Web Developers with Deadlines

Akash Mehta delivered this talk, my notes are as follows:

  • Django is a web framework to build websites quickly
  • used by a lot of newspaper / news / media sites (see DjangoSites.org for a full list)
  • a Python framework – extremely powerful high level scripting language, do a lot with less code
  • a python web application framework – excels at data driven web applications
  • a python full-stack web application framework – if using Django you are using the full system, not portable, mature, been around 5+ years
  • batteries included – functionality you need comes out of the box
  • Django has good support for internationalisation
  • DRY -> DRY (OAE) – Don’t Repeat Yourself (Or Anybody Else)
  • views do not usually have URL’s mapped to them, custom URL mapping takes care of this
  • not a serious business framework (see djangopony!)
  • good documentation – starts with a comprehensive tutorial, documentation then splits into functioanlity / what you want to achieve, stored in Subversion, there is an online version of the book which is also published by APress and available on Safari
  • automatic administration – not a scaffolding, end-to-end solution for managing production data, lots of useful widgets
  • available applications – search (Haystack is the current favourite), blogs (plenty available on github), security and administration built-in
  • views take advantage of decorators in python, such as @login_required
  • templates – template inheritence and blocks
  • URL config – no automatic mapping, create your own URL’s, can use regular expressions, usually mapped to views

Perl6 Now

Scott Penrose delivered this talk, my notes are as follows. Talk will be made available online.

  • when is Perl 6 available – now, language specification
  • looks like Perl
  • biggest problem with Perl is when you have @array you need $array to access it
  • More information at http://rosettacode.org/wiki/Category:Perl_6 and http://github.com/perl6/perl6-examples
  • Pugs – not very active, but a good reference application, written in Haskell
  • SMOP / Mildew – library parsers
  • Sprixel / Elf – implementations
  • Rakudo – run time engine, implementation of Perl 6 that runs on Parrot
  • full version should be available next year
  • performance – slower, Parrot keeps changing, performance increasing month on month
  • CPAN – not currently available but coming
  • 42 modules available now via github, mainly web and database
  • IDE – Vim syntax highlighting and Padre
  • debug – Larry Wall – “why do you need a debugger, just print line”, no interactive debugger yet
  • fun langauage to write in – can write code shorter and faster, execute faster is coming

oFono – Open Source Telephony

Denis Kenzior delivered this talk on oFono, my notes are as follows:

  • many devices and modems to talk to – all talk vendor specific protocols
  • existing projects – FSO, only considering smartphones, assumed AT modems, API not well constructed, implemeted in Python and too slow, does not support multiple modems
  • existing projects – Qtopia, end of life, did not support D-Bus
  • learnt from these projects – GSM is hard, huge and boring, everything exposed in the API but very little used or available
  • GSM is hard – massive amount of specifications (call handling (in, waiting, multi-party) sevices such as call waiting and number exposure, SMS), vendor specifics (enhanced SMS, smart messaging, WAP), storage (number, calls, SIM)
  • GSM is really hard – backwards compatibility (most of the specification still around from 1G), every bit counts, bugs in all of the different vendor hardware that needs to be worked around
  • oFono targets all devices, target all distributions, minimal dependencies, modular, UI easy to customise / replace
  • don’t use SIM for contacts / SMS – limited to number of contacts / messages – simplified the design
  • device detection – udev, modemconf
  • plugins – read / write to SIM, send / process SMS, Call / SMS history, D-Bus interfaces such as carrier logos
  • atom – implement specific functionality eg. dial, hangup, merge, switch, invokes operation on an atom driver
  • currently supports – network registration, make and receive calls, SMS, cell broadcast, GPRS, all supplementary services
  • handful of modems and devices supported
  • Phonesim– simulates most AT modems, make / receive calls, SMS, MWI, cell broadcast, network registration, supplementary services – good for development simulation
  • API – consistent, minimal, easy
  • takes care of magic strings (MMI, those *xxx strings), read / write from SIM, service provider display (MVNO, files on the SIM)
  • oFono plugins for BlueZ – hands free & audio management
  • oFono plugins for ConnMan – 3G network management
  • oFono currently has no CDMA support
  • unique because can support mutiple devices at once

State of Play: PHP in 2009

Akash Mehta delivered this talk, my notes are as follows:

  • 1995 – PHP/FI, 2000 – PHP 4.0 (very successful), 2006 – PHP 5.1.2 , 2009 – PHP 5.1.3 (developed and released at same time PHP 6 being discussed, so many features back ported)
  • language extensions
  • 450 user groups, 1200 members in San Francisco group!, 100 in Brisbane active
  • Microsoft and Zend – awful on IIS, they are working on it apparently
  • used in dynamic applications, social networks (Facebook), business applications (FLOW3)
  • IDE’s – Eclipse – PDT, PHPEclipse, Zend, NetBeans PHP, JetBrains working on PHP editor (Web IDE)
  • SVN still dominant, github growing in popularity following in the footsteps of Rails
  • server – Apache losing ground, growing in popularity lighttpd and nginx
  • phpDocumentor for automatic documentation
  • Phing and Capistrano for build and deployment
  • Project Zero is PHP on JVM
  • Xdebug is popular for debugging, DBG is also reliable
  • CakePHP – Rails for PHP, Mozilla Addons was the big thing but recently dropped for Django
  • CodeIgniter – strong following, low barrier to entry
  • Symfony – popular, strong following, high barrier to entry, hard to use with existing code
  • Zend – full stack approach

Git Me Up

Nigel Rausch delivered this talk on Git, here are my notes:

  • adopted quickly in Rails community
  • distributed version control
  • centralised – CVS, SVN
  • distributed – Bazaar, Git, Mercurial
  • Git created by Linus Torvalds, developed for Linux kernel patch control as replacement for BitKeeper (was one patch every 6 seconds, now 6 patches per second), so needed to be fast
  • effcient in management of files – entire repository for Linux kernel is only 40% bigger than the kernel on its own
  • commit locally to your machine – have full copy of all history – can commit at anytime, can always look back at history
  • simple branching and easy merging
  • support multiple remote servers
  • SVN is simpler to use, single point of truth all the time, central control, until recently better tools
  • git init – creates a hidden directory .git, which has config and history, use to start a repo
  • git clone <repo> – clone an existing repo to start a new repo
  • git add <file> – add to repo
  • git commit -m “message” – commit to local repo
  • git has about 150 commands, plus all their options
  • git branch – master is there by default
  • git checkout – checkout a branch
  • git log – commit log history
  • git merge <branch> – merge two branches and create a new commit
  • git remote add origin <repo> – this happens automatically if you cloned
  • git push origin master – origin is server we are pushing to (by default called origin), master is branch
  • git pull origin master – fetch and merge from remote repository, pull is a fetch and merge, a fetch will just get and leave in a pseudo repo
  • Mac installs with GitK which is ugly. GitX is a better bet, TortoiseGit for Windows
  • git svn clone – will create a bi-directional git repo of your SVN repository, commit locally and push back to SVN, at a later poiint you can change your origin to a Git repo
  • rebase, or work on a branch and merge to master locally so you don’t have all of the little commits
  • initial high learning curve, supports commit often, gaining support, IDE support growing
  • binary files saved and compressed in repo

Lightning Talks

A bunch of 5 minutes lightning talks, here are the brief notes from the session:

LLVM

  • low level virtual machine
  • risk based assembly language with annotations
  • clang – convert C and C++ to LLVM
  • adopted by Apple

withgui

  • GUI programming in Python, wxPython is ugly, PyQt4 meh
  • idea – with gui.x (where x is column, frame) – clean
  • still things to do, code not yet released

Visualising Geo-Data

  • government 2.0 taskforce
  • big csv file about sighting of frogs in South Australia
  • frogspotter – every dot, different species, different colours, then a cluster library
  • the data aggregator – drill down on the data
  • frog census

Connectr Social Network

  • currently Twitter with 650 lines of Python, wish to take on Facebook!
  • current social networks have issues with privacy, incentives for hosts are wrong for users
  • no business model, not hosted on server, runs over xmpp

LCA

  • Linux Conf Australasia 2010, to held in Wellington

GLPK

  • linear programming project, sponsored by GNU (hosted project)
  • applicable to lots of things – scheduling, rostering, optimising sports drafts
  • CPLEX is commercial alternative
  • MathProg is the language that comes with it, describes the program in a math like language
  • active community
  • bindings to scripting languages

XHTML2PDF

  • used for conference books and name tags
  • pdf:toc to generate table of contents from every heading
  • sponsor logos are image tags, use CSS zoom property
  • div tag used for indenting
  • margins in centremetres, told CSS book was A5
  • absolute positioing (OK for print, not for web)
  • scripts will be published
  • similar to Latex, but simple and uses same HTML as web

iPhone Hacking

  • to get SMS out – if not encrypted they are stored on your system by iTunes
  • they are GUID.mddata files which you can access using a database client
  • bambapilla – exports conversation to XML, formats nicely as XSL in browser

Hacking OSX apps with Python

  • objective C is a lie, its just C
  • when you don’t have the source but want to change a behaviour – swizzling

Patents Rock

  • protects inventors and ideas, thoughts and ideas
  • patent voliations – side to side swinging on a swing, licking a postage stamp, inducing cats with a laser light
  • software opatents suck

Haml & Sass

  • Haml – takes HTML and makes it simple and short – implementation for Ruby
  • Sass – takes CSS and makes it simple

How I PWN

2 thoughts on “OSDC 2009 Day 1 Wrapup

  1. Pingback: Twitter Summary November 2009 « CDS 43

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s