Blog Entries

General Tools

By Nandita Menon on Monday, May 14th, 2012

At General Things we use a variety of tools that complement our work and our temperaments. Very often, we find one tool that we absolutely love, for many reasons, but mainly because it makes our lives easier. The General Tools series is the GT way of acknowledging, appreciating, and advertising these assets.

General Tools: Effortless Project Management with Redmine

By Michael Hines on Monday, May 14th, 2012

Redmine LogoThe General Things (GT) office is all for trying new things, but there are certain tools that we can’t live without. One of those is Redmine, an open source project management app written in Ruby on Rails. Our love for Redmine developed after experimenting with several other project management tools, including Jira, AtTask, Pivotal Tracker, and Assembla. These programs each had features we liked, but none of them were able to outshine Redmine.

One of the things the team likes best about Redmine is that it’s open source, and that it’s written in Ruby on Rails. We try to share as much of our code as possible, and while Ruby on Rails isn’t the only language we work in, it does hold a special place in our hearts. All personal preferences aside, there are a ton of more practical things that make Redmine appealing to any type of team.

Redmine makes it easy for clients to track the progress of a project, allowing a single user to create an unlimited number of accounts. For those who prefer agile software planning tools, there’s Backlogs, a Redmine plug-in that simulates Pivotal Tracker. Redmine also has a great wiki feature, allowing you to keep all relevant project information in one easily accessible place. Our project managers love the excellent tags and categories features that help them keep things organized. Redmine also shines on the financial front, costing teams nothing to use.

General Things is currently in the process of upgrading from Redmine 1.2 to 1.4. Highlights of 1.4 include official support for Ruby 1.9 and JRuby, support for multiple SCM repositories per project, and multiselect custom fields. Redmine isn’t for everyone, but we believe that it’s the best option for agile teams that do a lot of work in Ruby on Rails. Redmine is the first tool we’ll be profiling in General Tools, a new series of blog posts covering the applications and tech that we can’t live without here at GT.

BoF Friday: Making a MARC(Database)

By Nandita Menon on Friday, May 11th, 2012

GT developer Carlo Mogavero led this week’s BoF session by letting us in on his latest project where he plans to traverse MARC21 (MAchine Readable Catalog) metadata and store it in a document-oriented database like MongoDB.

Harvard University recently announced that they were going to make their MARC21 metadata available to the public. Harvard Library’s MARC21 data is 10GB in size and is separated into 14 different files. There are 12 million total records spread across 73 libraries. Discovering different types of bibliographic content is something that has Carlo very intrigued. Carlo decided to use this resource to eventually create a front end searchable interface using REST to make it easier to search through the entire catalog of MARC21 data.

MARC is an international standard digital format that consists of a description for the storage of bibliographic content. MARC21 was created when the US, Canadian, and European standards merged together to provide a more unified system of cataloging. Content stored in MARC21 files include formats for authority records, holdings records, classification schedules, community information, and formats for bibliographic records.
MARC21 data is stored in binary linked lists. These linked lists use a sequential access data format which require a parsing script in order to insert the content into a database. Currently, Carlo is using a PHP MARC parser called file_MARC to comb through the MARC21 data from Harvard University’s library.

Bibliographic databases are an expensive and sought after service, but Carlo’s final goal isn’t to monetize his searchable Harvard Library MARC21 database; instead, he plans to release the source code for free on Github. Carlo recognizes this as an opportunity to provide a successful, useful service and to fuel his spirit to unravel some previously undiscovered material. We dream big at GT.

Simple Steps to Install Chef on Ubuntu 12.04 or 10.04

By Nandita Menon on Tuesday, May 8th, 2012

For much of the last year General Things has been using a technology called Chef. Chef is an Open Source configuration management software which allows developers to programmatically automate all system administration needs from the command line.

GT developer Ryan V took on the task of implementing Chef and faced a few issues along the way. GT developers are always enthusiastic to adopt new software, but we found that the currently available documentation on Chef was quite unorganized and all over the place. Diligent as ever, he outlined the steps he took to successfully set up Chef. We are now using those outlines to create a comprehensive process description that we hope will assist the other lost souls out there. We begin with:

