Archives for category: Development

Team Delicious Cake in action
TL;DNR: Sign up now for the TimesOpen Hack Day at The New York Times on Nov. 16. Why? Because talking is good; making is better. It’ll be fun. You’ll learn things. And meet interesting people.

My very first hackathon was in 2009, when Yahoo rode into town with what is still the splashiest of all hack events I’ve ever been to, Open Hack Day NYC.

There must have been at least 500 people in attendance. I decided to go because I wanted to meet other people and try to make something. Yahoo had brought a bunch of their YUI and Brickhouse incubator engineers, whose job it was to help attendees during the hackathon. Any code-related question was OK, and the organizers and engineers themselves would remind you they were around to help.

At first, I was nervous about asking for assistance. After all, the people surrounding me — mostly men — appeared far more confident about their code skills than I felt about mine. If I asked for help, wasn’t I just perpetuating the stereotype that “girls can’t code”?

Eventually, I said “Screw it.” I was a code novice. And I was going to get better by learning from people who were right there offering to explain things to me. Those who helped me weren’t just nice about it, they taught me more about SQL and PHP (at the time, my hack language of choice).

The photo above shows part of the 4-person team who called themselves Del.icio.us Cake. They tied for Best Food/Hardware Hack. One of the team members was data scientist Hilary Mason. When she talks about that hack day — and she still does — she talks about it being really fun.

Participating in a hackathon is often about winning, but winning isn’t everything. Take advantage of the opportunity to push yourself, enjoy yourself, learn from others and meet people. Join me at the TimesOpen Hack Day.

The future belongs to the makers. I don’t know who said it first, but the more time I spend looking at the world out there, the more I believe this to be true. We can dream great dreams, but only those concepts made concrete can be tried, tested and built upon.

I think that’s why people like hackathons. This year, I’m cohosting Hacks/Hackers Hacking @ ONA11, a hack day in Boston on Sept. 22, the day before the start of the Online News Association conference. You’re invited to join 100 like-minded makers of all stripes by signing up now. It’s $20 — a small price to pay for what you’ll get out of it.

September is a long way off, which means there’s lots of time for pre-hackathon planning and collaboration. Whether or not you’ve participated in a hackathon before (and if you haven’t, here’s why you should), you can help make the period from the signup announcement up to day of event a productive and collaborative one.

Post your suggestions for bringing any hackathon community together online at the Hackathon Runway EtherPad instance, or feel free to leave your thoughts in comments below.

Things I’ve been thinking about:

  • What’s the most effective way to collaborate?
  • How can non-coders play an active role?
  • What tools (software, SDKs, repos, APIs, apps) have you used?
  • How can the hacks made be incorporated into everyday use?

Your ideas and feedback are always appreciated.

By the way, I’m here at the MIT Knight Civic Media Conference, one of the most exciting annual gatherings for people interested in gathering, organizing and disseminating public information. It’s the highlight of the Knight News Challenge, and showcases some of the most motivated and dedicated thinkers and doers in the field. Sixteen proposals were funded this year, and they’re the most wide-ranging and potentially impactful yet.

If you’re here, say hi and be sure to come to my 2:30 p.m. unconference session today on building pre-hackathon community. I’ll be there with Matt Carroll of the Boston Globe and Phillip Smith of the Mozilla Foundation.

Ruby logoThese are quick notes I’m sharing with the NYC Ruby Women’s group, which I organize. One of my developer friends, Peter Harkins, recommended I share them with the world at large, so here they are.

More about Ruby and the NYC Ruby Women’s group in a bit.

SOME HELPFUL LINKS

  • rubygems.org – The official Ruby Gem repository
  • ruby-toolbox.com/ – Shows the most popular Ruby gems (how many people who’ve looked at it, how many have downloaded it, how many have forked it)
  • railsplugins.org/ – Compatibility tracking of plugins and gems (what works with various version of Ruby and Rails 3)

SOME HELPFUL RUBY COMMANDS

  • gem update --system – updates all gems on in your system
  • gem environment gemdir – displays the system directory for gems
  • gem help – basic help directory
  • gem env – shows the Ruby gem environment
  • gem list – finds gems. You can include letters afterward as wildcards.
  • gem cleanup – deletes old gem versions. Use with caution — you don’t want to unwittingly break anything that depends on an older gem
  • rake -T – Rake helpfile

So let’s get started. These instructions assume you’re running Mac OS with Ruby version 1.8.7 installed. These tips should also work for Ruby 1.8.6, but if they don’t, leave a comment — and a fix if you find one.

INSTALL THESE GEMS (or check if you have them already)
(You may need/want to add “sudo” [no quotes] in front of each of these commands to install)

gem install rubygems-update
gem install thoughtbot-shoulda
– Read Me at: http://github.com/thoughtbot/shoulda
gem install rspec-rails
gem install jeweler
- Read Me at: http://github.com/technicalpickles/jeweler

ESTABLISH VERSION CONTROL
Download Git from the official repository.

CONFIGURE YOUR LOCAL SYSTEM TO TALK TO GITHUB (once you’ve established an account at github.com)

git config --global user.name "Real Name"
git config --global user.email "youremail@foo.com"
git config --global github.user username

SET UP YOUR PUBLIC KEY
(See the help pages for Mac, Windows, or Linux if you run into trouble or need additional details.)

Check if you have a key

cat ~/.ssh/id_rsa.pub

If you do have a key:

$ ls
config id_rsa id_rsa.pub known_hosts
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*

If you don’t have a key, then create one:

ssh-keygen -t rsa -C "youremail@foo.com"

CREATE A GEM ON YOUR LOCAL SYSTEM USING JEWELER (I’m calling my test gem “dabeers”.)

jeweler dabeers --rspec --rdoc --create-repo

If you get a FileUtils error (this may happen if you’re running Ruby 1.8.6), try:

mate /Library/Ruby/Gems/1.8/gems/jeweler-1.4.0/
require 'FileUtils' in generator.rb (if that's the error)
jeweler dabeers --rspec --rdoc --create-repo

VERSION YOUR GEM

rake version:write

Since it’s our first rake, the version is set to 0.0.0. If you wanted something different for your initial version, write: rake version BUILD=alpha1 [or change “alpha1” a word or number without quotes]

UPDATE VERSIONS AS YOU UPDATE YOUR GEM
You’ve got three choices. They should be self-explanatory, but if they aren’t ask a question in comments.

rake version:bump:major
rake version:bump:minor
rake version:bump:patch

COMMIT TO GITHUB

rake github:release

COMMIT TO GEMCUTTER (a.k.a. committing to the official Ruby repository at rubygems.org/)

rake gemcutter:release

Thanks to the NYC Ruby Meetup for the intro to Jeweler and Gemcutter and Peter Harkins for QA of these notes.

And finally, if you’re a woman in New York developing in Ruby or interested in developing in Ruby, join a terrific group of us on the NYC Ruby Women mailing list. All levels of development experience are welcome.