Projects

Here is a list of projects I have worked on over the years.

Luvfoo

Technologies: Ruby on Rails, mysql
Luvfoo is an open source social networking platform. It is currently in production for Teachers Without Borders. Turns out a lot of people are interested in developing niche social networks. I like the idea that the users of the platform can feel like they truly own their site. We are pulling ideas and code from other projects with the MIT license (the same one we use). The project is in very active development right now with new features and fixes coming out daily. One really cool aspect is that many of the volunteers who are helping with the code are international so we have a truly global project. In addition, this project pulls ideas and even code from many of the other projects I worked on previously at COSL.

The Plan Collection Logo

ThePlanCollection.com

Technologies: Asp.net, C#, SQL Server 2005, Windows Server 2003, Lucene.Net, various external APIs, and a code generator based on the old version of LLBLGen that I hope to release as open source someday soon.
I am listing this project first since it is the one that I have worked on the longest. This company is now 9 years old. We originally used ASP with SQL server on a shared shared server. It has since grow to a very large project with a fairly sophisticated network/security setup.
This website now boasts nearly 18,000 house plans and a great deal of daily traffic.
The Plan Collection can be found on Facebook with this application. I also write technology articles for ThePlanCollection based on the technology we are using for that site.

Teachers Without Borders

Technologies: Wordpress (php, mysql, apache)
Here is a list of Wordpress Plugins we are using.
I am currently a Teachers Without Borders Fellow at The Center for Open and Sustainable Learning (COSL). This project is actually several projects. One part involved gathering up existing data from several different systems and getting it into Salesforce.com. Another is a rework of the existing Teachers Without Borders website using Wordpress and another will involve building out a social network using Wordpress as a base. We also maintain the TWB Toolset - a group of open source tools we suggest to other groups to help them fulfill their requirements. Several of the projects involve groups in the Middle East and other involve people in Africa which is exciting since it gives me a chance to interact with people all of the world and I feel like I am making a difference.

Indulgences Logo

Indulgenc.es

Technologies: Ruby on Rails, MySql, rfacebook.
For fun I and Marion constructed a Facebook application that ensures neither you or your friends need feel any guilt for your various deeds.

Gablr

Technologies: Ruby on Rails, MySql, rfacebook. My friends send me links to interesting stuff they find all the time. I hate to lose the links so I hacked together a Facebook application one weekend that let's you share links with your buddies and then have a conversation around that content.

51 Weeks Logo

51 Weeks

Technologies: Ruby on Rails, Postgresql, OpenID, Java
Get 51Weeks Source Code
51Weeks is a conference support system that helps enhance the conference goers social experience. This was used (and built) during the Open Education Conference at Utah State in 2007. If all goes well it will also be used at the International Conference of the Learning Sciences in the Netherlands. The system scans for blog entries and photos on flickr for the conference tag and pulls them together into the application for others to find. It also provides an online program that lets the participants indicate which sessions they are planning on attending.

oerfeeds.info

Technologies: Ruby on Rails, MySQL
Get OERFeeds.info Source Code
We built this application in about 4 hours for the Open Education Interop we held at COSL. It's purpose is to provide a simple directory of Open Educational Resource (OER) Feeds so that the guys at OER Commons and other such OER aggregation services and repositories have an easy place to find OER related Feeds.

igag.us logo

igagus

Technologies: Ruby on Rails, PostGreSQL, Java
Get igag.us Source Code
I stood in line for hours to get one of the first iPhones. After getting over a nasty sunburn what's a developer to do? Write an application of course. I created an RSS Reader formated for the iPhone. I prefer it to the Google Reader, but then I wrote it. What's cool is that I added a mark feature. Mark a story and it will save it. You can then feed that back out as RSS which is the source of 'What I am reading' on the front page of my blog. Java is on the list because that is what powers the news aggregator behind the site.

gistr logo

Gistr

Technologies: Ruby on Rails, PostGreSQL
This is another project that I wrote during a meeting. Gistr is a small utility application that helps us gather up our research in social network in one place.

Folksemantic Logo

Folksemantic

Folksemantic was born out of a conference we attended at the Mellon Foundation and the subsequent funding they provided. The following projects were all funded on this Grant:

OCW Finder Logo

OCWFinder

Get OCWFinder Source Code
OCW Finder harvest metadata from various OCW and OER repositories using the aggregator project listed below. Using the tags from the various feeds the data is then presented in a way that is easy for the user to browse. This project made the front page of digg a few years ago.

Ozmozr Logo

Ozmozr

