Author Archive

Fitness Frolics

Thursday, January 26th, 2012
GORGES Staff at Ithaca 5 & 10

Jon, Vicki, and Matt at the Ithaca 5&10 Race

One peril of software development is that there is too much sitting going on.  The mind and spirit get exercise, but not the bod.  We’ve experimented with knee stools, yoga balls, and stand-up desks at GORGES with mixed results.  Several of us walk or bicycle to work.

This fall our office manager Vicki has pushed a fitness challenge on the staff.  For those who volunteered (or were conscripted!), we divided up into three teams and are placing checkmarks on a master schedule when we exercise.  GORGES has sponsored trial memberships at the Finger Lakes Fitness Center for their six-week fall challenge.

In previous years we have taken the crew to the Hoffman Challenge Course at the Cornell Team & Leadership Center, and this year’s fitness challenge can certainly be labeled team-building.

The fall results aren’t in yet, but and unfortunately some of the fitness gains may be erased when we hold our gluttonous end-of-fitness-challenge party.

worked in academia, corporate research labs and several technology startup companies prior to GORGES. His expertise is software architecture, database development, and system administration. Matt brings GORGES over 25 years experience developing fast and robust software on a multitude of platforms and languages.

Cornell 3 Day Startup

Tuesday, November 8th, 2011

A few weeks ago GORGES received an inquiry from the organizer Sohan Jain asking if we would be mentors for the Cornell University 3 Day Startup.   This event was held this past weekend November 4-6, 2011, and in our opinion it was a wonderful success.

Cornell 3 Day Startup November 5, 2011On Friday afternoon the event started with brainstorming sessions, and presentations of possible startup ideas were made that evening.  Votes were cast and teams formed around the half-dozen or so leading ideas.  Each team had students with different roles for the concept development, business modeling, and actual programming.

Fueled by caffeine and sugar, the teams worked all weekend in preparation for Sunday evening’s final pitch.  For GORGES’ role, Don Ellis and I were involved at the three mentoring sessions.  To the best we could, we asked questions and offered advice based on our own startup experiences.

On Friday evening the teams presented their ideas and working prototypes to a panel.  The presentations were well-attended, and I would not be surprised if a few of these teams evolved into real startup companies.

As for the actual ideas, most involved using mobile smartphones.  That is a clear indication of where future opportunities lie, and I’m glad we have cultivated and matured our mobile development talent at GORGES.

It was great to see such enthusiasm during the weekend, as well as impressive programming and business talent.  Kudos to Sohan and his team for putting together a great event.

worked in academia, corporate research labs and several technology startup companies prior to GORGES. His expertise is software architecture, database development, and system administration. Matt brings GORGES over 25 years experience developing fast and robust software on a multitude of platforms and languages.

Staging servers

Monday, August 22nd, 2011

At GORGES we prefer to set up a staging server or website for our bigger projects.  I would even call it a requirement since it can be used by the customer and our quality assurance staff to review both progress and the release candidate before publishing a website to a production site.

Usually developers work directly on their workstations or laptops, and a development environment has both web and database services running similar to a production server. Ideally a development environment should have the same versions of services as the production server, for example PHP 5.2 or Ruby 1.9.  On more than one occasion I have been bitten by writing MySQL 4.3 or 5 code, but the production server has an older version of MySQL without sub-query support so the queries had to be rewritten.

Usually these development services are customized for development, for example the database does not have to be hardware-optimized and the web service can have debugging tools enabled.  I prefer to turn on all warning messages, so any identified problems that are not severe enough to halt page serving will be shown either in a log file or onscreen.

Just as important with having a staging server is to have clean and well-structured publishing scripts.  If you are relying on a manual process to upload files using FTP, then it is possible to skip an updated file by mistake.  Publishing scripts come in all sorts of flavors and approaches – we have both “pull” methods that use server-side scripts, and “push” scripts that execute on the developer’s computer and automatically upload files to the server.  The push scripts are built on Capistrano, which although it is based on ruby we sometimes use at Gorges for non-ruby websites.

We routinely protect our staging servers from prying eyes and search engines by using HTAuth username and passwords.  Once a website is scanned by a Google, Bing, or other web crawler then it is out of your control.

