Having never been to a Barcamp before, I knew the overall structure of the conference, but was curious if I would actually like it. Truth be told, I found it full of content, without a lot of fluff, even for the talks I sat in on where I had no prior knowledge. My notes follow, thanks to the great OSX app Notational Velocity hooked up to Simplenote. My overall thoughts in italic after each post.:
how to give a presentation people love and learn from
break presentation into 7-10 minute chunks
then transition 7 minutes into the talk to another topic, to keep people’s attention
insert emotion, a story. rather than just X happened.
(For a talk to be this meta, a presentation about giving presentations, I was not hooked. There weren’t any real nuggets of information here that made me sit up and say “Wow, I haven’t been doing this in the presentation I make.”)
how to run a startup like genghis khan, by @wufoo
- work like a nomad
- build an audience first. protect your audience. make the audience part of the show.
- make developers handle support requests. once devs get same question two or three times, they go in and fix the code so they dont get the question again.
(Presenter absolutely killed it. Engaging, fast talking (without mumbling), great slides that presented the information in clear and sometimes humorous ways. Made me think more about engaging the people I am trying to convince to my way of thinking)
android developer: war stories and antipatterns
yoni, lead android dev at scavngr
- dont code splashscreens. more of an iOS thing. if you have to preload data, show a progress bar in the app already open
- dont force orientation (landscape/portrait). support both
- dont assume their screen size. use relative layouts
(I went into this talk curious and with no prior experience or knowledge of writing an Android app. I don’t even own an Android phone. This was much more a round table, with those devs in the room very willing to share their experiences and war stories. I found they really had good experiential tips, rather than “This is the best practice” and moving on.)
ask a plasma physics grad student anything
(I must say this was completely over my head. The student at the front of the room, from MIT’s Plasma Science and Fusion Center, seemed to know his stuff and was genuienly interested in challenging the audience. What blew me away was the knowledge of the audience, asking very pointed questions with what sounded like real science to back it up.)
building fast websites, making users happy (@jonathanklein)
- google injected 400ms delay into search page, dropped 0.76% searches/users over time.
- faster sites rank better in google. site speed is part of search ranking.
- what’s load time? server side generation time, client side render time. 80-90% of load time takes place on the client.
- best practices:
- reduce http requests: combine css/js, use image sprites (one download and cut up into multiple images).
- minify css/jss: strip comments out and white space. (yuy, java library). will rename variables into shortest name possible
- gzip all text: html, css, js
- for graphics, use png8 (restricts you to 256 different colors in the image)
- jpegs can be saved at 75% quality
- image compressor: smush.it (from yahoo dev network), lossless compression.
- measuring performance
- google webmaster tools, http://www.webpagetest.org
- yotta, firebug, yslow, page speed, dynatrace ajax edition
(For an ops guy, I was really interested in this talk. Jonathan blew through his material at break-neck speed, but covered the topics and answered questions without feeling like the talk was broken up. Some really good information through his experiences, and things I would like to dig into more myself.)
nosql round table
- some are relational, others are key value
- redis, redis + resque
- why nosql over mysql? no schema, lack of migrations from version to version. being able to store different things. replication (single threaded)
- keeping mysql in sync with nosql layer about: broadcast updates from mysql over rapidmq(?). nosql service grabs update from mysql.
- solutions that they discarded:
- cassandra: v0.6, latency spikes between nodes. node would get flagged as awol. cascading failure because data gets rebalanced. use “hinted handoff” to prefer the direction of the failover. supposedly better in v0.7. documentation is messy.
- in the cloud or in a dc? mostly EC2. local storage with evs slave.
- search via solr
(Another one where I went in having nothing but curiosity, since noSQL is one of the popular buzz words these days. Very engaged audience who shared war stories, both good and bad, implementing noSQL solutions in their workplaces. Left me with a stalk of websites to dig into.)
agile development war stories
- problems it tries to solve: waste. business approach.
- more collab between business and engineering. dont just throw the ‘stories’ from biz over the wall.
- focus on testable behavior. how can we test each iteration? should be part of the original story.
- be smaller, quicker, more iterative. ex// dont go off for 18 months planning your solution. business might change underneath you
- people do “agile but..” and tend to modify the methodology.
- burn down?
- should tasks stay <1 day? sounds a bit unreasonable, since “speeding up the server by 20%” is unable to be done in one day. task size should have a reason.
- average sprint time: 2 weeks
- do a code review before the planning meeting. so estimations on a piece of work can be completed in the meeting. ex// dont trace the code for the 1st time in a meeting.
- software to track scrums/managing stories: soft2, scrum ninja, team foundations studio (windows), white boards, index cards on a wall, ibm rational, pivotal tracker (good for distributed teams), mingle from softworks.
(Another highly-concentrated buzzword round table where I was more curious than anything. Some real good information about what works and what doesn’t when it comes to managing time and projects. Lots to read up on here, and see if I can apply it to my daily work life.)