Get Ozmozr Source Code
Ozmozr was an attempt to do identity aggregation, social networking, and RSS aggregation. This project produced the aggregator project below. After initial launch we had people signing up every few seconds. It was pretty cool. Unfortunately, we were forced to move onto our other projects because of time lines and had to leave the code at the wrong time. This project was reviewed by Jamis Buck and Marcel Molina, Jr at the Mountain West Ruby Conference. Jamis and Marcel are core Rails contributors and are famous for The Rails Way - http://www.therailsway.com/, a website that details best practices for Ruby programmers.
I wrote about it here and you can watch the video here.

Annorate Logo

Annorate

Get Annorate Source Code
Annorate is a project that makes it simple to rate and annotate web pages.

Make a Path Logo

Make a Path

Get Make a Path Source Code
Make a Path is a simple idea, but was fun. It lets you create a path of websites and shows thumbnails for each. The path can be shared with others, but more interesting is that the path looks a lot like a powerpoint presentation. The idea is to sequence web pages like learning objects so that users can follow a logical path that is predetermined by a mentor or instructor. Unfortunately, we were not able to get funding for other project that would have made this much better including integration with Annorate so that the instructor could leave comments, addition of a roving discussion so that users can interact around the content and an assessment tool that would let instructors embed questions in the content for the student to interact with.

Send2Wiki Logo

send2wiki

Get Send2Wiki Source Code
Send2Wiki integrates with Media Wiki to make it easy to send existing content into the wiki. A bookmarklet makes it easy for an end user. When they find something interesting they only need to press the bookmarklet. They are then given the chance to send the content through a translation service. If a license is found on the page the license is retained. If a license is not found the user is asked to indicate that they have the right to remix the content. The relationship between the original page and the new page can be optionally sent to scrumdidilyumptio.us so that the relationship can be recorded.

scrumdidilyumptious logo

scrumdidilyumptio.us

Get Scrumdidilyumpitio.us Source Code
This is the project that we originally showed to Mellon. It lets you establish relationships between websites using a simple triple store. Scrumdidilyumptious also includes a grease monkey script that will show web pages that have been related to the webpage you are currently on. The idea is simple but powerful. Create a web based database that anyone can add data to and let anyone query that data for their own purposes.

Aggregator Daemon

Get Aggregator Deamon Source Code
This is a backend work horse project that we created using Java. The aggregator understands Atom, RSS, OAI and can parse normal webpages. All the data is then dumped into a database that our Ruby on Rails applications would then read from.

Recommender Deamon

Get Recommender Source Code
Recommendations are resource intensive so this project was created using Java. This project reads from the database that the aggregator writes to (many of them if so configured). The entries are then stemmed and tokenized. The results can then be used to make recommendations. Recently we changed from our algorithms and have started using Lucene as the core of this project.

MOCSL Plugins

Get MOCSL Plugins Source Code
To make development easier we created a series of Ruby on Rails plugins. The Open Account plugin made account management simple and added OpenID. Now there are several other options available, but the Open Account can still provide a great deal of value. The other plugins made it easier to maintain the parts of our database related to the Aggregator. Unfortunately, newer releases of Rails broke one of the plugins we were using. Fortunately, newer versions of Rails will do a better job with managing migrations.

eduCommons Logo

eduCommons

Get The Source Code
Technologies: Zope, Plone, Python
eduCommons is an open source that enables Universities to participate in the OpenCourseWare movement without investing millions of dollars in infrastructure. Utah State's OpenCourseWare and many of the universities that participate in the consortium are powered by this platform.

Open Learning Support

Technologies: Zope, Python, MySql
This was one of the first projects sponsored by COSL. At the time the group was named Open and Sustainable Learning Opportunity(OSLO). This software provided social support for MIT's OpenCourseWare Project.

Proteus

Technologies: ASP, SQL Server, Windows Server 2000
This project was conceived by the illustrious Micah Schicker at 3GB. It is an easy to use content management system and powered the English Department's website at USU until a few years ago.

Syllabase

Technologies: ASP, SQL Server, Windows Server
Syllabase was the reason 3GB was spun out of the university. Chris Okelberry and two other guys built it in their evenings (3GB = 3 guys in the basement) to power Utah State's online masters degree in English. This project was a full learning management implementation and in its day was very similar to WebCT its capabilities. Blackboard obviously won in the space, but the project is still in use at Utah State and a couple of other universities.

Open Shop Keeper

