All +
All -
oscon-2011
- Wednesday
- + -
Keynotes
- Jono Bacon- Ubuntu
- Ubuntu community manager
- The art of Community
- informed trend spotting
- a renaissance in community management
- things become repeatable
- Many people work as professional community managers
- Steve Holden - Chairman, Python Software Foundation
- Frank Willison Memorial Award
- Georg Brandl
- Microsoft
- blur lines
- grey areas
- Lots of open source work at MS
- Nobody actually uses all open source or all commercial sw
- Mixed models
- open core
- open source OS with closed code on top
- open surface
- closed or obscured core
- open surface
- apis
- protocols
- standards
- source
- eg. cloud platforms
- Ariel Waldman
- Hacking Space Exploration
- Open science
- Make space exploration accessiblle to anyone
- galaxyzoo.org
- data from sdss.org
- help classify galaxies
- you get your name on the paper
- spacehack.org
- open collaboration
- disruptive accessibility
- active contribution
- open != accessible
- much available scientific data
- but it's hard to find & understand
- Science Hack Day
- working to make them happen all over
- + -
Mobile dev with open tech
- Max Firtman, Argentina
- mobilexweb.com
- Mobile devvices are our flying cars
- mobile devicess are personal
- 70% of humans have a mobile
- make us focus
- can read our context
- inspires feelings
- mobile is a minefield
- many platforms
- many techs
- native vs web
- native code vs javascript
- browser-based or app store
- defines "mobile web" as using html5/js to create apps of either kind
- mobile dev platforms
- Java
- j2me
- based on java 1.3
- with some modern APIs
- on billions of non-smart-phones
- blackberry
- also j2me based
- with some modern APIs
- Android
- Cocos2d
- game framework
- originally for iOS
- ported to html5 & android
- 2 of the top 10 iOS games
- Adobe flex
- open source framework
- web, desktop & mobile
- SDKs available for android,iOS & BB Playbook
- databases
- SQLite
- available on pretty much every mobile platform
- advantages of html/js
- well known tech
- well know apis, tools, IDEs etc
- short time to market
- works in app stores
- standards are slowly appearing
- challenges
- cross platform / porting has warts
- 10% of each app needs porting
- debugging is hard
- performance
- platforms are getting faster...
- not a problem for many apps
- standards
- Projects
- wurfl
- open source device description repository
- device => capability mapping
- 5000 devices
- 500 capabiities
- mostly for server usage
- apis for many langs
- html5
- Not really a defined term
- now a set of w3c standards
- also an umbrella term
- markup & apis
- multimedia
- offline storage
- database
- geolocation
- animations, transitions & effects
- technically part of css3
- but under the umbrela
- accelerometer
- drawing
- WAC
- widget sdk
- cross platform
- js api set
- jQuery mobile
- cross-platform UI framework for touch apps
- non-intrusive html5 code
- open source
- lightweight
- multiplatform with progressive enhancement
- customizable
- looks kinda iOS-ish
- webworks
- open source html5 framework for blackberry platform
- BB apis
- PhoneGap
- not a UI framework
- open source
- iOs, android, bb, symbian, webos, winmo, bada
- create "native" apps with web tech
- apis for accessing device services
- Need to compile/build for each platform
- every device has a different rendering engine
- + -
PhoneGap
- doesn't provide a UI toolkit
- jQuery
- Sencha touch
- jQTouch
- moble Dojo
- Wink
- best practices
- use a single html page
- divs with show/hide
- xhr
- etc
- use an obfuscator
- if you're into that sort of thing
- Needs offline ability
- Use persistent storage
- using phonegap
- debugging
- console.log is your friend
- or use weinre...
- plugins
- bunch of them on github
- There's a crypto plugin...
- There's an android generalized intent-calling plugin
- joe bowser re: crypto...
- + -
Building Applications in a Multi-Device World
- Yehuda Katz, Strobe Inc.
- Not just cross-platform
- Not "how to write the same app for multiple platforms"
- don't think of multiple platforms merely as a developer problem
- How to write apps that work across multiple computers owned by the same user
- Not "phone app" vs "desktop app"
- seamless transition between devices
- A given device is just a portal into the app
- eg. facebook
- netflix
- kindle
- users want a seamless experience
- "of course I have access to it"
- problems
- Feature synchronization
- same feature on diff. platforms
- general velocity
- solution
- shared code
- architecture
- mvc
- apple has a good story for this
- technology
- the web stack is the only thing that's on *all* devices
- concerns
- latency
- good latency for a browser is 50ms
- but for a phone it's more like 1s
- Offline or bad connection
- not "you're on a plane" but "you walked into the parking garage"
- don't rely on the server
- move logic & state to the client
- limited storage (5-10mb) in mobile browser storage
- different form factors
- 30" monitor to 3" iPhone
- desk vs. car vs. walking around
- Same data
- different user expectations
- server
- simple interface betw. server & client
- Predictable & consistent
- don't require special case code here & there
- simple error reporting
- single level of url nesting
- use named keys
- metadata, not just IDs
- {conferences: {id:1, name: "oscon"}}
- so the consumer knows what's in the package
- use http status codes
- KISS
- focus on data
- data server
- not presentation server
- an api driven approach may help security
- no cookies, no csrf
- use an api token instead
- architecture
- like MVC, but no view/template
- benefits
- low latency thru small payloads
- handles offline via caching
- view agnostic data
- logic moving from server to client
- MVC on the client
- lightweight framework
- you end up reinventing the wheel
- you have to buld a framework
- mvc is supposed to give you conceptual separation
- layers keep early code from being influenced by later code
- none of this is a new problem
- + -
r0ml
- Brilliant as always
- You had to be there
- You should have been there...
- + -
Debugging Mobile Apps with weinre
- Patrick Mueller, IBM
- http://muellerware.org/papers
- WEb INspector REmote
- same UI as chrome's dev tool
- mobile browser or webview (phonegap)
- how does it work?
- access a weinre server
- add the weinre script to your app
- run the app on your device
- access the weinre UI from your desktop
- features
- dom/css inspector
- with hover highlighting
- more or less realtime in both directions
- localstorage / websql inspector
- event timeline
- not many events supported
- but you can add your own
- console
- run arbitrary js on the device
- access to full context of the page
- Some caveats
- not supported
- js debugging
- network & resource diagnostics
- No js APIs to debug js...
- non-webkit target browsers
- You need a server
- there's a public one at debug.phonegap.com
- need a UID
- you can collaboratively debug with a shared UID
- an "emergent" feature
- not really tested...
- No security beyond obfuscation
- run your own
- download a jar file
- run it on your machine
- can be difficult to get your emulator to connect to the right IP
- ie. "localhost" isn't what you want
- the future
- is dim
- remote web inspector now exists in webkit
- but it's not in android's plans
- and not clear if it's in apple's plans
- + -
Android webkit deveopment
- Joe Bowser
- There are many warts & bugs
- browser is different on every phone
- you'll get bugs that only happen on a specific phone/version
- android does use webkit
- webkit is only a rendering engine
- but webkit can't create native UI elements
- webkit renders, pushes to java layer
- webkit renders inside webview
- webview is a very complex java class
- difficult to see how the two interact
- serious issues
- 2.1+
- 2.3
- no addJavascriptInterface()
- 3.0+
- can't handle # & ? in some URLs
- manufacturer differences
- no console.log on HTC
- copy/paste different
- how to deal with this
- test on mulltiple phone
- emuator
- there are images from many manufacturers
- so you can test on emulated phones
- many avail. thru android manager
- there may be some diffs betw. emulator & real devices
- performance is very different
- weinre
- avoid css3 transforms
- Thursday
- + -
Keynotes
- + -
Jim Zemlin, Linux Foundation
- big changes
- linus used to joke about "world domination"
- apple is bigger than MS
- linux runs 72% of world's equity trading systems
- 96% of supercomputers
- android is the linux "desktop" that everyone was predicting
- Toyota just joined the linux foundation
- Microsoft is being nice
- shows the 20th birthday video they sennt
- Freedom is still important
- + -
Fred Trotter, cautious patient foundation
- helping patients avoid medical error
- we will lose the arms race with bacteria
- nationwide health information network
- what sort of new things will come out of this
- we need geeks working on this technology
- + -
eri gentry, biocurious
- + -
John graham-cumming
- keynote via video
- alan turing
- persecuted for his homosexuality
- jgc petitioned the UK govt to apologize for turings treatment
- tie in to the flap over the harrassment code of conduct
- + -
Gabe Zicherman
- Open source & gamification
- what is open source?
- What does the end user think about open source?
- cheaper?
- dislike of closed source?
- open source isn't a brand/concept
- like others:
- fair trade
- organic
- union made
- Engagement
- recency
- frequency
- and some others...
- Need get users engaged in the concept of open source
- Motivation
- gamification
- using game concepts & mechanisms
- examples
- speed camera lottery
- people who drive by the camera at the speed limit
- are entered into a lottery
- to win a portion of the take from speeders' tickets
- Hybrid cars have what amounts to a game in the eco-meter
- ford has a plant that thrives or withers
- nissan leaf has facebook integration
- projects
- rewards
- SAPS
- status
- access
- power
- stuff
- in order of most engaging to least engaging
- and least to most expensive
- interesting, huh?
- onboarding
- the first minute they use your software is critical in engagement
- games do this well
- open source sw doesn't
- example from Frontierville
- Remember the end user
- + -
Open Source Awards
- Fabrice Bellard
- QEMU
- pc emulator in JS
- started ffmpeg
- Karen Sandler
- SFLC
- new gnome foundation director
- Keith Packard
- Ryan Dahl
- Konsuke Kawaguchi
- + -
Big Data Small Problems
- timan glade, cloudant.com
- nosqlsummer.org
- nosqltapes.org
- not just about data size
- not just about technology
- what ails us?
- digital disconnect
- can't deal with it if you can't comprehend it
- dimensional overload
- can't track all the stuff in your brain
- infobesity
- storing more data than you need
- don't know what's worth keeping, so you keep it al
- determinism disorder
- you think you can learn more from the data than you realy can
- the truth is in there
- yearning for meaning
- revolution delusion
- the next increment will get us to the promised land
- advertising is in an "uncanny valley" where they try to know users, but just miss
- we're in a bubble
- black box
- distributed systems are becoming too complex
- cargo cults
- scale-oil salesmen
- this will solve all your problems
- How to
- mix of reading and practical testing
- only use nosql (or any new tech) unless you have to
- distribution model / data model / disk structure
- examine these to figure out what fits
- avoid catchy phrases
- who do you trust?
- there is nothing wrong with relational systems
- they're usually the right choice
- you can always switch later
- nosql / newsql
- what is newsql
- alternate SQL & ACID db ideas
- drizzle
- clustrix
- voltdb
- etc.
- partition tolerance?
- it-friendly
- like what you know
- nosql
- mongo
- couchdb
- riak
- cassandra
- neo4j
- redis
- hadoop
- nosql trends
- 80/20
- 80
- mongo, couchdb
- general purpose
- 20
- cassandra, voldemort
- specific problems
- distributed
- hadoop & redis don't fit either
- storage separation
- plugable storage engines
- eg hadoop backed with cassandra
- leveldb in riak
- ease of access
- nosql is dev friendly & ops friendly, but not IT friendly
- + -
The art of cat herding: how to manage geeks
- Sheeri Cabral, @sheeri
- management means
- team steward
- advocate for the team
- so others understand how good/useful your team is
- provide optimal working environment
- get your team to be as awesome as they can be
- mgmt is a way of scaling yourself
- regular maintenance window
- if you have to play politics...
- show them your hands
- this is what I want
- this is why I want it
- don't play games
- Get rid of roadblocks
- happy employees
- feel listened to
- grok things that are not 100% tech
- will stand by you
- how do you motivate employees?
- money/bonus/time off?
- hard, because they turn into the status quo
- limited supply
- praise / pride
- prioritize a pet project for them
- effective managers...
- delegate
- and don't micromanage
- or breathe down the employee's neck
- help employees succeed
- help employees not fail
- keep their promises
- effective employees...
- take pride in their work
- care about what they do
- care about doing a good job
- trust your employees
- assume they're professionals
- assume they know their job
- even if you know better...
- treat them like a professional
- and they'll feel bad for not being one
- as opposed to treating them like a child
- which makes them act like a child
- motivate by
- explain consequences of actions
- When X then Y
- when you don't show up to meetings
- we don't get your input and you're unhappy about the way things go
- the team solves team problems
- understanding why gets buy-in
- the body order issue
- or other really hard problems
- Handling complaints
- what is the impact?
- is it really a problem in need of a solution?
- consider causes
- ask complainer to consider them
- know your resources
- get specific information
- do not commit to specific actions
- gather data & decide
- Tallking to the employee
- deliver privately
- deliver directly
- offer resources
- discuss followup
- Effective meetings
- have an agenda
- nobody will read it
- stick to it anyways
- stick to the agenda
- listen to people
- Working Managers
- do the same work, just a bit less
- lead by example
- "I'll do it" is not effective mentoring
- Documentation
- have one place
- even if it's full of links to other places
- ask "is it in the docs?"
- say "I thought that was doc'd, could you not find it?"
- Checklists
- Make them
- 2nd set of eyes
- for competent co-workers
- share credit, take blame
- let go of the unimportant stuff, but don't let it build up
- encourage team management
- team mtg can happen in your abseence
- status of projects
- docs
- let them manage themselves
- effective micromanagement
- use a ticketing system
- and read it instead of pestering people
- + -
Higher Order Javascript
- Piers Cawley
- A "you had to be there" talk
- higher order programming is language agnostic
- "As arrogant fucks go, lisp people make rubyists look humble"
- basically refactoring
- functional refactoring
- functions can take functions as argument
- and return functions as results
- it's just programming
- "if the end users have to sacrifice goats to elder gods, then you've done something wrong"
- regrettably used coffeescript for examples
- + -
Legal basics for developers
- aaron williamson, karen m sandler, SFLC
- do i need to put copyright notices on my code to get copyright
- no
- you get it by creating the work
- there are good reasons to include them
- what's the diff. betw. free software & open source?
- no legal distinction
- the terms are (legally) innacurate
- "free" is (pretty much) a subset of "open"
- If the source header says it's open source, can I use it?
- depends what the header actually says
- incomplete license
- not well specified
- one file is not the whole project
- what about snippets from websites?
- does the site have a policy?
- Check site TOS
- If there's nothing, it's all rights reserved
- so you can ask permission
- "too short to be copyrightable" is not a good test
- copyright laws are well harmonized across all countries
- why are there so many free software licenses?
- lawyers like to fiddle
- not invented here syndrome
- often w/o knowing the history or case law
- don't write another one!
- there's almost certainly one tht would work for you
- Is copyright "defend it or lose it"
- No
- Not like trademarks
- though ignoring infrigement might give them a defense
- so send them a letter
- if you've got time & energy
- too complicated, can't I just put it in the public domain
- the concept of "public domain" is fraught
- technically it means "stuff whose copyright has expired"
- There isn't really a law about "putting something in the public domain"
- even more murky in other countries
- Most countries have "moral right"
- You can use creative-commons license zero
- but it doesn't have a patent mumble
- someone is using my gpl'd sw w/o providing source. what should I do?
- Make sure it's really a violation
- talk to the company
- don't jump to a lawsuit
- there are technicalities
- gpl v2 doesn't actually say you have to publish the sw
- just that you have to make it available to people recieving the sw
- so it may be hard to find
- "derivative work" is a fuzzy concept
- can i sue them
- you need to register your copyright
- but you don't have to register beforehand
- though proving damages is really hard
- + -
android app inventor
- Lots of live demos
- very kid-friendly
- visual programming
- talking about how app inventor is good as a teaching tool
- event based
- doesn't generate java code
- no syntax errors
- drag-n-drop
- only some things plug into others
- other uses
- can be useful for prototyping
- "situated apps"
- for one person or a small group
- + -
how not to design like a developer
- Kari mumble, mozilla
- open source projects aren't generally friendly to designers
- no workflow for non-developer contributors
- Friday
- + -
Keynotes
- Brian Fitzpatrick, Google
- Data Liberation Front
- Group at google working to make sure you can export your data
- + -
Karen Sandler, Gnome foundation
- A cyborg lawyer running proprietary software
- has an enlarged heart
- and an implated defibrilator
- which runs proprietary software
- manufacturers weren't set up to show her the source
- the FDA doesn't review source code of medical devices
- doesn't have standards for code
- patients are preempted from suing
- this is wrong
- we use software for everything in our lives
- + -
netflix webkit UI
- provide immediate feedback on user input
- split up long running processes
- prefetching
- wait until the user "settles" before doing expensive operations
- settling is about 200 ms or so
- eg. during fast scrolling
- wait until scrolling stops to paint box art
- avoid dom manipulations during animations
- make sure it looks smooth
- tune to find the sweet spot
- example: scrolling rows
- naive
- insert new DOM nodes as you scroll
- parent node grows as you scroll
- perf degrades as you scroll
- optimized
- when nodes go off the top of the viewport
- they're "recycled" and used at the bottom
- cpu vs gpu
- css gradients are computed on the cpu
- images are blitted via the gpu
- background images are way faster
- limit paint/render events
- chrome developer timeline will show them
- accelerated compositing
- really helps css animations
- memory
- avoid unbounded growth
- pools & caches of DOM objects
- minimize throwaway objects
- use closures sparingly & only where necessary
- they're experimenting with dynamically loading & unloading sections of code