Pages

Monday, July 26, 2010

Active Learning : The Four Generations Of Active Player

It was so thrilling to see how Active Player went through 4 major iterations in the last 6 years, since I built the first draft version back in August of 2004. As far as I can remember, so far the application has been used by about 1400 users to learn from various videos and webcasts. I am quite excited to see how many more will find it useful, now that the application is open to all.

I would like to share, what motivated me to develop this kind of application in the first place in a separate post. Here is a rundown on the memory lane and various features (as far as I could recollect) included in each of those versions.

First Generation : August of 2004

rich_media_player

  • Built and runs on .NET 1.1
  • Opens Media files that are stored locally on a computer or on the internet.
  • Once the file is loaded, it will read any information about Chapters (markers) in the file and display in Media Chapters section.
  • User can add his/her own bookmarks on the media file that will show up in the bottom half of the sidebar.
  • Bookmarks are stored in an xml file, named after the media file name and stored in the same location. So when you open a media file, it automatically picks up the bookmarks file as well.
  • Optionally, user can choose a specific bookmark file, like a centralized file with all bookmarks in one place to quickly move between different video files.
  • To share, user just need to email the Bookmarks file to a friend/colleague.

Second Generation  April 2006

image

  • Supports everything as in first generation.
  • Re-organized the visual layout and built on .NET 2.0 with VS2005
  • Side bar now has tabbed panels, with each tab occupy the sidebar space fully.
  • Introduced Clips, where a portion of the video can be marked for replay later on.
  • Also introduced facility to play “All Clips” together. Great for students, as it would help to quickly revisit all those important portions from different videos.
  • No longer support one bookmark file for each media file, but forces a centralized and default bookmark file. So user never have to specify a bookmark file.
  • User can open a different bookmark file if wants to. For instance, when a friend shares his/her bookmarks file, a user can open that bookmark file and access all those bookmarks and clips.

A web-based version of Active Player Feb, 2007

Created a web based Active Player for creating bookmarks and clips on MP3 files in Feb 2007 and presented it in Democamp Dallas in Feb, 2007. Later this application has been enhanced to support video files by embedding various video players in the browser.  This web application was discontinued later in the year due to little change of priorities.

Started working on a web based Active Player a couple of weeks back and will release some time in November, 2010.

Here is a snapshot of the MP3 Active Player from the democamp. You can see more pictures here.

Third Generation, May 2009

image

  • Started using Click Once Deployment.
  • The application has been redesigned for visual layout and built on .NET 3.5.
  • Included support for RSS Feed subscriptions as well Subscription from custom Feeds from the Training classroom website (INSPIONS University).
  • Storage has been upgraded from XML file to SQL Server Compact Edition. But the data structures are kept intact from XML file version for backward compatibility.
  • Added concept of Collections, where Media files can be organized into groups/collections.
  • Support downloading media files from RSS Subscriptions and files directly added.
  • Separate tabs for Bookmarks and Clips.

Latest and the 4th Generation, July/Aug 2010

image

  • Quite significant changes in the software architecture itself.
  • Included support to embed Apple Quicktime along with Microsoft Windows Media Player, so abstracted the MediaPlayer code to generic interface and built a repository for media players to be selected based on file format.
  • All feed fetching, syncing and downloading operations moved to separate background worker threads.
  • Completely redesigned the database schema and internal data structures and now using Entity Models instead of typed datasets from earlier versions.
  • Removed support for custom XML formats and streamlined all Collections to RSS Feed specification. So every thing will be now an RSS Feed/collection.
  • Visual layout has been modified for much better cleaner and slim look and gives full space to the video being played.
  • Tab bars have been split and pushed to the sides, keeping in view the wide screen monitors that are shorter but wider in nature.
  • Bookmarks/Clips have been combined in to one tree view.
  • Display Bookmarks/Clips of the current media file opened top in the view and rest of the files below.
  • On minimizing or closing, application now just minimizes to the tray.
  • Restricted to single instance of the application running at any point.
  • Now need explicit but FREE Activation to keep track of some stats from each individual user as well as to build a community of users for better sharing and collaboration.
  • Social aspects like pushing user updates and bookmarks/clips to social networking websites are coming soon.

