Archive for the ‘Tools’ Category

Behind the Scene: Back Office Tools

Monday, July 23rd, 2007

In a previous post, we talked about what we are using to build Sportner; but, you may ask, what makes Sportner (the company) run? In other [ancient] words, what is our back office tool?

Here is a snapshot of the tools we are currently using:

Email & Calendar: Google Apps, Microsoft Outlook

Google Apps, Microsoft Outlook
Google Apps Microsoft Outlook
We are using Google Apps (the free offering) for our Email and Calendar. It is very robust and easy to manage (e.g., creating a mailing list with two to five clicks). We are not using the Google Calendar yet, since the Outlook calendar is sufficient for now. I personally use Outlook 2007 with POP3 to read and manage my email.

I also have a Treo 750 connecting with POP3, and everything works like a charm. While Microsoft products might not be very trendy to use nowadays, Microsoft Outlook’s 2007 enhanced category support combined with the new search function is actually pretty amazing. Local search works! And it is fast. I think we can thank Google for showing Microsoft the “desktop search” light.

Files and Content Management: Subversion (later Alfresco)

Subversion As mentioned in the previous post, we are using Subversion with TortoiseSVN Windows extension as our repository for all files. We have three repositories, one for business, one for operations, and another one for our product source code and assets.

At some point, we might switch our Business and Operations repositories to Alfresco Content Management which is more appropriate for this type of content collaboration.

Collaborative Editing: Trac (Wiki)

Subversion While Wiki is far from perfect, we have not a found better alternative to date. We have implemented some very small but useful Trac macros that make the system very convenient.

For example, we have the macro [[Technorati “myCompetitorKeyWord”]], which includes the Technorati blog stats for a given keyword. I personally think that the real powers behind Wiki are the macros, but they always tend to be thought of last. We have heard that Confluence is a great, easy to use collaborative editing platform, but at this point we do not have the bandwidth (time and financial) to try it out.

Accounting: QuickBooks and Excel

Subversion At this point, we keep all receipts in a binder. The only revenue to date is $5.70 from the ads on the right. The plan is to use Quickbookfor basic accounting and Excel for our budget forecasts and reports

IM / Voice Chat: Skype

Subversion We are trying to use Skype as much as possible. The voice and video support is very good, the chat support is o.k. (no group chat though). We might use Skype in the future for long distant calls.

Web Conferencing: Adobe Acrobat Connect

Subversion As mentioned in one of my Techcrunch comments, we are using Adobe Acrobat Connect. It’s cross platform, easy to use, and cheap $39/Month for unlimited minutes (sessions are limited to 15 participants, which is more than we need). In short, Adobe Connect is a breeze to use.

As you can see, we have opted to have some of these services in-house and others hosted. In general we tend to choose in-house solutions for applications that manage heavy or sensitive content, or would benefit greatly from some sort of customization. For example, there are some good services out there that host Trac and Subversion, but they obviously [have to] charge by size (at least at some point), and do not offer the type of customization you can have with an in-house system (e.g. Trac Macros).

Behind the Scene: Development Environment

Friday, July 13th, 2007

As discussed in our Application Platform and Server(s) articles, our runtime is based on Java, MySQL and Linux; but what, you may ask, are we using to build this runtime?

Here is a quick peek at our development environment:

IDE: Eclipse 3.3 with AJDT 1.5, Mylyn, and soon Aptana.

AJDT 1.5 is an Eclipse extension to support AspectJ programming. It is a very well done eclipse extension based on the AspectJ library, which makes Aspect programming almost as if it were part of the Java language. Thankfully, the bug we had encountered in Eclipse 3.2/AJDT 1.4 has been solved.

We have not started using Mylyn yet, but are planning to use it since we are using Trac as our issue-tracking system.

We are also planning to use Aptana as soon as it officially supports Eclipse 3.3, although the default Eclipse 3.3 HTML/CSS is pretty good.

Source Control: Subversion, TortoiseSVN

Subversion is probably a no-brainer as a free source control. Subversion http support (and especially Apache integration) makes secure remote access configuration a really easy step.

We are big fans of the TortoiseSVN Windows extension, which makes Subversion accessible to almost any computer user. This is one of the reasons that we decided to use Subversion as our content-management back-office tool (article about our back-office tools coming soon).

Bug Tracking, Wiki: Trac.

Life before Trac was complex and fragmented. You had to look for a Bug System, a task management system, a Wiki, and eventually a Source Control web front-end. Trac took the approach of offering a simple integrated approach for bug tracking, collaborative editing (i.e. Wiki), and web access to source control. Trac is also easily extensible, which is allowing us to tailor it exactly to our needs. A simple customization can sometimes make a big difference!

Anyway, big thanks to the Trac team for their approach and execution. Looking forward to the next version.

Build System: Ant and CruiseControl

Like any Java developer, we are using Ant to build our application. Its integration with Eclipse and Tomcat is just what we need. We are also planning to use CruiseControl as a release management tool.

Testing Framework: JUnit 4

We are using JUnit 4 for our unit test. The Fixtures (i.e. @Before/@After) features have allowed us to build a simple and efficient test framework for our application. In short, we are using @BeforeClass to create the application context, and @After to clean the database.

Advice needed: While we are comfortable with our JUnit choice for unit testing, we are not sure about what we should use for our HTML/HTTP testing. The httpUnit project seems to have been put on hold. Any advice would be appreciated.

User Interface Design: Adobe Photoshop CS3, Flash CS3

If you can afford them, these are just the best tools to build your user interface assets and screen mockups. We are using Photoshop CS3 to design the main screens and graphic assets, and Flash CS3 to build screen flows for early User Interface testing. We might use Flash/Flex Builder in the future to build some application components.

Disclaimer: I once worked at Adobe as Director of Product Management for Flex and ColdFusion. So, I might be a little bit bias. Nevertheless, Photoshop has always been among my top three favorite desktop applications (along with Excel and Eclipse).