30 May 2014

The current team of ChicagoRuby organizers assumed leadership in August 2007. Back then, typical monthly attendance was about five people and the group’s Meetup.com database contained 78 members. The previous organizer was swamped with work at his day job, so he handed the baton to a new crew.
Today, the new crew has grown ChicagoRuby to over 2,700 members. The group hosts three meetups every month, and the downtown meetings consistently max out the 100-person RSVP limit. Bonus: ChicagoRuby hosts two conferences, WindyCityRails in Chicago and RubyCaribe on the Caribbean island of Barbados.
How does ChicagoRuby do it? Through consistency, teamwork, iteration, and learning from mistakes.
Continue reading →
30 May 2014
Developers of Git are making a serious effort to improve intuitiveness for first-time users. Of course, all users benefit from intuitive tools. When our tools just work, we spend less time sifting through documentation and more time solving problems for our customers.
Continue reading →
28 May 2014
Last week, Coraline Ehmke and Liz Abinante met with three members of the WindyCityRails organizer team: Kevin Zolkiewicz, Alonda McCree, and me. Good dialog. End result: The updated WindyCityRails Code of Conduct.
Continue reading →
15 Apr 2014
Dotfiles, the configuration files used by Unix-like machines, can become disorganized over time. Entropy rules! This article describes my recent attempt to bring order to dotfile chaos. The steps can be summarized as follows:
- Move the non-private dotfiles (dotfiles that will be viewed by others on Github) into a directory called
~/.dotfiles.
- From the
home directory, create a symbolic link to each dotfile in the ~/.dotfiles directory.
- Use Git to manage the
~/.dotfiles directory, and share it on GitHub.
Dotfiles are normally hidden when you try to view them in the Mac OS X Finder. To view them from the command prompt, use $ ls -al.
Continue reading →
12 Apr 2014
To iterate is human, to recurse divine.
~ L. Peter Deutsch
Recursion is available in many high-level languages, including Ruby. Recursive solutions can be joyfully elegant. At the same time, the pursuit of elegance can lead to unexpected performance pitfalls.
Fortunately, we can use optimization techniques to address performance problems before they occur. Memoization is one technique in our arsenal.
Continue reading →