So, here we are with the latest and 4th generation of the Application. Now that, the application is open to all, I hope many more people may find it useful for learning online.

Design Sense : File Size Of (RSS Feed) Media Enclosure on iPhone

If you open a RSS Feed URL in Safari browser on the iPhone, it redirects you to a RSS Reader hosted at http://reader.mac.com that aptly displays the Feed in a nice readable format on the iPhone. If the RSS feed contains Media enclosures (like Video, podcasts etc),  the feed reader application quite conveniently displays (what appears to be) amount of time it may take to download that file on your iPhone.

Look at a sample RSS Feed item below opened on the iPhone from an RSS Feed that I have prepared, contains a video introducing ASP.NET by Scott Hanselman.

macreader_screenshot

I first thought, the time mentioned is duration of the video file enclosed in the feed. But the duration of the video enclosed in this particular example is actually 00:03:54, so it must be download time. Its a valuable information to have on your mobile device as it would help you to decide whether to go ahead and watch/listen to the media file or not. 

To come up with an estimate of download time, the reader application must be enquiring about the file size in real time.  This must be done by requesting HTTP Headers for the download file and use the content-length in response.  The application must also be checking the bandwidth of your current connection. For instance, if the iPhone is connected on Wi-Fi, I observed that the time is lower than the value displayed when iPhone is on 2G network.

Nice little extra work on the server and is quite valuable on mobiles.

Similar information is not displayed if you open the feed in Safari browser on the desktop though.

image

Application developers, take a note. A little extra work on your side could save a day for your users.

Friday, July 23, 2010

Cowboys To Craftsmen with ASP.NET MVC ??

Quite an interesting way to put the Journey of ASP.NET (developers) from ASP.NET Page based design to MVC based applications. Hope I am not taking it out of context. Its not explicit, but it is written all over the wall. Nevertheless, towers of abstraction and magic by Visual Studio often make developers ignore the inner workings of the framework. Its not a surprise to find an ASP.NET developer that hardly knows anything about HTML beyond the acronym and yet can still develop great ASP.NET pages that really work.

Undoubtedly ASP.NET MVC is better than ASP.NET Web forms, particularly in terms of testability and separation of concerns. But I do not think the model (be it MVC or Web forms) itself could create a better developer somehow.

There are two ways to be a developer. You can be a cowboy or you can be a craftsman. A cowboy jumps right in and starts coding. A cowboy can build a software application quickly. The problem with being a cowboy is that software must be maintained over time.

A craftsman is patient. A craftsman builds software carefully by hand. A craftsman is careful to build unit tests that cover all the code in an application. It takes longer for a craftsman to create an application. However, after the application is created, it is easier to fix bugs in the application and add new features to the application.

Most software developers start their programming careers as cowboys. At some point, however, you must hang up your saddle and start building software that will stand the test of time.

Source : Stephen Walther on ASP.NET MVC

You can see the focus and so much stress on ‘hand crafting’.  I guess even ASP.NET is going through a journey of its own. by moving away from it’s Page based model and embracing MVC that the rest of the world has been using for years.

Friday, July 16, 2010

ASP.NET Vs Ruby On Rails (RoR) : Now You Know ASP.NET MVC

Listen to this wonderful conversation between Scott Hanselman, Martin Fowler and David Heinemeier Hansson happened back in 2007 before we ever heard of ASP.NET MVC. Transcript here.

Scott sits down with Martin Fowler of Thoughtworks and David Heinemeier Hansson of 37 signals and talks about beauty, making developers happen, the death (or life) of HTML, the future of Microsoft, and asks if we should care about Rich Internet Applications. DHH is the creator of the Ruby on Rails framework, and Martin Fowler is the Chief Scientist at ThoughtWorks, well-known systems architect and Extreme Programming expert.

--- Hansel Minutes 

So delighted to see such a bold and open discussion between passionate developers with completely different backgrounds and ideas.

Some how, this podcast explains a lots of things that were introduced in ASP.NET after 2007. Not suggesting that this has anything to do with that, but probably things must have been already moving in that direction, part of that led to an open discussion like this.

It is totally surprising to see no comments on this podcast. But this is one of the best of conversations out there.

Thursday, July 15, 2010

