Tibco’s Art Director, Ben, got a hold of me a couple weeks ago to see if I wanted to do some web development for them. They wanted a responsive design*, which is something I very much enjoy doing, even if I curse at it when it doesn’t do what I want. I signed up pretty quick. It wasn’t that big of a site (8 pages), but I forgot what it was like to work with an Art Director and a QA team. I got complacent in my current role where “close” is normally “good enough”. Ben, and his co-worker Leandro, really made sure we were going to be putting out a top quality project. The end result is something I’m quite proud of. It moves and shakes and looks killer with Ben’s design. I’m keep my version online here for archival purposes (view press release here).
After wanting to build this app for so many years, I finally got the time to make it happen. It’s a simple idea, a time sheet; punch in, punch out, take vacation, total hours worked. There are plenty of apps out there already that I could have used, but none that I liked or saw myself using on a daily basis. It only took me a couple days to get the basic structure hammered out and another day or so to integrate it with my calendaring system for the time-off functions. I’ve been using it all month and it is sweet! Click a button and I’m working on something. Click another and I switched jobs. Reporting is awesome. I love seeing the breakdown per day and per month of where I’m spending my time. I’m hoping that I can tune my days to be more efficient, because I’m that kind of guy. Probably the app I’m most happy with lately. Something that just “works”.
Emails that were generated by World Council’s web server were always hand coded and handled in application code, making them hard to maintain. Any time someone wanted to make a change to them, they had to ask me to send them the email for a base line, then they would copy it into a word processor and make the edits and send it back and I’d make the changes. That process was filled with chances for error. To fix all of this, I created an app that condensed all the emails into a single admin where it could be edited and tested. The system has security to grant employees access to groups of emails, but also has version control so if someone messed an email up, it can always be recovered.
In addition, the class I created to load the emails in code does all the complicated css replacing and content swapping that is required to make things look good in outlook. This is a function that I hadn’t had access to in my application code previously and really makes everything much smoother.
After a few years of manually managing all the cron jobs on World Council’s primary web server, I built a web interface for crontab. Now when a user wants to schedule a new cron job, they can go to a web interface and type it in. In addition to just simple access to the crontab, it has a database component, so users can turn on/off any cron job on the fly and not lose it’s scheduling data. The database also allowed for grouping and descriptions on jobs so they could be understood at a glance. Since all the cron tasks live (for the most part) in the same directory, the system scans that directory to see if there are any files there that aren’t scheduled, alerting the users to them. The whole system has become much more straight forward to use and has decreased headaches while giving non-programmers the ability interact with the system.
On top of all the navigational challenges, I had to bring in new plug-in library (fancybox) to handle video files within a photo gallery. When I brought fancybox into the system, I had to create quite a few specialized functions to handle all the cases that this publication was calling for. Trying to make three different systems, programmed so differently, work together is always a fun/challenging project.
Calendars and I have a long standing relationship with each other. I’ve programmed my own calendaring system about four times now and each time I get to improve upon it. This latest calendar was built to run a timeline with generalized dates and events. It was pretty exciting to see it take shape. The project specifications required it to work on a touch screen that didn’t have a mouse or keyboard so it needed a simple interface and layers of information that could be interacted with via mouse hover and by click. The project was a huge success.
You can see the results on the World Council of Credit Unions’ website at http://www.woccu.org/events/timeline.
Finally, I got to expand my Credit Card Processing Class to handle actual items and shipping and taxes! It has just been doing donations for non-profits for so long. I created a basic cart class which I serialize into a cookie so people can shop, leave, come back and continue without worries. Then I made a little front end to the cart so people could update quantity and styles of products, apply coupons and check out. Works pretty good. Now if the site owner can figure out the SSL we can make it live. I’ve got so many other things I could use these classes on. As a bonus, I got to drag out my really old (php 4) form validation class I wrote and upgrade the heck out of it. Works so much more cleanly now. The one I normally use is owned by my current employer and uses so many other systems that it just gets a bit confusing at times. This one is really straight forward, but with room to grow for sure.
The World Council of Credit Unions (WOCCU) puts on an international conference every year in a different city around the global. In 2010, WOCCU combined forces with the Credit Union National Association (CUNA) to put on the largest conference of credit union officials ever. I had the privilege to design the website that would serve as the chief information portal for conference news that would be seen by thousands of people.
The World Council of Credit Unions (WOCCU) created a program called MatchSavings.org to encourage savings among their Mexican credit union members. The program ran for almost three years and was featured in the New York Times, Wisconsin State Journal and Madison’s InBusiness magazine. WOCCU decided to keep the design and programming in-house, giving me a chance to take full control over the look and feel of the branding and layout.
At The World Council of Credit Unions, there are many subsites with new ones being requested regularly. After creating each one by hand it occured to me that an admin that did all the set up for me would be useful for a few reasons. First, it would save me time. Each site requires me to create a lot of soft links around the webserver as well as creating configuration files for Apache and then finally to create database entries so that staff could add pages to the newly formed subsite. Secondly, it would reduce errors with that creation process. There were too many places for someone to forget a comma or link. Now with this admin, it became a couple clicks to create and verify a subsite.