Archive for the 'Technology' 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”.

Yahoo Developer Resources

I recently came across another set of great developer resources put out by Yahoo.

I’ve been working on some AJAX stuff lately but there’s just so many libraries, frameworks, and projects to come up to speed on - so it’s nice to see something put out by the big guys. These Yahoo developer sites are fairly new, so I’ll be checking back often for updates.

Dynamic Image Resizing with Prototype and script.aculo.us

Once we launch, presentations created with iPresent Presio can be optionally published to our hosted service, iPresent Online. I have not completely finalized the v1 functionality for iPresent Online, but suffice to say, it will be very lean on features. The primary purpose is to provide a place for users to easily store presentations when they do not have access to their own web server or public network location. Eventually, iPresent Online will provide all sorts of reporting, assessment, and user management features.

Anyhow, I’ve been playing around with the excellent Prototype and script.aculo.us javascript libraries, as I plan on using a bit of AJAX type functionality (where appropriate) within iPresent Online. One feature will be a slide management/viewer function where a user can easily view individual slides for a published presentation. In spec’ing out this feature, I wanted to use a fairly innovative way to provide slide viewing. Then I stumbled upon John Berry’s excellent solution on his Agile Partners Weblog - a movable slider to resize images on the fly. You can view the complete source that does this on his site or take a look at the example below. Feel free to open this link in a separate window and grab the source.