Trends : .NET 1.1, .NET 2.0, .NET 3.5 and .NET 4.0 Side by Side

Wondering which .NET version is the most popular version? Which .NET version got the most traction in the industry? Which version is the most discussed in the developer circles?

Well, I am not sure if we have any public data that could answer any of those questions, particularly the commercial adoption part. But I looked at trends of search engine traffic and I found that these trends tell a story that is quite consistent with general perception.

Look at the graph below illustrating the search trends of various .NET versions, captured from Google Trends. The story I believe is quite familiar to most .NET developers.

image

I am not at all surprised to see .NET 1.1 still alive even in our searches, many companies are still running on .NET 1.1 and I guess haven’t found a compelling reason (that totally justify their investments) to upgrade.

You can also see from the snapshot below, Visual studio editions follow the suit more or less closely along with respective .NET versions.

image

These graphs may not tell the whole story, but on their own they are quite revealing.

On a related note, you may be interested in some thoughts I captured about yet another .NET version in a post a while back:   How Excited Are Businesses About Yet Another Version Of A .NET Framework ? .

I will leave it up to you to read those graphs and interpret based on how much you know about the whole .NET eco system. Let me know if you are surprised in any way.

Wednesday, July 14, 2010

Basics of Marketing A Startup : Mahesh Murthy @ Proto.in

One of the most intriguing presentations I have ever watched on how to market a startup.

Key take-a-ways (in my own words):

  • Don’t even bother, if you don’t have an insanely great product.
  • Trend means end. Never follow the trend, but try to create your own trend.
  • Charge early. Charge a lot. Your price could be your best marketing strategy.
  • Spend as little money on advertising. Instead spend on developing an insanely great product. The product will speak for itself and your customers will advertise for you. You can never have enough budget to promote a crappy product.
  • If you ever have to give out your product free, build a beautiful and amazing UI to give a much better experience to customer.

I must admit and warn you, if you ever watch this video or read about the presentation either on this blog or elsewhere, take the advice with a pinch of salt. While appear sound (and anecdotal and may have worked for him and his team), the advice is quite narrow and may not work for you.

For instance about advertisements. In his own words, if you are advertising means you have a crappy product. He presented Google and Yahoo on one side with great products and no advertisements while Coke and Pepsi on the other hand that spend a lot on advertisements to promote crappy beverages.  This is a twisted comparison to start with as you can clearly see he is comparing apples and oranges.

The Apple Test

Let us put Apple to test on this theory. Apple is known as one of the most innovative companies with truly insanely great products even before the pervasive iPod and iPhone. And Apple’s ads for iPod, iPhone and Macs are some of the best and most elegant advertisements I have ever seen. And fact of the matter is Apple advertises quite significantly about its products. Does this mean Apple has crappy products? No way!

Your money spent on marketing is as important as building a great product. In many cases, marketing is lot more important than the product itself. In simple words, Marketing takes you to the customer. If your product is better than a competitive product known to that customer, this is very important, known to that customer, you win the customer. Or you loose. So, first step to get to a customer is much more important than proving to the customer that your product is the best product. What is the point of proving you have the best product, if nobody know about product.

And its quite unrealistic to rely on your existing customers to virally spread the greatness of your product. It takes lot of time and if your product is particularly a niche product, time is quite an essence. So you must reach to as many customers as possible in the shortest amount of time through advertisements. And leverage all social media to facilitate spreading the message.

I agree with another key message, charge early and charge a lot. Based on my little experience and learning, I would also add, charge as often as possible.

There are lots of sound bytes in his presentation that may help some  startups to tone their messages. But most important lesson to take away from this presentation is to break free from trends. Even if that trend is his own anecdotal experience about advertising.

Don’t forget to watch it. A strong opinion is always a lot better, as it would consolidate your own understanding of the topic. And this presentation has lots of them. One of the finest.

(Originally posted on 23rd April, 2009)

Tuesday, July 13, 2010

Teaching Online : Surprises and Challenges At First

"Unleash Your Career" is one of our premier sessions where IT professionals come and explore various career opportunities and carve out a blue print to achieve their dreams.

