Day 2 of the OSDC conference, one talk delivered today with Paul King on Using Groovy for Testing. The following are my notes from the sessions that I attended.
Keynote: Simplicity
Marty Pauley delivered the keynote, my notes are as follows:
- good code is easy to read, beautiful (aesthetically pleasing), useful
- evil code is difficult to read, ugly, but it is still useful (otherwise you would have no code!) because unfortunately it is still in use
- good code should be fast, concise, advanced, maintainable
- “Simplicity is the ultimate sophistication” – Leonardo Da Vinci
- comments are an indicator that you’re code is crap, documentation and comments are not the same (documentation is useful), ironic that some languages put documentation in comments (eg. JavaDoc)
- always out your scripts in a module, makes it easy to read (the comment was made in relation to Perl) and makes it easier to test (one script that calls one module, that can then call other modules)
- Google is good example of simple (as compared to Excite and Yahoo! at the time) – search engines started complicated and became simple
- Example of simple first is that Americans used the Space Pen in space (highly engineered pen that would work on all surfaces and work in space), but when they asked the Russians what they used, it was a pencil
- “Java was designed for stupid people! – was designed because it was deemed to hard to write code in C”
- look outside your current toolset, we all have problems in common
How to get Rails Web Applications Accepted in Industry
Harley Mackenzie presented this talk, my notes are as follows:
- why Ruby? – expressive language, object oriented as everything is an object in Ruby (lends itself to good, readable, maintainable code), dynamic allows to delviver scripts quickly and maintainable
- hard to find Ruby people? – many recruiters do not understand the roles they are recruiting for, Chuck Jones (of Warner Brothers cartoon fame) looked for artists knowing he could train them to animate, the same goes for quality developers
- open source – lower initial cost, source will never disappear as will always be around in some way, don’t emphasise the FREE but the FREEDOM, dynamic languages you always have the source (not compiled)
- efficient – productivity important to industry
- elegant – write easy, maintainable code
- reliable – “testing to oblivion approach”, everything has tests, commercial environments do not value testing, all say it is a good idea but will not pay for it
- expressive – easy to understand what the code is doing
- why is Rails not adopted? – management are risk averse (don’t want to go outside the Microsoft norm), corporate IT motivated by fear and uncertainity (like to do things the way they are always done), loss of control (don’t understand and don’t like when you know about things they don’t), outsourced IT providers (only in it to make a buck so resistance to change)
- solutions and adapt (know what you can change and what you can’t)
- demonstrate – give them a VM (“take the puppy home for the weekend), find the champion
- cloud solutions – if you can’t deal with anorganisation and their infrastructure, bypass it (use Amazon or similar)
- draw the line – sometimes you have to walk away than comprimise (figure out where the line is), usually can deal with server operating system, web server and database but not the language it can be written in
Open Source Web Apps in Azure
Jorke Odolphi delivered this session, my notes are as follows:
- software as a service (SaaS) – multi-tenant, pay as you go
- platform as a service (PaaS) – applicationn frameworks, languages
- infrastructure as a service (IaaS) – pay as you go, scale (like Amazon EC2, GoGrid)
- Windows Azure is an operating system in the cloud, where you run applications, designed to scale
- lots of servers sitting in shipping containers (2,000 servers per container, 7 hours to get up and running after delivered) with VM’s running Windows (called the Fabric)
- components – web role (front end facing, static content, ASP.NET 3.5, WCF, Fast CGI applications such as Perl, http(s) inbound), worker role (like a Windows service), storage (blobs, tables and queues)
- running PHP in Azure – Eclipse tooling available (WindowsAzure4E)
- MySQL in Azure – run as a worker role (configure ports and storage)
- Tomcat running in the Azzure Cloud (http://oss.cloudapp.net/)
- No environment yet in Australia, but Singapore coming soon, pricing
Desktop Applications for Web Developers
Ben Balbo presented this session, my notes are as follows:
- cloud issues – network outages, working offline, server outage, application failure affects everyone, access/ownership of data, dependence on third party to fix bugs
- Google Desktop Gadgets, Adobe Air, Windows 7 – just HTML, all the information stored in the gadget or via a web service
- Mozilla Raindrop – Mozilla’s reaction to Google Wave, pre-alpa, a local web service
- WordPress + Google Gears
- iPhone applications
- XUL – XML User Interface language from Mozilla, load any interface around Firefox (use Firefox as a framework)
Using Groovy for Testing
Presentation I gave with Paul King, and was an interesting experience on how to break down a 3 hour presentation to a 30 minute talk (which we started about 20 minutes prior to the talk commencing)!
Business, Law, Open Source
Brendan Scott presented this talk and these are my notes from the session:
- each decision you make limits your subsequent decisions
- Starting a business has effect on how easy it be to sell down the track (setting up within a corporate vehicle) – selling of shares make this easy as the legal person transfers. Most businesses are setup where the owner owns all the assets and personally signs up to all the contracts such as phones where their name is on the contract (makes it hard to transfer later on)
- stay away from partnership (and the use of the word partner)
- Pov Ray had pre-open source licencing, wanted to sue someone who was bundling it and selling it – needed copyright ownership to sue but had to go and find all of the contributors first
- code consents in case somebody takes code and uses it in breach – keep records of who, what, when
- IP Ownership – once you have transferred rights, it is very difficult to recover these rights, you need to get legal advice early
- dispute resolution – usually because people not speaking to each others, lawyer can help you identify issues, send the nasty letters, courts look favourably if you have tried to sort out the issue
- negotiations – lawyers familiar with the lines of argument
- legal arcana – knowing the legal secrets and finding holes in contracts, etc…
- copyright – owned by employee unless agreed otherwise
- don’t lie about your products and services (Part V 52 Trade Practices Act)
- Part V, Dvision 2 Trade Practices Act – don’t exclude warranties, limit recourse to repair or replace, it is illegal to exclude warranties
Lightning Talks
An extended session of lightning talks. here are the notes:
Make my PHP 66 Times Faster
- slow code read in a really big library everytime it is run
- idea is to make a socket call and run off the server, loading only once
Something About Cars
- entertaining comparison of programming languages to cars
The Coming Programming Language Crisis
- entertaining look at new programming langauges, recruiting for the Australian LOLCODE Developers network! (see http://lolcode.com/)
OSDC – Open Source Developers Club
- parent organisation for the conference
- like meetings (found about every third session, people attend a session that is not their usual language)
Hosting Web Sites In The Cloud
- created Grocery Choice, wanted something that had scale initially but assumed would not need it going forward
- Amazon EC2 – virtual machine farm, upload your VM to the cloud (takes about 3 hours)
- using commercial, licenced server so limited to CPU’s that coule be run
- can move your instance onto a larger virtual machine
- pay as you go, for what you use
Geography, Databases & Government
- geo2gov.com.au – JSON webservice built with Perl and PostGIS
- tells you where you fit in the census, details about where you are in relation to government
- good for party trips – who lives in the better part of town?, find out more about your street!
- can download the cencsus as a 850meg SQLLite database
Netrek
- Looking for volunteers on open source Star Trek game, http://www.netrek.org/
Phoebe’s Netbook
- Phoebe is 4, has an original eePC
- the distribution is very easy for children
- TuxPaint and other programs in Linux that are good for kids
- set of command line tools
- pscoast – will show a map, can then map cyclones as they move down the coast
Byte code optimisation using Promise
Open Source Licencing vs Microsoft
- starting a business with no money
- do something disruptive – is a potential client trying to solve a problem that your product addresses
- low-end disruption – easier way of doing something that already exists (eg. MySQL vs Oracle)
- new-market disruption
Handy Python Functions
- if building libraries, pleause use doc tags!
Katoomba
- open source SMS gateway
- written in Ruby
- will be released shortly
- written in Python using pygame
- open source, GPL
- team based, strategy game
Google Wave Bots
- Wikifiy
- Piratify
- Flippy
Pingback: Twitter Summary November 2009 « CDS 43