Archive for the 'Software Development' Category

Snippets in RadRails

When I started out with Rails, I was using Notepad++ and it served my needs fine. Recently, I made the switch to the excellent RadRails IDE. I’m still learning my way around this Eclipse based tool, but overall I’m very impressed. I just discovered another excellent Ruby on Rails blog - Dr Nic. In his latest post, he has put together a config file for using “snippets” within RadRails. I’ve read lots of praise for the defacto RoR editor on the Mac, TextMate, and one of its best features is snippets. Well, now RoR developers on Windows have snippets too. Great stuff!

Snippets

Does your software play nice with others?

A few weeks ago, I mentioned that there were a variety of topics I’d be discussing to provide more clarity around my new product - Presio. Well, I’ll be covering Topic #4 - “How it fits in with existing presentation and training tools” in this post.

One critical aspect of building a successful software product is interoperability. Most software products will rarely operate in a silo. In most cases, your product will have other dependencies that, when combined with your application, provide true value for a user. There may be hardware or software dependencies. For example, a word processing program needs to be able to print documents to any printer. Contact management software needs to be able to import (and export) data from common formats or tools such as spreadsheets.

Creating a software package that allows users to create web presentations that combine audio, video and slides certainly has its share of dependencies. Presio needs to not only work with a variety of hardware devices; web cameras, dv cameras, usb microphones, 1/8″ microphones, soundcards, etc, but it must also work well with a variety of multimedia and image formats.

A sofware maker needs to understand that their paricular product is usually a single tool within a larger toolset that their customers pull out when necessary. So, Presio is not the end all and be all for creating rich media web presentations. Instead, it allows you to assemble a set of “assets” (which may come from a variety of sources) quickly and easily. For example, Presio does a good job at capturing talking head type video. Assuming you have decent lighting and a good background Presio will meet your needs. However, Presio is not a video editing application and as such it does not allow you to create fancy transitions or effects. But, Presio will allow you to import an avi, wmv, or mov file and will automatically synchronize it with an existing slide. This allows customers to continue leveraging their investments in existing tools (whether it be previous cost or knowledge gained). So, if you are more comfortable working with video in say, Windows Movie Maker, Final Cut Pro, Premiere, etc., no problem. Just import your clips into an existing slide and you’re good to go. See below:

import clips

import clips 2

This is just one example of how Presio “plays nice with others”. For audio, Presio can import wav, mp3, or wma formats as well. So, Audacity combined with Presio provides a very powerful solution for creating audio narrated web presentations. Presio also works nicely with all the major web image formats as well as with Microsoft PowerPoint.

Equally as important as being able to get data into your software application from other sources, you must make it easy for users to get data out. Presio allows any clip (whether recorded with Presio or not) to be exported out to a file as well.

So, keep in mind how your users will use your product within an existing ecosystem of other products and formats.

A couple of tech decisions - ROR and S3

Just a couple of quick items. I’ve been moving along building out iPresent Online, and I wanted to quickly mention a couple of of interesting items from a technical perspective. After careful consideration (too much actually), I’ve decided to build iPresent Online on top of the Ruby on Rails framework. Personally, I do not subscribe very much to the programming language/platform wars that fly across the blogosphere on a daily basis. When choosing a platform, what matters most is: 1) selecting “the right tool for the job” AND 2) what’s makes the most sense for your business. Along those same lines I’ve also chosen to integrate with Amazon’s S3 storage service as the primary repository for published Presio presentations.

Thus far, building on top of Rails and integrating with the S3 API has been going fairly smoothly and I am pleased by the progress to date. In the future, I may post more on some of the reasons why I chose these respective platforms and my short list of other technologies considered (if anyone is interested). At the end of the day, customers only care that the software solves their problems and could care less as to what the underlying technology is. The selection of these 2 platforms will hopefully allow me to achieve that end.

Features vs. Solutions

When describing a piece of software to potential users, it is imperative that you speak in terms of “solutions” as opposed to features. All too often, software companies provide laundry lists of product features sprinkled throughout their marketing materials. People don’t buy features, they buy solutions.

I’m going to describe how Presio solves specific user problems thereby creating true value for its users.

One assumption I am making is that potential users have already decided that utilizing rich media web communications will benefit their business or organization. With that said, here are some of the problems I set out to solve with Presio:

