BarCamp Boston 6 Notes

I figured BarCamp would be the perfect place to try out Color, and so I played with it a few times Saturday.  It didn't work for me - the user interface is just too Vague. The first time I started it up, someone nearby had taken a photo of me which was kind-of neat, but I really couldn't figure out how to navigate the app.

I think this year the IRC channel for BCB can be declared dead.  It's too bad, I fondly remember the great backchannel conversations back at my first BarCamp (bcb3). This has partially moved to twitter, but there was much more conversation in IRC previously.

Talks I attended:

11:00 Scraping and Analyzing BarCamp Data (demo) (Josh Ain @joshain)

Josh presented NeedleBase again.  I saw his presentation of this last year as well.  Needlebase is a very cool application that uses machine learning to make scraping a web site about as easy as using a spreadsheet. Last year Josh used Olympics medal winners as his dataset (demo here), this year he made it more personal by using it to analyze BarCamp attendee data. The demo took less the 30 minutes, but was quite powerful. Josh collected the attendee names, companies, and tags from the "yearbook". He combined the yearbook data with the user's location from twitter. He then demonstrated doing some analysis of this data including: Finding most common first/last name (with counts), Finding most common location (again, with count), and mapping users by location. During this demo I noticed there was a second person signed-up from Agawam - never did find out who though.

One interesting observation: Someone mentioned using this to grab photos with metadata from Flickr. Even though it's not the intent of the design, this might be used to backup data from social networking sites that don't have an alternative backup method available.

11:40 How to teach 6 yr olds to program (also non-techie, artist)

I was conflicted here. There were 2 other talks I also wanted to go to: "How to run a company like Genghis Khan (Kevin Hale @wufoo)" and "Why you shouldn't send your kids to college (Yiefei Zhang)".  Too many cool topics too little time.  Ah, the perils of BarCamp  :)  The Khan talk must of been good, there were a lot of quotes from in on Twitter.

 

This talk was mostly a demonstration of Scratch.mit.edu. Scratch is a programming environment for kids that is very similar to Automator for MacOS.  You have pluggable blocks that you connect together to do things.  Once you get past the basic on-screen stuff you can easily add sensors, motors, etc to bring it to the physical world. It looks like a useful teaching tool, and I look forward to trying it out with my kids.

12:20 Engaging & Enchanting Your Community  --  Re-inventing education (Kevin Vogelsang)

I started out the 12:20 at the "Engaging & Enchanting" talk, but for some reason I didn't find it very Engaging, after a few minutes I wandered out. As both the Android and Arduino talks were overflowing I found myself in the common area listening to the lively Education discussion.

