Open Source Projects, Tools, & ResourcesThe Internet is powered by open source software. From mail servers to web servers to client software of all kinds, free and open software provides the building blocks of our technology infrastructure. As a person who has made his career online as a developer, I feel that it is my responsibility to repay the community in kind. I devote a significant part of my time and creativity to free and/or open source software, most of it released under a Creative Commons license. I’m always open to comments, feature suggestions, and constructive criticism; feel free to contact me about any of the applications and tools you find below. Ruby on Rails ToolsBBRails Toolkit: Ruby on Rails Productivity Tools for BBEditThe BBRails Toolkit consists of a number of scripts for BBEdit designed to streamline the Ruby on Rails development process. The Toolkit is based on a simple underlying principle: performing routine tasks related to developing, deploying, and testing Rails apps should not necessarily require a trip to Terminal. The BBRails Toolkit integrates BBEdit with a number of command-line tools (including Capistrano, Rake, Reek, and more) and brings common tasks only one menu-click or keyboard shortcut away. And because the scripts are just AppleScript, instead of compiled plug-ins, they’re extensible and hackable. The BBRails Toolkit is featured on the Bare Bones BBEdit support and resources page, and is currently the only 3rd-party resource to have that distinction. For more information, refer to the Read Me included with the download, or the original announcement from the blog. Rails Cheat Sheets for BBEditThis script addition integrates the cheat gem to let you access cheat sheets from within BBEdit. To use the script, highlight a term in a BBEdit window (like strftime) and either use a keyboard shortcut or select the script from the Scripts menu item. A new window will open, populated with the cheatsheet. If you invoke the script without first highlighting anything, you will be presented with a dialog box from which you can enter the name of a specific cheat sheet, get help with Cheat, or access a list of available cheat sheets. RDoctor: Mac OS X RDoc BrowserRDoctor provides quick and convenient access to the documentation for all of the RubyGems installed on your local machine. It is essentially a simple, single-purpose web browser specifically designed to browse local rdocs. You can also use RDoctor to generate documentation for plugins that are part of your Ruby on Rails projects. Download it now, or read the RDoctor announcement from the blog for more information. Rails Active Record Relationships Cheat Sheet (PDF)Even though there are only a handful of methods involved, ActiveRecord relationships can sometimes be a little confusing to newcomers; and even when you’ve got the big picture down, you might need help remembering the small details, like where to put the foreign key. To that end, I created a simple flowchart that guides you through the process of setting up your ActiveRecord associations. It’s pinned to the wall next to my desk; hopefully you’ll find it a handy reference as well. BBEdit Ruby on Rails Text Clippings Quick Reference (PDF)Clippings make short work of Rails coding in BBEdit. Clippings are just snippets of code that can be inserted with a few key presses, and BBEdit 9 comes with two sets just for Rails development: Ruby, and Ruby in HTML. I created this quick reference sheet that organizes all of the Rails-related clippings on one page, suitable for hanging on the wall near your desk. Other ToolsPlusXBitPlusXBit lets you set the execute bit on any file without a trip to Terminal. From Finder, just select one or more files and click the “PlusXBit” icon in your Finder toolbar. Download it using the link on the left, or read more about this and other Terminal toolbar scripts for details. RunDotSlashRunDotSlash makes it easy to move between Finder and Terminal and work with UNIX scripts and executables. You can use it to open the current Finder window in Terminal by simply clicking the RunDotSlash icon in your toolbar with nothing selected. To execute a file in Terminal, just select it in Finder and click the RunDotSlash icon. Download it using the link on the left, or read more about this and other Terminal toolbar scripts for details. UML Stencil for OmniGraffleIf you’re a Mac user and a developer, then you should know about OmniGraffle– the ultimate diagramming software. I’ve created a simple, clean, and attractive UML stencil for use with OmniGraffle, and around 7500 of your peers have downloaded it so far. Download the OmniGraffle UML stencil here and see what you think. Open Source Projects & ContributionsActs As Auditedacts_as_audited is an ActiveRecord extension that logs all changes to your models in an audits table. My fork addresses an issue that arises when a plugin (such as restful_authentication) provides the Background-FuBackground-Fu is a Ruby Gem that makes background tasks in Ruby On Rails made dead simple. My contributions are in the master tree, and include configuration options for cleaning up completed background jobs. For more information, see background-fu repository at Github. Inflect ThisInflect This is a centralized module for supporting irregular inflections in Rails. The Rails Core team will not correct any missing singularization/pluralization exceptions in the built-in inflector, for fear of messing up people’s legacy table names. Instead, they recommend adding custom inflections to your environment.rb file. In an attempt to DRY up custom inflections across the community, Inflect This provides a centralized location for collecting these custom inflections. Find it on GitHub at http://github.com/Bantik/inflect_this. RCovRcov is a code coverage tool for Ruby, commonly used for viewing overall test coverage of target code. I revamped the HTML output of the coverage report to improve readability, added row highlighting, implemented sortable columns for better usability, and added support for custom CSS. For more information, see my fork of the RCov repository at Github and my blog post about improved HTML output with RCov. Related Select FormsThis plugin adds a new helper to the Ruby on Rails framework that simplifies the creation of multiple, dependent HTML select tags. I added support for passing arguments to the :include_blank attribute consisting of true, false (default), a string, or a two-element array, bringing the helper in line with the standard Rails select form helper. For more information, see the related_select_forms plugin repository at Github. Unsupported / Retired ApplicationsFACETS Framework (Fat AJAX Client / Thin Server)FACETS is a fully OO, pattern-based, MVC-compliant framework for rich web applications. There are no restrictions or requirements for the server-side implementation of FACETS beyond the exposure of a REST or SOAP interface, and the client-side implementation is fully cross-platform and cross-browser compatible. The framework facilitates rapid prototyping by decoupling the front-end and back-end development of a web solution. FACETS provides built-in solutions for bookmarking, forward/back button behavior, state and session management, and conservation of HTTP requests in an integrated, optimized, and extensible framework. More information is available at the FACETS web site on Google Code. Projectory, A Real-World Project Management ToolWith hundreds of installations worldwide, Projectory is the premiere platform-independent, web-enabled project management tool, designed to track software projects through all phases of development. Where traditional project management software is primarily useful only for planning and reporting purposes, Projectory lets you track actual development effort expended by teams or individuals across multiple projects and activities. More information is available at the Projectory web site on SourceForge. Yet Another IP Widget 1.2Yet Another IP Widget is a popular Konfabulator widget for Mac OS X. It unobtrusively displays an icon and IP address for each active network interface (ethernet, wireless, dialup, BlueTooth, or VPN.) If you have multiple network interfaces active (e.g. you’re on an AirPort network and you’re plugged in to a physical ethernet jack) you will see an icon and IP address for each one. You can click on the icon to get details on a given network interface, including DHCP hosts, routers, MAC addresses, and other related information. You can download Yet Another IP Widget here. XCode Project Template for leJOSIf you’re interested in LEGO robotics and you know Java, you may want to flash your Mindstorms firmware with leJOS and hack to your heart’s content. My leJOS project template for XCode will hopefully make the process easier for you. Please see the instructions for installing leJOS and downloading the project template. WormSign, An Intrusion Detection System for IIS (No Longer Available)WormSign is a passive intrusion detection system developed for use on the Microsoft IIS web server. The software alerts IT staff when suspicious and potentially malicious activity occurs on the front-end web servers. Information provided by the tool can be used to determine the nature of the activity (e.g. system error or a hack attempt). WormSign was instrumental in identifying Nimda/Code Red attacks on servers it was protecting in 2001, and was the subject of an article in “2600: The Hacker Quarterly” in the summer of 2003. (The SourceForge project for this system has been closed, as it is no longer actively supported.) |