Technologies: ASP.Net, SQL Server, Windows Server, Windows Services
We spent several years and a whole lot of money developing an ecommerce platform. Originally, the purpose of this project was to sell blinds as a distributor. We had a very sophisticated integration with Hunter Douglas's SAP system. We used AJAX before it was cool. We had hundreds of thousands of lines of code. Then we ran out of money. We tried to change the code into something we could release as open source, thus the Open Shop Keeper name. This project was my biggest and most expensive failure. However, I learned from it:

  • Build the simplest thing you can as fast as you can.
  • Get your application in front of your users and then get their feedback.
  • Revise your application according to user feedback.
  • Repeat the process above over and over.
  • Choose your partners carefully
  • Choose your business ventures carefully
  • Focus on core value first. The peripheral stuff can come later when you have money and can hire developers to focus on the remaining 20% of features.
  • Marketing and business development should come first. Software is a tool for business not the business.
  • Make sure your marketing team and business team is as good as your development team and vice versa.

Direct Door Hardware

Technologies: html and Paypal
I list this not because I did a lot of development on this project. Jake really did most of the work, but this is the first company I ever sold. I also learned a great User Interface lesson with this project. We had a very simple html site that used Paypal for a shopping cart. It started making money so we decided that we should buy something expensive, something built by a big company, something enterprise. We bought a commercial shopping cart. It cost a lot of money. We built templates for it so it looked like the old site. We turned it on. That very day sales went from very good to zero. I kid you not. Over the next three weeks we managed to get 7 orders or so. Finally, in frustration we got rid of the software and went back to the hand built html. That very day orders went right back up. Don't ever trick yourself into believing that fancy graphics or functionality will win over user experience. The commercial package looked nicer and was far more functional. It didn't require that the user be directed to a remote shopping cart. However, it also made it difficult to add all the hardware that you need to for a full house - inside doorknobs, closets, bathrooms etc. The html site listed all items in one spot. The user only needed to choose the correct quantities and hit order. The commercial package had a catalog. Even with 'recommended' items it took the user 10-30 minutes to figure out their order. That experience is what the user cared about not branding. I learned that lesson well.

Sorenson

Everything we did at Sorenson was proprietary so I cannot provide the code and I am not even sure about legalities around screenshots but here are the projects I worked on there:

Sorenson Technologies

Video Camera

Technologies: Wind River vxWorks, Sorenson ASIC, Arm 9, C++, ActiveX, ASP
We started building a prototype camera that would wirelessly transmit video that could then be viewed in a web browser. It was a very cool and difficult concept in its time. I think you can buy cameras like this for $50 at Best Buy these days.

Sorenson Vision

Networking

Techologies: RTP, TCP/IP, UDP, Custom Servers, NAT
I spent a lot of time understanding lower level networking protocols. We had to figure out how to move video via UDP through NAT systems. We spent time trying to deal with Jitter and Network latency. The Internet infrastructure has gotten a lot better in recent years. We take VOIP for granted, but it isn't a simple problem. I had a great time working on it.

Sparc Codec

Sorenson built the codec for Quicktime. Then Macromedia asked us to do one for Flash. Since I was the only one who knew anything about Flash at the time I got to attend the first meeting where that relationship started. That was cool so I am listing it here.

VisionLink

I did MFC and general Windows programming for our desktop Video conferencing project.

Glasses

This was one of those projects that was really cool in its time, but which never went anywhere. The purpose of Glasses was to get video conferencing traffic through NAT systems. I did a lot of debugging and finding memory leaks on this project.

USB Drivers

I wrote Windows drivers for our USB device. I hate Windows drivers. I will not be doing this again.

USB Firmware

My electrical engineering background came in handy. We created test firmware for our USB Video Conferencing device. Debugging consisted of watching wave forms on a logic analyzer and then deciphering the hex output. I actually had a great time with this. Writing code for embedded devices is pretty fun.

Testing

I started in QA at Sorenson. Over the years I wrote test automation software and implemented computer imaging using Ghost. It saved us a ton of time and the company money, but truthfully I just hated the monotonous tasks so I automated them. I worked with some really great testers. Now that agile programming is en vogue and testing is a part of every programmers job (why did we not do this long ago?) that background has been invaluable.

→ 2 Comments

Leave A Comment

2 responses so far ↓

  • 1 Tim Cornwell Nov 3, 2008 at 1:51 pm

    I’m not sure who you are (justin?) but your oerfeeds.info site is badly broken.

    All of the references to services.nsdl.org are invalid and broken, but I see no way to remove them.

    Please advise,
    -Tim

  • 2 Justin Ball Nov 7, 2008 at 3:35 pm

    Hi Tim,

    I no longer work for COSL and so I don’t have control over the project. However, we were in discussions with Creative Commons about having them take over the project. I’ll try to find some time to follow up with them. I think they were planning on cleaning up the project and I’m sure they’d be glad to fix the feeds. I did some work on the recommender which pulls data from the NSDL and from OCW repositories and then provides suggests on related content. I and Joel are hoping to find some way to continue looking at that project. Let us know if you are interested in that at all.
    Justin