All +
All -
oscon-2009
- Wednesday
- + -
Keynotes
- govt as a platform - tim oreilly
- + -
Moblin - Dirk ??? - Intel
- Make it fast
- Lots of changes to modernize linux
- Non-root X
- Boot speed
- A brief History of Software - Michael Lopp
- Writes randsinrepose.com
- alternate title "RIP Borland"
- borland paradox for windows
- released 1992
- same time as win 3.1
- 7mb of application
- "Are we getting lazy"
- We just want to write code
- We are craftspeople
- history of sw is history of decisions
- who are you making the decisions for?
- it's not about what's new, it's about what's good
- + -
Managing Abstractions - Alex Martelli - Google
- htp://www.aleax.it/osc09_abst.pdf
- A tower of abstractions
- even assembly is far above "the metal"
- "all abstractions leak" - spolsky
- make it leak properly
- abstractions can slow you down
- to abstract == to procrastinate
- to achieve, think concrete
- user stories versus anonymous users
- abstr. leak because they lie
- map != territory
- this must be the case for it to be useful
- You can't make a perfect abstraction
- all abstractions are failures
- at some level
- tcp/ip is a good abstr
- it leaks trust / security
- never sublcass a concrete class
- adding methods is ok-ish
- overriding methods is bad
- how to absgract well
- master 1-2 layers below
- and 1-2 layers above
- know what you're using, and what will be using you
- copying skips understanding
- build in "leaks"
- hooks
- use key semantic bottlenecks
- eg. at the db interface layer
- event/callback approaches
- design patterns
- pre/post hooks
- template methods
- dependency injection
- + -
Distributed Bug Tracking with SD - Jesse Vincent (Best Practical)
- http://syncwith.us/sd/
- disconnected bug tracking
- text files
- version control
- local copy of app
- SD is a distributed bug tracker
- features
- CLI
- web UI
- customizable
- talks to other bug systems
- not network dependent
- gracefully handles bad data
- learns how to resolve conflicts
- fully versioned
- metadata propogates like tickets
- tickets have full history
- comes with a built in webserver for browser UI
- + -
Sphinx full text search
- supports BIG sites
- all the usual search engine features
- native APIs for the usual languages
- interesting features
- selectable relevance ranking
- multi-queries
- batched query execution
- allows batch optimizations (eg parallelism)
- advanced result set processing (where, order by, group by)
- select syntax support
- mysql wire protocol
- subset of features of mysql
- basically any single-table query
- faster for some tasks
- real time updates of full-text index not yet available
- listed as a "mid-term" feature
- + -
10 Usability Epiphanies for your open source web app - Sigurd Magnusson
- example of usability bug that caused an airplane crash
- "The inmates are running the assyum" book
- Poor usability wastes time
- wufoo.com - useful form creation system
- It's also a TCO issue
- The 10 tips
- Hot mouseover
- make it clear what happens when you click
- BEFORE you click
- affordance - suggest how an object may be interacted with
- red mouseover highlight on the "delete" button
- button vs. link
- button for primary form action
- link for a secondary action
- Loading spinners
- place the spinner on the button itself
- a spinner tells users "this might take a while", so they don't click again
- drag-n-drop
- not common, users may not expect it
- can add a checkbox to allow d&d
- iconitis
- text is a lot clearer than an icon
- text can be I18N, icons are tough
- too many steps
- more steps, more work
- look at 280slides.com
- choose your choices
- too many ways to do it
- Limit choices
- or at least hide the obscure ones
- Language
- descriptive
- succinct
- necessary
- edifying
- undo
- keyboard
- focus cursor conveniently
- allow esc & enter to cancel & proceed
- shortcuts for common actions
- + -
sex & design axioms - Juhan Sonin
- need a "strunk & white" for interface design
- let data scream
- big text
- read tufte
- aim for beauty & usefulness
- software==visual medium
- 85% of UI dedicated to data
- reality bites
- no lorem ipsum
- use real data
- real has min & max
- you get real feedback
- prototype like crazy
- a real prototype needs to be clickable
- make a big TODO list
- churn
- get criticism early & often
- ruthless editing
- print stuff BIG, tack it to the wall
- pixel perfect
- start with a sketch
- but then make real pixel-perfect protos
- repeat customers rock
- polarizing vs inclusive
- design for repeat customers
- beginners aren't beginners for long
- do the small stuff right
- designaxioms.com
- Thursday
- + -
Keynotes
- + -
women in open source
- dreamwidth
- women feel unwelcome in floss
- tips for recruiting women
- recruit diversity
- recruit the kinds of users you want
- get a code of conduct/diversity statement -- and mean it
- wiki, bug tracking
- transparency
- Don't stare!
- value and acknowledge all contributions
- call people on their crap
- pay attention to the littles tuff
- adding women is not a zero sum game...
- + -
your work in open source - chris dibona - google
- goog crawls source code
- 30m unique files
- 2.5b loc
- 48% GPL
- 20% LGPL
- rest are permissive
- on code.google.com, gplv3 is 45% of GPL'd projects
- AGPL growing, but very small (<1%)
- 37m more loc php than perl
- 2x more C than c++
- more pascal than ruby
- + -
enabling academic research - tony hey - microsoft
- dude was a serious academic in the UK
- science today is very data intensive
- needs tools to manage bulk data
- open source extensions to MS tools
- trident - streaming data processing
- creative commons plugin for word/ppt/excel
- zenity - capture semantic information around data
- node xl - network analysis & viz
- research information center - like an online library
- phyloD - statistical tool for dna analysis for hiv research
- moodle plugin
- + -
cloud computing, why it matters - simon wardley - canonical
- funny from the start
- no one def'n of cloud computing
- as hard to define as "industrial revolution"
- it's a transformation
- concept
- utility computing
- commoditisation
- innovation -> bespoke -> products -> services
- technology
- attitude
- this is what's happening now
- why does it matter?
- eucalyptus- aamazon ec2 on your hardware
- + -
open source & better govt - ?? - sunlight labs
- whitehouse.gov CMS cost $16m
- recovery.gov - $9m+
- but you can't get a piece of that
- federal procurement process is hairy
- data.gov challenge
- opportunity for open govt. is high now
- + -
groovy for java testing
- groovy is a dynamic lang for the jvm
- optional typing
- integrates w/java
- most java code is valid groovy code
- java and groovy can call each other
- use groovy to play with java libraries
- but idiomatic groovy looks more like python, etc.
- g has closures, meta-programming, re's, native map & list syntax, etc.
- has REPL, groovy shell, ui
- has GroovyTestCase class for junit
- how will it help write tests?
- less code w/optional keywords
- terse syntax for property access
- native list/map syntax
- closures
- assert keyword
- == does the right thing
- triple-quoting for multi-line strings
- create & fill bean: b = new Bean(name: "foo", cost: 100)
- use map syntax to talk to beans
- supports python-style default params
- AST transformations
- mocking libraries work
- can also use dynamic proxies
- nice technique, simpler than mocking
- stubfor & mockfor
- caller must be groovy
- looser than mocks
- tellurium - selenium for groovy
- + -
eucalyptus - open source infrastructure for cloud computing
- very big topic today
- everyone and their dog
- public clouds are opaque
- many cloud features seem useful for on-premise IT
- self-service provisioning
- legacy support
- flexible resource allocation
- what extensions are needed to support a wider variety of services?
- existing open source cloud solutions not satisfying or available yet
- built their own
- web services based linux image hosting
- demonstrate that it's a cloud
- => emulate amazon AWS
- that's a cloud, so eucalyptus is too
- functions as an overlay
- installation & maint. well thought out
- partnered with canonical
- they'd like to be "the linux of cloud infrastructure"
- not a replacement for AWS-- implements AWS APIs,but not their full experience
- virtualization is a subset of cloud
- cloud != grid
- a grid offers any one user the entirety of the resources
- cloud offers only a small subset to any one user
- no federation in clouds
- rightscale - aws monitoring & management system
- ubuntu enterprise cloud
- + -
state-of lightning talks
- + -
launchpad - karl fogel - canonical
- opensourced
- but the point is to still have a single instance
- and make that instance better
- monthly rollouts
- code.edge.launchpad.net
- dev.launchpad.net
- + -
OSU open source lab
- hosting
- ftp mirrors
- project hosting
- development
- olpc/sugar
- protein geometry db
- pydra
- goscon
- self-sustaining on donations (not funded by univ)
- + -
Joomla - Elin Warring
- php based cms / app framework
- OO
- MVC
- Extensible - 3024 extensions
- community driven
- 1.6a released recently
- 10m d/l since 2007
- 1.0 EOL
- maint rel every 2mo
- 51 languages
- recent leadership reorg
- about 0.76% of all websites
- 1.6 features
- adv. access control
- usability impr.
- mvc administrator
- library upgrades
- + -
Derby - Rick Hillegas
- overview
- Pure Java SQL db
- mature
- feature-rich
- zero-admin
- embeddable
- 2.5mb jarfile
- new features
- in-memory db
- fast & transient
- caches
- monitors
- test rigs
- generated columns
- define a col as operation on other cols
- density as mass/volume
- SQL roles
- + -
R - Danese Cooper
- all the committers are tenured professors
- statistical language
- data munging
- 2000 packages
- "applying logic to data"
- + -
osgeo foundation- Brian
- open source mapping
- osgeo.org
- by and for sw developers
- many projects
- + -
Fedora - Karsten Wade
- four foundations
- freedom
- friends
- features
- first - innovation
- fedora is "for" its contributors
- lower barriers to participation
- + -
PostgreSQL - Bruce Momjian
- 8.4 released in July
- many new features
- data analytics
- recursive queries
- windowing functions
- 84 new features
- lots of uptake this year
- lots of contributions
- many companies getting involved
- + -
Mozilla - Jervis
- FF 3.5 in June
- native video & audio
- private browsing
- faster
- native JSON support
- javascript threads
- downloadable fonts
- local & offline storage
- and more
- Thunderbird
- new dev team
- Jetpack
- reimplimented search
- v3.0 in next few mo.
- seamonkey
- the all-in-one suite
- reworked with latest libraries
- 2.0b1 coming soon
- Camino
- mac version
- growl
- yadda yadda
- fennec
- mobile browser
- maemo
- symbian
- + -
OSUnix
- opensolaris improvement
- lower thresholds for new devs
- gnu userland in /usr/bin
- focus on engineering instead of licensing
- big changes in build system
- removed many licensing issues
- amd & intel64 optimizations
- + -
MariaDB - Henrik Ingo
- fork of MySQl
- what is oracle going to do with mysql?
- should i migrate to postgres
- monty program
- 15 employees
- funding for 5 years
- home to mysql core devs
- + -
Linuxfund.org - Randall
- financial support to opensource community by funding projects
- 10 years old
- $750K disbursed
- credit cards provide lots of $
- matching donations as well
- recent
- + -
Drupal - Dries
- website building sw
- very active project
- community is important
- now working on v7 - usability improvements
- hired professional usability people
- + -
OpenOffice - Louis
- make it more user friendly
- More appealing to governments
- make it faster
- accessibility
- want to get away from "the office suite"
- move beyond the desktop
- + -
MongoDB- Kristina Chodorow
- designed for webapps
- schema free
- fast
- collections instead of tables
- objs in collections don't have to match each other
- JSON based
- indexing
- comes with a shell
- drivers for most common languages
- + -
Open standards - Zaheda of Bhorat
- everyone uses standards
- nobody works on them
- closed standards make for closed sw
- + -
Open Street Map
- free geo data
- reciprocal license
- more than just streets
- several european cities are done!
- univ of maryland is very complete, down to the paths & wheelchair ramps
- + -
BIRT
- Eclipse based reporting system
- Data visualization
- simplicity and power
- 2.5 just released
- + -
Gnome - Dave Neary
- 3.0 is coming!
- "we need another shell"
- zeitgeist
- desktop summit - gnome & kde
- + -
Easy as BIRT: introduction to reporting - Jason Weathersby - BIRT PMC
- Easy to use report designer
- don't have to be a coder to use it
- architecture
- report designer
- spits out xml report defn
- eclipse plugin /perspective
- engine
- reads defn, emits various formats
- comes with a servlet wrapper
- can also be embedded in eclipse
- chart engine & builder
- 13 main chart types
- plus subtypes
- demo
- GUI report builder
- lots of clicking
- but very powerful
- javascript expr's to control presentation
- javascript engine (rhino) on server to do data manipuation
- APIs for design and report
- tag libraries available
- + -
What Web App Design Can Learn From the Harpsichord - Elaine Wherry - meebo
- parallels betw. classical music & the internet
- 1600 years of western musical history in 5 minutes
- midaeval
- renaissance
- baroque
- lots of developments
- the harpsichord
- play many notes at once
- bach - fugues
- ornamentation
- hard to find the melody
- classical
- the symphony
- restraint
- melody
- simplicity
- phases
- emergence
- mass adoption
- experimentation
- refinement
- design mastery
- computer history
- medieval - 1940-1985
- renaissance - 1990-2005
- baroque
- now
- huge explosion of new tech
- mashups - lots of stuff on one page
- examples of baroque web designs
- collision of diff. design patterns on the web
- at this point it gets philosophical -- see her slides
- good usability is about predictability
- people end up expecting whatever the big guys do
- design discussions should happen across organizations
- Friday
- + -
Keynotes
- + -
Applying Open Source Principles to Federal Government
- + -
Fundamentalist Functional Languages - Eric Meyer - Microsoft
- functional lang. uses funcs as 1st class elements
- funcs have no side effects
- but IO has side effects
- fundamentalist functional languages are pointless
- much CS philosophy...
- monads are the solution
- things w/side effects return a different type
- I didn't exactly follow this...
- + -
The Rewilding - Karl Schroeder
- Relinquishing traditional ideas of control
- + -
the open web - Mark Surman - Mozilla
- "generativity" - hackability
- the web people love is built on open source
- tech. alone may not be enough to preserve the web
- [listened, instead of taking notes]
- explain "open" in a way that people understand
- focus on what matters
- encourage people to act
- get non-geeks to care about the open web
- first step:open your calendar, add one web day on 2009-09-26
- + -
JSON - Douglas Crockford
- The history of the JSON format
- + -
Database scalability - jonathan ellis
- throw money to increase performance
- latency
- throughput
- two kinds of operations
- reads
- caching layer
- needs cache invalidation
- implicit (timeout)
- explicit
- can get very complicated
- use prefixes to simplify
- replication
- master/slave
- multi-master
- conflict resolution is hard
- limits scaling
- synchronous
- slower
- more complex
- PGCluster does this -- still beta
- Oracle
- asynchronous
- with master/slave
- easiest
- what most open source projects do
- master failover is hard
- data loss if master fails
- writes
- partitioning/ sharding
- key-based
- PK of "root" table controls destination
- retains ref. integ.
- works with hierarchical data
- breaks down when there are "cycles" in the data
- vertical partitioning
- tables on separate nodes
- aggregate queries are easy]
- give up ref. integ., joins, etc.
- mostly used as part of a hybrid scheme
- directed partitioning
- central db that knows where data is
- Architecture is about handling failure
- growing is hard
- common problems
- ==>distributed databases
- once you move to partitioning, you give up much of the benefits of relational dbs
- at which point, things like bigtable, mongodb, etc. start to make sense
- bigtable
- how can we build a distributed db on top of GFS?
- single master
- consistent
- dynamo (amazon)
- how do we build a distributed hashtable for the data center?
- eventually consistent
- cassandra
- "first of the second generation"
- Closing keynote - Linux Today - Jim Zemlin