Managing Dotfiles

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 →

Recursion and Memoization

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 →

When in Doubt, Rake Clean

Earlier today, I upgraded from RubyMotion v 2.24 to v 2.26. Immediately after the upgrade, I attempted to run a RubyMotion app that I’m working on. The result?

$ rake

     Build ./build/iPhoneSimulator-7.1-Development
   Compile ./app/app_delegate.rb
   Compile ./app/views/score_label.rb
   Compile ./app/views/paddle_view.rb
      Link ./build/iPhoneSimulator-7.1-Development/pong-rm4.app/pong-rm4
Undefined symbols for architecture i386:

...

clang: error: linker command failed with exit code 1 (use -v to see invocation)
rake aborted!

$  

What happened? It just ran a few minutes ago, right before the upgrade! Was RubyMotion broken? Was it time to reach out to the Twitterverse or Stack Overflow for assistance?

Not yet.

Continue reading →

Why Open Source?

As members of the open source community, we have internalized the benefits of open source. Sometimes, knowing a topic so well can hinder us from explaining it to people who need to understand our work: Clients, customers, and employers. They need to understand us because they pay us. Understanding helps to build trust.

The topic What is Open Source is covered in earlier post by that title. This presentation covers some of the “whys” of open source in terms that matter to the people we serve: Clients, customers, and employers.

Continue reading →

Flourish Open Source Conference at UIC

Flourish is an open source conference to be held at the University of Illinois at Chicago on Saturday, April 5, 2014. The conference is run by university students and tickets are free.

Why go to Flourish? Because…

Continue reading →