Setting up an open source chef server

Continue reading “Simple Steps to Install Chef on Ubuntu 12.04 or 10.04” »

BoF Friday: Techie Road Trips

By Michael Hines on Friday, May 4th, 2012

General Things (GT) project manager Scott Rowland was crowned the office road warrior after his recent BoF Friday discussion of his cross-country road trip. Scott’s road trip began in Indiana after he graduated from Indiana University with a degree in Informatics. After graduation, both Scott and Jenny, a fellow IU alum and GT UI/UX designer, decided to move to Seattle to pursue their dream of working in the West Coast software industry.
Continue reading “BoF Friday: Techie Road Trips” »

BoF Friday: Programming in the Prairie

By Nandita Menon on Friday, April 27th, 2012

For this week’s BoF Friday session, General Things developer Dan Steinicke talked about his three year stint at Dancing Rabbit Ecovillage, a community set among the hills of Missouri. The Dancing Rabbit ecovillage is committed to preserving biological diversity and land sustainability, where members build their own houses and grow their own food. When Dan found time to spare from building his home at Dancing Rabbit, he learnt programming in Rails. We at General Things sure have a way of finding dedicated developers!
Continue reading “BoF Friday: Programming in the Prairie” »

General Things Developer Says MerciboQ!

By Michael Hines on Monday, April 23rd, 2012

When the developers at General Things (GT) aren’t working around the clock for clients, they can often be found hacking away on personal projects. One of these projects is MerciboQ!, a website that GT developer Fred Schoeneman built to help recognize those who go above and beyond their job description. MerciboQ! spotlights those who normally don’t get much attention for their great work, such as talented barbers, friendly baristas, and open source programmers. The MerciboQ! you send belongs to the person you are thanking rather than to the business, and follows them from job to job.
Continue reading “General Things Developer Says MerciboQ!” »

BoF Friday: Grape API Builder

By Michael Hines on Friday, April 20th, 2012

BoF Friday: WTFUX is tmux

By Nandita Menon on Friday, April 13th, 2012

This week’s BoF Friday had GT developer Ryan introduce the team to Unix utility called tmux. tmux is a terminal multiplexer that allows users to share and work on multiple processes on a single terminal screen. tmux works on the client-server model, where the workstation acts as the server on which multiple sessions are held. Each session can have multiple windows on a tabbed interface that can be differentiated by colors. The user can easily alternate between different “windows” using keyboard shortcuts to switch between coding and testing environments.
tmux example screen
tmux is especially useful for GT developers because it enhances our workflow. Some of its features include:

  • It can mimic an entirely terminal-based IDE
  • It can monitor sessions from a remote location
  • It allows users to reconnect to terminal sessions if they are on flaky connections such as a mobile hotspot
  • It can be used for local and remote pair programming, a working style that GT encourages
  • It encourages customization of windows, panes, and colors

Pair programming is of specific interest at GT right now as we try to incorporate it into our workflow. Some GT developers prefer to practice pair programming by having one developer physically code while the other provides the critical headshot view. Pair programming generally results in a “1 + 1 = 3″ productivity gain, as code is cleaner, more thought-out, and has fewer bugs. With tmux, developers can also hold grouped sessions where users interact independently on the same session from remote locations. GT developers are encouraged to adopt a working style most productive for them and our clients, and tmux seems have struck a chord.

General Things Optimizes GoPro Website To Tackle High Traffic

By Nandita Menon on Monday, April 9th, 2012

General Things solves problems. General Things did just that for GoPro when they acquired a coveted ad space on YouTube.com’s front page. GoPro was geared to receive a lot of public attention and asked us to scale their website to receive the enormous amount of traffic. GT developers went the extra mile in figuring out unique solutions to optimize the website which was built on a WordPress platform. This also involved developing a reverse proxy server using a combination of Nginx and Apache.

GoPro was very satisfied with the brilliant customer service and solutions that GT implemented for them. To learn more about the range of solutions and GoPro’s fantastic customer experience, read the GoPro case study