Having a staging server doesn’t mean much unless it is actually used to test new features and look for bugs.  Quality assurance is important, and I have yet to meet a developer that produces bug-free code or see a unit testing system that covers 100% of a web application feature set.

Not covered in this post is the issue of database migrations between developer environment and a staging server, and also from a staging server to a production machine.  These can be tricky, but as with all challenges the proper planning will guide you to the best solution.

After the application or update goes live to the production server most staging servers are continued as “sand boxes” to support additional updates and testing.

worked in academia, corporate research labs and several technology startup companies prior to GORGES. His expertise is software architecture, database development, and system administration. Matt brings GORGES over 25 years experience developing fast and robust software on a multitude of platforms and languages.

Lego Club at GORGES

Monday, February 14th, 2011

Mini-Figure Lego Club

Team Mini-Figures: Willem Magre, Samuel Bazarov, Gaelen Walsh, Quinton Clark, Trevor Clark, Geoffrey Clark

The GORGES offices have been host to a Lego Club this school year.  About twice a month, a group of lego enthusiasts have met at GORGES to prepare a project and poster for the Junior First Lego League, the youngest category of the national organization FIRST.

The contest theme this year is Body Forward, and the directive was to create a project for biomedical engineering.  The team, who named themselves Team Mini-Figures, interpreted this as building a hospital that has advanced devices to help people, and several medical vehicles (ambulance, helicopter, boat) to transport people to the hospital.

Head extractor with spare parts in the hospital room.

One requirement of the project was to have at least one item that moves.  The team created an automated stretcher transporter and a windmill.  Ideally wind would drive the generator and provide electricity for the hospital, but for demonstration purposes the boys connected a battery to the generator so the windmill blades would spin.

Pictured to the left is my favorite device.  Samuel and his teammates created a head extractor in case someone needs a replacement.  There were spare bodies, heads, and legs in the extractor room for quick access.

On January 29th, 2011, the Mini-Figures team presented at their first competition.  The judges awarded the “Best Environmentally-Friendly Hospital” award to the team.  Thanks go out to the Cornell NanoScale Facility for sponsoring the local Jr. First lego event.

worked in academia, corporate research labs and several technology startup companies prior to GORGES. His expertise is software architecture, database development, and system administration. Matt brings GORGES over 25 years experience developing fast and robust software on a multitude of platforms and languages.

GORGES Greenery

Monday, February 14th, 2011

There are good reasons to work toward reduced impacts. We know most of the environment-saving actions we read about will also save us money. Clients express appreciation when suppliers do their bit towards a sustainable future.

Our pro bono effort to help with Gulf oil cleanup (www.gulfsaversolutions.com) was a type of singular environmental action. That’s worthy, but what counts largest are the routine actions.

Here are some routine efforts that we make at GORGES.  If you would like to know about our experience with any of these, please contact me or Don.

Communicate electronically:  We send invoices electronically unless we are explicitly asked to send by postal mail.  This significantly reduces paper use, and we have found as a bonus that clients often pay more quickly with this method.

We send newsletters by email. It’s rare that anyone we are talking with declines to receive the newsletter. We use a service to send it and monitor the sending, and almost one-half of our recipients open the newsletter.  If given a choice, we ask businesses that send print newsletters to us by postal mail, or other recurring correspondence to switch us to email. If they are not setup to do that, we offer to help with the advances.

Reduce paper usage:  Over the holidays some of my family visited and we toured the GORGES offices.  My sister marveled at how little printed paper there was in everyone’s work area.  It’s true – we have set up collaborative file repositories and work almost exclusively electronically.  There are days when our group of seventeen prints nothing.

Turn off appliances:  This is obvious, but it does work.  Even devices on standby mode consume some power.  We supply power strips to each workstation area and encourage staff to turn off the entire strip at the end of the day.  Turning monitors off is common enough; turning the whole computer off helps even further.

When we switched offices last summer I changed our phone extensions from using many individual power adapters to a single power-over-ethernet switch device in our server closet.  The energy savings may be marginal, but the added benefit of reduced wires and freeing up a workstation power outlet was nice.