1. User Problem: I’d like to create multimedia content for the web, but the process of creating and editing multimedia is too complex and/or time consuming

Presio’s Solution: Ease of use - The interface of Presio is very compact. There are only a handful of screens and functions, yet it is a very powerful program. I did not bloat the software with lots of configuration options, settings and menu options. In fact, the main interface does not even have a menu. I built the interface for users that simply want to record a rich media presentation for the web and don’t want to be fiddling around with timelines, markers, script commands, and trying to figure out how the software works.

Intuitive workflow – there are basically 2 simple workflows within Presio 1) Create New Presentation Wizard, 2) Edit Existing presentation. When creating a new presentation the user steps through 3 screens, where they 1-upload files, 2-capture audio/video, and 3-publish. In edit mode, there are only 2 screens; 1-Edit and 2-Publish.

Bottom-line: Presio is truly a rapid web presentation authoring tool.

2. User Problem: I have a wide variety of users I’d like to have view my presentations, but I’m not sure which format to provide

Presio’s Solution: Multi-format support – At the end of the day, a viewer just wants a presentation or video clip to just work. They want to hear and see what it is you are presenting, period. With all the different web media formats this has become a challenge. Most sites standardize on one format or another, be it Flash, Windows Media or Quicktime. Presio provides the ability to publish audio or video presentations in one or multiple formats. This allows you to start off with one format and move to others as you better understand your viewer’s needs. You are not locked in to a single format. Additionally, Presio also allows for publishing single file presentations (MOV, SWF, or WMV/WMA) OR embedded HTML presentations, allowing for even greater flexibility for your viewers.

3. User Problem: I’ve created some great content, now how to I distribute it to my viewers. I don’t have a web or streaming server OR trying to get my IT department to help me set this up would take forever.

Presio’s Solution: iPresent Online. Presio comes with a fully integrated content distribution system built right in. With a single click, presentations can be published to our Tier1 hosted service, iPresent Online. Presentations can be tracked and managed via an equally intuitive web interface. Each presentation is stored on our highly reliable network and is accessible via a simple URL. You can distribute this URL however you’d like, via a link in an email, posted to your company’s intranet or on your website.

There you have it. iPresent Presio and iPresent Online were designed to solve these 3 problems. These 3 issues were my guiding principles during development as I added “features” to come up with an end “solution”.

Great resource: Stock icons review

I came across this stock icons review site today. This is why I’m an avid reader of the BOS forum. You always come across gems like this.

I’m in the final stages of readying my beta and I’m in need of some well designed icons. This site just cut my research time down significantly.

Release early and often?

I posted my thoughts on releasing software as early as possible, in an effort to get feedback from customers as soon as possible, over at JoelonSoftware, in this thread:

I thought I’d also add it here.

First off, you seem to have thought out the product quite well, and you have made great progress thus far – so keep going.

I agree with what others have said: (paraphrasing) - “Freeze your to do list”, “Start thinking about marketing”, “prioritize what remains”, and “just execute”. But, I also wanted to comment on the merits of “release early and often”.

I am a firm believer in this credo, particularly in a bootstrapped situation (which I assume is the case for most on this board). True, you need to get the base features into v1.0, but the benefits gained from releasing as quickly (though prudently) as you can outweigh the negatives in my view. Releasing early offers:

1. Feedback from the customer. This is so critical in mind, particularly for a new company with its first product release. As entrepreneurs, we think we know what customers want/need, what features are important, and how to implement functionality, but until we get our product into customer’s hands we can’t be sure

2. Time to market – you mentioned this as a concern in your blog. Well, releasing something early addresses that

3. Confidence – getting your product out there, which begins to illicit feedback (hopefully positive), and sales will build confidence and momentum that you can build upon

As a bootstrapper, everything is tight; time, money, resources – but you can use that to your advantage. You can move quicker or change direction on dime more so than that of a larger competitor that needs to get projects approved, teams assembled, resources allocated, etc. Releasing “early and often” is something that can be a competitive advantage for small (or tiny) organizations.

I think your idea and product sound great. Good luck.

Just to add, generally speaking I subscribe to a software project/product philosophy where less is more and getting things done is more important than over analyzing everything. Hopefully, this will hold true as I get closer with iPresent Producer.