A lot of back and forth here about striking a balance between engaging students more by letting them pick the topics they want to learn about (including brining BarCamp's 2-feet rule to education), vs getting a classical educational base to teach them how to think. "Would anyone voluntarily take Freshman Comp?" An interesting mix of educators and techies. I'm sure all involved walked away with some food for thought.

Also during that conversation, @gregkuloweic gave a shout-out to #comments4kids. #comments4kids is a hashtag for educators to use to bring attention to blog posts from students to encourage the community at large to give the kids feedback.

Lunch

@JmacDotOrg: "Time for an experiment in self organizing non hierarchical pizza acquisition #bcb6 #postqueuesociety"

Group watching a kid playing Halo led to a conversation about the difference in perception between the player and the viewer (IE: why is it so difficult for an observer to keep track of what's going on when the player has no problem).

2:00 Life Hacking Round Table: How have you made your life better (@FastFedora)

A lot of interesting ideas here.  Mostly revolving around the idea of "That which is measured improves" IE: collecting data about your life so you can monitor your changes. Some tidbits:

  • Measuring time of last caffeine intake vs difficulty sleeping
  • Android apps for sleep cycle tracking: Sleep (anyone have a link for this one?), Electric Sleep
  • Android app Gentle Alarm tries to wake you when you're not in REM sleep.
  • Boomerang for Gmail or followup.cc both let you get emails resent to you later as a form of reminder.
  • Use a spreadsheet to track when you've done things you want to do daily or weekly.  Field is red until they're done, turns green when you do them. If it's a weekly task then doing it once will turn the whole week green.
  • Keeping a health log of issues so that way you can remember when the doctor asks, on your next visit, if you've had any issues.
  • Some applications use the computer microphone as a presence detection mechanism - supposedly by listening for vibrations given off by the body?
  • Track energy/concentration level through the day regularly. Graph trends. Schedule tasks the require concentration during your best time of the day.

2:40 Crowdsourcing Transparency & Democracy (Kamal Jain @kamaljain)

Kamal Jain (former candidate for State Auditor) discusses his thoughts on fighting corruption by increasing government transparency.

3:20 How to increase your intelligence and achieve something big (Kevin Vogelsang @VogelLabs)

Kevin stresses developing a community (like his Lean startups group at vogel-labs.com) to help you achieve your goals. 

4:00 Agile Development War Stories What's it Like being Agile (Chris Pointon)

Roundtable discussion about agile development practices.  My company doesn't practice agile, and I'm not sure how we would when a lot of our projects are small (<40 hours) contracts. However, still some interesting discussion here as a lot of the talk about "story" development would apply to our specing/quoting/estimating processes.

  • Agile rule is don't do design during story phase, consensus in the room is that this should be treated as a suggestion not a rule.  Do JIT design.  If some design is needed at story phase that's fine, but don't do any more then you need to
  • Story should be made up of testable chunks.

4:40 The Art of BBQ (@cheryldraper)

Cheryl gave a nice introductory talk about BBQ. Both from the side of just for fun, as well as entering competitions. I like food, so it was fun to listen to.  I've never done any real BBQ though, so I really didn't have anything to contribute.

Unfortunately no samples :), but did make me drool.

5:20 Thinking about doing a startup? - Finding cofounders & ideas discussion. (@JayNeely)

Group discussion about startups. Finding a co-founder. Do you need a co-founder or can you go it alone? Pros/cons of subcontracting critical business areas that you don't know much about. etc.  I'm not _exactly_ working for a startup right now, but it feels like a startup so I found it interesting getting some more business perspective.

This book was highly recommended: The Four Steps to the Epiphany

 

Dinner/after party/end of Saturday.

Thanks @barcamptour !

 

Sunday 

 OH: Awesome indian recipes at http://showmethecurry.com that always come out tasting excellent.

10:00 Using Games to Make a Better World

Somehow I was hoping this talk was going to be about using game theory to motivate people to improve the world or something. The presentation actually was about Play2thefuture, a game where the players come up with, and rate ideas to solve real world problems. The presentation was decent, I'm just skeptical that it will be a compelling enough game.

10:40 Classical Economics of Open Source (Beth Andres-Beck @bethcodes)

Interesting discussion of the microeconomics of software and how Open Source disrupts the current monopolistic norm.

Slides: http://portal.sliderocket.com/AQEDC/OpenSourceEconomics

This book was mentioned: The Great Stagnation: How America Ate All The Low-Hanging Fruit of Modern History,Got Sick, and Will (Eventually) Feel Better

11:20 Cooking - Open Discussion (Adam Moskowitz)

Just a group chat about cooking and food. Ended up mostly being a conversation about favorite ingredients and where to get them.  Some discussion of some different ethnic markets, CSAs, and co-ops. Some talk about different vegetarian choices. Adam gave a strong suggestion to make your own vegetable stock as it's easier then mean stocks and can usually be used as a substitute.

  • Chocolate brownies with cayenne peppers or chocolate cayenne pepper ice cream both sound excellent.
  • Saffron about as expensive, ounce per ounce, as cocaine. It's just too difficult to grow, collect, and process. As a result @andshewas23 suggested cocaine risotto! :)

12:00 Interviewing Well As A Coder (Beth Andres-Beck @bethcodes)

I went to this talk as an interviewer trying to get some insight into what interviewing techniques work.  There was a lot of discussion about interviews requiring candidates to solve problems on a white board. One instance of an interview including a pair-programming session.

Little programming exercises that you could use to practice white board programming: http://codekata.pragprog.com/

12:30 Can the internet make you healthier? (Jason Jacobs, RunKeeper)

Unfortunately, after yesterdays lifehacking talk this mostly felt like a re-hash.  Most of the talk was spent talking about the value of collecting data.  However, I do want to check out Fitbit and Zeo, both products were mentioned for sleep cycle tracking.

2:00 Improv Games

This is the second time I've done this (1st was last year at BarCamp).  It is a fun way to try and force myself out of my shell a bit.  I think I did well until it came to the games where we had to make up questions or stories where I mostly failed.  I need to find a way to practice this more.  This session would probably be better done earlier in the conference to help give people the confidence to host a talk.

2:40 Vagrant Veewee:Cloud on the Desktop (Dan Rowe)

 I originally wasn't going to go to this talk.  The title didn't draw me in, but in walking by the slides seemed interesting enough.  I stopped in and listened to Dan talk about how Vagrant can be used to quickly roll-out VirtualBox images for development.  This has me thinking about better ways to manage our Windows development VMs.  I don't think that Vagrant is the solution I'm looking for, but it might point me in the right direction.

3:20 Demo your STUFF

Finished up by watching a few cool demos.

Mary Fitzgerald's tweets sum them up well:

FIN

If anyone has any corrections/additions (more links?) please send me feedback.  Being that this is my second blog post I'm sure there's lots I can improve on. Thanks

Filed under  //   #bcb6   BarCamp   BarCampBoston   LifeHack   Startups  

Comments [0]

Google Contacts and Calendar backup solution

For awhile now I've been using Google as the primary store of my contacts and calendar data.  It automatically syncs with my Android phone, with Thunderbird which I usually use for email, as well as with the Exchange calendar at work so that I can share calendar info with my coworkers.

All of this works quite well, except when there's a problem.  I upgraded my phone, and in the process it managed to sync a lot of bad contact data up to Google, as well as deleted a lot of contacts.  I was able to recover from this with my backups of my Thunderbird address book, but not easily.

Solution:

I've created a git repository that holds backups of my contacts and calendar.  This way I can go back and restore data from a previous date.

Screenshot_2011-02-19_005

Next, I had to find the data.  For the calendars Google makes it easy. Just download the "private" ical feed in the calendar's settings. 
Screenshot_2011-02-19_002

This gave me the beginnings of my backup script:

#!/bin/sh
cd `dirname "$0"`
wget -qO- https://www.google.com/calendar/ical/BLAHBLAH/basic.ics | grep -v "^DTSTAMP:" > BrianJohnson.ics
git add BrianJohnson.ics
git commit -m 'daily backup'

Note: I'm stripping DTSTAMP from the ical file.  This is a "required" field according to the ical standard, and so this is probably not the best thing. The reason I did it was that it was changing with every download of the file, and I wanted to have clean diffs between versions.  I did test re-uploading one of these backups and Google accepted it, so it should be sufficient. If it does cause problems in the future I can add a dummy DTSTAMP field based on the file date/time back in. You may decide you'd rather have valid files then clean diffs, if so then use "wget -qO Calendar.ics https://www.google.com/calendar/ical/BLAHBLAH/basic.ics" instead.

So, I did that for each calendar I wanted to backup, and that works quite well.  Next problem, contacts.

Contacts can easily be exported as a .csv manually by clicking on the export link on the contacts page, but I wanted something daily and automated so I started looking at Google's gdata APIs.  Eventually I found that someone already wrote the script I'm looking for http://www.neomantic.com/software/ruby-google-contacts/.

So I downloaded "downloadGoogleContacts.rb" and added it to my git repo. It's pretty straightforward to use with a few commandline parameters. However, again I was worried about what the diffs will look like I wanted to reformat the xml, so I'm taking the output of downloadGoogleContacts.rb and passing it to xmllint before commiting it.

My final script (run nightly from cron) looks like:

#!/bin/sh

cd `dirname "$0"`

wget -qO- https://www.google.com/calendar/ical/BLAHBLAH/basic.ics | grep -v "^DTSTAMP:" > BrianJohnson.ics
git add BrianJohnson.ics

wget -qO- https://www.google.com/calendar/ical/BLAHBLAH/basic.ics | grep -v "^DTSTAMP:" > EventsAndBirthdays.ics
git add EventsAndBirthdays.ics

ruby downloadGoogleContacts.rb -e example@gmail.com -p password -t ~/gdata-token -o temp-contacts.atom -m 10000
xmllint --format  temp-contacts.atom  > Contacts.atom
rm temp-contacts.atom
git add Contacts.atom

git commit -m 'daily backup'

There is still a missing step here.  I've got the backups part taken care of, and restores for the calendars are straightforward enough, but I still need to test restoring contacts.  More to come on that.

Filed under  //   backup   calendar   contacts   gdata   google   ical  

Comments [0]