The biggest savings come from deactivating devices entirely.  By upgrading some servers at our co-location facility, we have decommissioned five servers in favor of two new ones.  An added benefit is reducing number of our uninterruptible power supply units, which require expensive lead-acid batteries that only last 2-3 years.

Reused & recycled items:  We built out our office with re-purposed furniture, saving thousands of dollars.  There may be a scratch or three on the new desks, but it sure beats the fold-up tables we had during our early startup years.  And old items and equipment are not always sent directly to the trash – we are regular contributors to the Finger Lakes ReUse Center.  Of course we also do the standard office paper, plastic, and metal recycling.

Plants:  We have many indoor plants. They are great to look at and help to clean the air, particularly in rooms with minimal air movement or no windows. Employing electrical devices to do the same is costly, annoying, and boring.

We have an active thermostat control program. We are after all a bunch of techies, so we can handle programming the devices!  We can all handle an extra degree without being uncomfortable, and this reduces our power consumption.

Location:  We love working downtown, and have remained here despite seeing other tech companies move to the office parks and ‘burbs.  Several staff (including myself) walk to work, and others bicycle or take public transportation.  We have one client who provides bus fares to all employees for going to and from the office (and even to travel to meetings).

In summary, I’m sure you can think of other ways to reduce your power or materials consumption in your own office as well; it all counts.  Let us help if our experience or technical skills can contribute to reducing consumption.

worked in academia, corporate research labs and several technology startup companies prior to GORGES. His expertise is software architecture, database development, and system administration. Matt brings GORGES over 25 years experience developing fast and robust software on a multitude of platforms and languages.

Adding a Fax Machine to Asterisk

Monday, January 10th, 2011

Recently we needed to formally integrate a fax machine into our Trixbox / Asterisk office phone system.  In the past we just had a simple phone splitter and hoped the line wasn’t in use.  We have grown to 15 people in our office, so yelling “Is everyone off the phone lines?” is a bit disruptive to our office staff.

The first step was to research a solution, and a Cisco Linksys PAP2T device seemed like the best device.  Usually it is bundled with a service contract by VOIP Internet phone companies, and there are many unlocked units available ($32 incl. shipping – I love eBay).

Once the device arrived, I first created a SIP (Session Initiation Protocol) extension in our Trixbox configuration panel (we used extension 40).

Next we need to know the IP number used by the PAP2T so we can use a web browser to program it to interface with our Trixbox phone server.  First plug in the power connector, an ethernet cable to a DHCP-enabled network, and an analog phone into line 1.  The analog phone should have a dial tone, so from this phone type four asterisks (“****”) to activate the PAP2T voice-based setup menu.  When prompted, type “110#” to get the IP number of the PAP2T.  Another way of determining the IP# is to

From a web browser, enter the IP# of the PAP2T device (our device used http://192.168.1.131).  You should next see the PAP2T configuration screen.  Click the Admin Login link at the top-right, then click the Line 1 tab.  These fields had to be entered:

  • Proxy: 192.168.1.2 (use the IP# of your Trixbox server)
  • Display name: fax
  • User ID: 40 (this is the extension)
  • Password: **** (no, I’m not going to reveal our password here!)

Different trixbox setups may require different configuration settings, but these four items were all that we needed.  Click the submit button any you’re ready for faxing.

Note that this is not the only way to integrate a PAP2T with Trixbox.  Other solutions used TFTP to program the PAP2T during a device restart, but this seemed unnecessary compared with the simplicity of the above instructions.  And there are plenty of software or service solutions (e.g. HylaFax, asterfax), but our fax machine is also an office scanner and copier so we wanted a hardware solution.

Someday we may add an automatic fax signal detector and route a fax automatically to our fax machine (it seems to be a simple Trixbox setting or extension), but that’s a future project.

http://en.wikipedia.org/wiki/Session_Initiation_Protocol
worked in academia, corporate research labs and several technology startup companies prior to GORGES. His expertise is software architecture, database development, and system administration. Matt brings GORGES over 25 years experience developing fast and robust software on a multitude of platforms and languages.
©2012 GORGES - All rights reserved
where programming meets design and lives happily ever after