On 10th of April 2010, we had our first ever online version of “Unleash Your Career” program on Supercool School. We did stream some of our sessions live on the internet earlier, but those sessions were held in a class room environment with some students attending those sessions in person. So, This was our first fully ONLINE session.

The program was a great success and we have received lots of great feedback. But not without a few surprises and challenges. To start with, presenting just by sitting in front of a computer with nobody around felt little strange and scary for a while. But we know we would make it through. And we did. We have organized about 90 hours of training so far fully (and just) online and going strong.

It has been quite a ride so far. Thought, we would write about our experiences teaching online as it may help others thinking of teaching online.  Here is our first video talking about three challenges and surprises from the first session.

In the upcoming posts and/or videos, will share how we worked around some of those challenges and learned our way through in organizing online training effectively.

Friday, July 9, 2010

Solar Impulse : WE MADE IT !

First Night Flight Ever By a Solar Plane. After 26 hours, 9 minutes, Solar Impulse Successfully landed at 9.00 (+2 GMT) on 8th of July 2010


Solar Impulse

Tuesday, July 6, 2010

Why We Love Apple Even More Now

How many times in your whole life have you ever seen individuals or organizations admit their mistakes point blank without giving a spin or excuse?

Upon investigation, we were stunned to find that the formula we use to calculate how many bars of signal strength to display is totally wrong. Our formula, in many instances, mistakenly displays 2 more bars than it should for a given signal strength.

-- Letter from Apple regarding iPhone 4

And the letter confirms that gripping iPhone 4 in a specific way could hurt its reception and thought its a design issue of iPhone. But I didn’t know that its the same way for any other mobile phone.

Saturday, July 3, 2010

Razor : New View Engine For ASP.NET MVC Applications

Pretty soon, there will be a new View Engine for ASP.NET MVC Applications called “Razor” that inherently understands and uses C# and VB.NET rather than a new language on its own and says good bye to well known “<% %>” script syntax.

Scott Gu’s blog post introducing the engine has lot more details and looks quite promising and will be available soon. Haven’t tried the new engine yet, but the blog post suggests that it can be used even with ASP.NET Web forms.

Believe nothing, No matter where you rea...

Believe nothing,
No matter where you read it,
Or who has said it,
Not even if I have said it,
Unless it agrees with your own reason
And your own common sense.

Budha

The Perfection of Imperfection

In our time, many of us have been taught to strive for an insane perfection that means nothing. To get wholeness, you must try instead to strive for this kind of perfection, where things that don’t matter are left rough and unimportant, and the things that really matter are given deep attention. This is a perfection that seems imperfect. But it is a far deeper thing.

Christopher Alexander, Renowned Architect and Author of The Pattern Language

Friday, July 2, 2010

Live as if you were to die tomorrow. Lea...

Live as if you were to die tomorrow. Learn as if you were to live forever.

Mahatma Gandhi

Active Learning Tools : In Private Beta Now !!

 Live as if you were to die tomorrow. Learn as if you were to live forever. -Mahatma Gandhi

I am so thrilled to announce that the first Application of Active Learning Tools Suite is now in Private Beta . In next couple of weeks, will roll out a public beta so that everybody can give it a try.

Wondering what is the application is all about, well, I can’t say much about it right now other than sharing this beautiful snapshot of the application.

iump

If I must say in a couple of lines, what this is all about, it is “An application to learn. A platform to share. For those, that loves to learn and inspired to teach”.

Stay tuned for more updates and a chance to try out the public beta.

Embedded Database For ASP.NET Applications

Scott Guthrie announced a couple of days back that Microsoft is going to roll out SQL Server Compact Edition 4, that can be embedded in to ASP.NET Web Applications.

SQL Server Compact Edition is a light weight, toned down version of SQL Server. For instance, compact edition does not support stored procedures. And the size of the database is limited to 4GB, but good enough for a majority of small business applications.

While current SQL Server Compact Edition 3.5 can be embedded into client applications, 3.5 can not run on Web servers.

This is a great news for many small web applications that power small businesses and hobbyists as there is no need to purchase SQL server subscription on hosts any more.

Another important aspect is that with edition SQL Server Compact Edition 4, there is no need to install anything. It is possible to just include the binaries as part of the distribution.

This is really wonderful news.

Read more about the announcement and details at Scott Gu’s blog.