Pages

Friday, December 31, 2010

ASP.NET : Assembly Build Date On Web Pages

In one of our Projects we needed to display the build date of the Web application on a web page.   There are other ways like using a custom build task to generate this information but we just used a small tweak based on the way Assembly Version information is filled in, to extract the build date and time. 

Just replace the build and revision numbers in AssemblyVersion in AssemblyInfo.cs with ‘*’. So VS will fill in the build date (as number of days from 1/1/2000) and time as seconds elapsed from midnight. Now go and extract date and time from this info.

We always do clean and full builds, so this always reflects the build date/time for all pages.  May not be a perfect solution but it serves our purpose.

Sample Code :
image

Friday, November 26, 2010

Dallas : Two Days of Immersive .NET Training

Two days of totally immersive hands-on .NET  training.

Three tracks to fit your profile.

Right here in DFW. ( @Microsoft Campus, Irving TX)

All for $125.

$50 Early bird discount if you signup before 7th Dec, 2010. ( Use Coupon Code: JeffreyPalermo )

Visit the first ever Dallas Day Of Dot Net for more details.

Tuesday, November 23, 2010

Web Designers Vs. Web Developers

Cool infographic illuminating some differences between Web Designers and Web Developers.
free website builder
Source : SixRevisions

Wednesday, November 17, 2010

Flipboard : Tweets to Stunning Magazines On The Fly

What an amazing concept and implementation. Probably the BEST application on iPad. The Flipboard application on the iPad can create a stunning and truly delightful magazine from any Twitter feed (or Facebook for that matter).   It looks at a tweet, access the URL and compose the original article in a beautiful magazine format. It also picks up images from the article and arranges them in various magazine formats.   If the tweet is not referring to an URL, then it nicely composes the tweet like a quote in a magazine.

A little intro to the  Flipboard for iPad.
Introduction to Flipboard for iPad

Take a look at a couple of awesome screenshots of the Magazine created from Twitter feed of @inspions.
inspions_mag_2

inspions_mag_1

Silverlight Apps : “It’s Everybody’s Business” Show

This is pretty cool online show application built  on Silverlight technologies. Silverlight streaming video, excellent typography, really cool art work,  slick animations and tons of relevant content synchronized with the video. 


image

Content all spread out nicely.
image

Future of Silverlight : Fire Starter on 2nd Dec 2010

Here is a great opportunity to learn more about Silverlight. A FULL day FREE Fire Starter Event on Silverlight on 2nd Dec 2010.  Great news is that the event is streamed online so you can watch from anywhere in the world.  Register for the event here.

Saturday, November 13, 2010

Our Blog is Down Due to DDOS Attack

For the last couple of days, you may be experiencing intermittent problems in accessing our blog as the servers hosted with SiteGround are under DDOS attack. 

Hopefully it will be clear soon.

Thursday, November 11, 2010

Microsoft PDC 2010 : Video RSS Feeds

Microsoft’s Developer eco-system is arguably one of the best and probably lot more active than others out there. And the eco-system produces tons of multi-media content. But I always cringe when I don’t see an RSS Feed with Media Enclosures that users can readily subscribe and watch or download instantly.  Its always left to somebody to help us out.

PDC 2010 web site is a nice Silverlight application.  And absolutely no HTML fall back incase somebody doesn’t have a Silverlight plugin installed.  And of course, no RSS Feed (yet) as usual.

Thanks a ton to Greg Duncan for providing a full list of Videos (with all formats available) and associated RSS Feeds that you can readily subscribe.  Visit his blog post and access either the individual list or RSS Feeds of your favorite formats here

If you want to watch those Videos on your iPad or iPhone, try MP4(low) format.

Active Player
If you don’t have a Media Player or Application that can consume those RSS Feeds and instantly playback, take a look at Active Player.  Not only it help you subscribe to RSS Feeds, it also let you take notes, bookmark those videos or even create clips of those videos for sharing or review later.  Here is a snapshot of the Active Player playing a Video from PDC2010 feed.

image

Active Feeds : Create an RSS Feed of your Favorite Videos
I built a small Google App Engine app, called Active Feeds recently to create your own RSS Feed from videos from anywhere on the web and share with the world. I quickly built a set of RSS Feeds for Videos available at ASP.NET to demonstrate.  Next time, if you want to create an RSS Feed with your favorite Videos, check it out. The application needs lots of work to make it more user friendly but as of now is fully functional to use.

Free E-Book : Programming Windows Phone 7

If you are tinkering on developing .NET Applications on Windows Mobile 7, here is a free eBook from Microsoft Press by Charles Petzold, that can get you started.  The book is available in PDF and XPS formats.

Some more free e-Books for .NET Developers moving to VS 2010 here.

Monday, October 18, 2010

Designs Apart : Groupon's Unsubscribe Screen

Groupon's Unsubscribe screen asks you to ‘Punish’ a team member that recommended Email Subscriptions whenever you unsubscribe to those Email notifications.

groupon

Nice, personal, playful and bring you back to interacting with their site, even after you decided to go away. Loved it.

Monday, October 11, 2010

The Oath of Non-Allegiance

I promise not to exclude from consideration any idea based on its source, but to consider ideas across schools and heritages in order to find the ones that best suit the current situation.”

-- The Oath of Non-Allegiance, Alistair Cockburn

Sold. And Signed.

Sunday, October 10, 2010

Kindle vs. iPad : The Wealthier, Educated vs. The Younger ?

As per Nielsen report, Kindle owners are more wealthier, older and educated compared to younger and majorly male  iPad owners.

Source : Nielsen

Windows Live Writer Goes Office Style

Just noticed that with Windows Live Essentials 2011 upgrade, Windows Live Writer also gets Ribbon style interface that became so famous and productive with MS Office applications.

image

If you have been using WLW for a while but haven’t used any MS Office applications that feature ribbon style interface, you are in for a big surprise and little bit of confusion. 

If you are looking for all your Picture effects, they are split into two different sections: borders and effects. Click on Image to make these Picture tools/Format section visible.

Amazon Buy-Back Offer Pricing

If you haven't noticed this "Do The Math" widget already, Amazon appears to be offering a Textbook Buyback store where you can sell your books back to Amazon. Amazon is including the price at which a particular book can be bought back and showing the effective price you may have to pay if you just want to read it once and return to the store.

Amazon Buy back offer

Quite a saver.

Microsoft Office Advertisement in 1990

Wow, its almost 20 years, since the first MS Office suite was released back in 1990 with three applications. Office 2010 is absolutely lot more visually pleasing and equally lot more productive now.  Found this Advertisement that ran in Info World in the 19th November (1990) edition while reading on Wikipedia.

image

Source: Page 50, Info World, 19th November 1990 via Google Books

Of all software applications I worked on, MS Excel is still the application I love the most for its power, functionality and brutal simplicity.  Outlook is still the most used application and its new feature Social connectors looks awesome.

Saturday, October 2, 2010

Are you having fun @ work ?

Most of us are great at what we do in our jobs, either working for some firm or working on our own ventures. But, big question is do we all enjoy what we do and have fun doing it.

One of the criticisms we hear quite often is about the lack of freedom to be creative at enterprises. Its not at all unusual for someone working in an enterprise to say this (we often hear it), but it appears this happens in even smaller businesses too.   37signals seems to be no exception.

It’s interesting to think about how when a project is a hobby, it frees our mind up somehow to show more personality—to be more playful. Then when it’s time for “professional” work everything gets buttoned up and grayed out.

- “Personality vs Professionalism”, Ryan, 37signals

As the organization grows bigger, it appears that it implicitly imposes certain boundaries on free and personal expression towards more ‘professional’ or formal expression, which could  be totally boring at some point.

On a related note, talking about having fun at what we do or enjoy doing it, like my father says, most of the criticism about corporate/work life by entrepreneurs and independent consultants have something to do with ownership. Because ownership changes the whole perspective of looking at things. 

Sunday, September 26, 2010

FREE Pluralsight On-Demand Subscription

This is a wonderful offer. You can get full access to Pluralsight's training library for FREE, for a whole month. Don't miss out. Get your free subscription today from MSDN Subscriptions Special Offers.
Pluralsight is pleased to provide all MSDN Subscribers with a FREE 1-Month Standard Subscription to the entire Pluralsight On-Demand! .NET training library.

-- via Pluralsight Blogs

Normally a one month On-Demand subscription would cost $99. Leverage this great offer and learn like it matters.

Saturday, September 25, 2010

Exploring .NET Framework : What you can do with .NET?

If you are wondering what you can do with .NET, check this out. Its a beautifully designed Silverlight application that provide an overview of full stack of technologies and frameworks for .NET development.

image[20]

Thursday, September 23, 2010

Its not about Technology. Its about Elegant Solutions.

“Mention innovation, and people immediately think, technology. The truth is that business innovation is about value, not gadgetry. But the pace of technological progress sweeps us off our feet and we get all caught up in the gizmo, losing sight of the why behind the what. People don’t want products and services. They want solutions to problems. That’s value. And when it come to solutions, simple is better. Elegant is better still.

Great innovation requires understanding and appreciating the concept of elegance as it relates to solving important problems. Oliver Wendell Holmes once said: I would not give a fig for the simplicity this side of complexity, but I would give my life for the  simplicity on the other side of complexity.

Elegance is the simplicity found on the far side of complexity. An elegant solution is one in which the optimal outcome is achieved with the minimal expenditure of effort and expense.

Elegant solutions embrace an overarching philosophy of doing far more with much less, a notion that has become synonymous with Toyota and is present to this day in all of their operations, from design and engineering to manufacturing and distribution to sales and marketing.

An elegant solution is recognized by its juxtaposition of simplicity and power. The most challenging games have the fewest rules, as do the most dynamic organizations. The most memorable films have a simple message with complex meaning, touching a universal chord while allowing multiple interpretations.

An elegant solution is quite often a single tiny aha! idea that changes everything.  Finally, elegant solutions aren’t obvious, except, of course, in retrospect.”

Excerpt from Elegant Solutions: Breakthrough Thinking the Toyota Way

Contextual.NET : New Training Program For The Experienced

“Understanding a technology is only a starting point. Applying it in the right context is what matters”

This has been our core belief and guiding principle and also one of the distinct values we provide in our Training programs. Most other training programs excel at teaching ‘what is’ and ‘how to use’ technology.   Our Programs go beyond and put participants directly in the context of real world application scenarios and help them choose a strategy, concept or a technique out of all available options and given a set of unique constraints of a project. We teach key techniques and considerations that will help to evaluate an approach, not just from technical point of view, but also from the business value point of view.  So the focus has always been not just to learn but to apply.

However, most of this content like case studies, brainstorming sessions, evaluation techniques and guidelines is  currently deeply integrated with the rest of the curriculum in a course.  Every participant must attend the full program to leverage this knowledge, even though they may be well conversant with the ‘what’ and ‘how to use’ of the technology already. 

Over the last couple of months, we have been extracting these case studies, brainstorming sessions, evaluation techniques and guidelines in order to create a course on its own, to address this need for Experienced developers. Today we are happy to announce the name of this  new program, ‘Contextual .NET’, a program for the experienced .NET Developers.  The course will go live in the first week of October.  I will publish more details of the program: detailed content, duration, location and fee in the next couple of days.

Get ready to get contextual.  Apply technology you already know in a way that really matters, to the business.

Not just technology, but what matters.

Saturday, September 18, 2010

ASP.NET Security Vulnerability And A Work-around

Microsoft issued a security Advisory about a vulnerability in ASP.NET :

Microsoft is investigating a new public report of a vulnerability in ASP.NET. An attacker who exploited this vulnerability could view data, such as the View State, which was encrypted by the target server, or read data from files on the target server, such as web.config. This would allow the attacker to tamper with the contents of the data. By sending back the altered contents to an affected server, the attacker could observe the error codes returned by the server. We are not aware of attacks that try to use the reported vulnerabilities or of customer impact at this time.  

-- Microsoft Security Advisory (2416728)

While the issue is still being investigated, Scott Gu offers a workaround that could help prevent hackers succeed in using the loophole. The work around is to hide specific/detailed error code information to the user and instead display a generic error page.

The blog post also offers a script that you can run on your web sever to identify all applications that need to be patched.  Take a look and patch your applications ASAP.

Monday, August 23, 2010

Hotmail is Better/Faster in Safari on Mac ??

Just watched Velocity 2010: Aladdin Nassar, "Worldwide Inventory of Last-mile Bandwidths & Network Latencies" on Active Player.


Source : Velocity 2010: Aladdin Nassar, "Worldwide Inventory of Last-mile Bandwidths & Network Latencies" from O'Reilly Velocity Conference ( Feed ) via Active Player

It is totally surprising to see that Hotmail is actually better/faster in Safari browser on the Mac than any browser/OS.

image

( Source : PPT )

Velocity 2010: Urs Holzle : How fast Web Can be ?

Just watched Velocity 2010: Urs Holzle on Active Player. It is surprising to see that the average load time of a web page is 4.9 seconds.


Urs Holzle (Google)

Source : Velocity 2010: Urs Holzle from O'Reilly Velocity Conference ( Feed ) via Active Player

TEDTalks : The game layer on top of the world

Just watched Seth Priebatsch: The game layer on top of the world - Seth Priebatsch (2010) on Active Player.

By now, we're used to letting Facebook and Twitter capture our social lives on the web -- building a "social layer" on top of the real world. At TEDxBoston, Seth Priebatsch looks at the next layer in progress: the "game layer," a pervasive net of behavior-steering game dynamics that will reshape education and commerce.

Source : Seth Priebatsch: The game layer on top of the world - Seth Priebatsch (2010) from TEDTalks ( Feed ) via Active Player

TEDTalks: The beauty of data visualization

Just watched David McCandless: The beauty of data visualization - David McCandless (2010) on Active Player.

David McCandless turns complex data sets (like worldwide military spending, media buzz, Facebook status updates) into beautiful, simple diagrams that tease out unseen patterns and connections. Good design, he suggests, is the best way to navigate information glut -- and it may just change the way we see the world.

Source : David McCandless: The beauty of data visualization - David McCandless (2010) from TEDTalks ( Feed ) via Active Player

Thursday, August 19, 2010

Quote : Internet is a medium based on interruption

Google may be helping us to find content faster and better. But Google is definitely changing the way we learn, think, organize and work.

Internet is a medium based on interruption — and it's changing the way people read and process information. We've come to associate the acquisition of wisdom with deep reading and solitary concentration, and there's not much of that to be found online.

-- Nicholas Carr

( Read/Listen to NPR Interview with Nicholas Carr here  Or Download MP3 )

You can read the first article that voiced the concern and later grew to a book called “The Shallows” here: “Is Google Making Us Stupid?”.

The Productivity Paradox

Little experiment that is worth trying, if you haven’t yet : Try blocking access to Internet for your Software development team and see how it would impact the overall productivity and quality of the team.

Wired : The Web Is Dead. Long Live The Internet

Chris Anderson and Wired offer yet another riveting conclusion (sounds like a prediction for some of us) that the Web as we know is dead as we are getting more and more connected on the internet with apps and devices.

You’ve spent the day on the Internet — but not on the Web. And you are not alone.

-- The Web Is Dead. Long Live Internet, Wired

I agree 100%, as it is just a fact for how I consume content on the internet. Almost (99%) everything I do on the internet is done through a custom application (mostly on iPhone and iPad) rather on the web.

Another reason, we want to go with custom apps instead of web applications is that we could probably avoid lots of distraction on the web. Particularly for students, it would matter the most to stay focused and learn better. So this has been primary motivation behind the Active Learning suite.

Active Player lets you enjoy and learn from your favorite videos and podcasts without ever visiting a single web page. If a website doesn’t offer an RSS Feed, you can create your own RSS Feed of any content available on the internet with Active Feeds and help the rest of the world updated without ever visiting the web.

Its not at all a surprise!

For me, this is not a surprise. Back in 2004-2005 the whole world was drumming about going to Web for everything and predicting that apps on desktops will be dead pretty soon (smart phones are still a luxury at that time and apps on mobile devices are not yet born).  I didn’t believe that it would happen. Instead, I believed that if we want the best, then they better be desktop apps but be connected on the net.

What we need is a smart desktop application or a browser plugin or a desktop widget that is totally integrated with an online application, its data storage and an online interface.

It would be better to create the best of both worlds when user interaction need to be essentially rich and needs ability to work offline (as neither online nor offline desktop alone can not take advantage of the situation) and also need all of that an online application offers.

--Why desktop apps will stay, 9/26/2006

With iPhone released in 2007 and App Store in 2008, apps created a thriving eco-system of its own and time for apps has just arrived, again.

And that is what happened. Rather than moving everything to the web to take advantage of the internet, we are in fact bringing everything on the internet to devices. 

When Netflix started offering streaming videos online, we may have watched them on our desktops or laptops. But now more and more people are watching those movies right on their TV sets and more recently started watching on their iPads. In fact, Netflix’s streaming service got lot more popular with their iPad application.

So, welcome back to apps. Rich, lively and intuitive. In most cases, they would be less distracting. And musical, of course. (If you haven’t realized, on the web, there are no sound effects). Be it a desktop app or an app on your Mobile phone or on a special device.

Tuesday, August 17, 2010

Lifecycle of a Wireframe

Just watched Lifecycle of a Wireframe by Nick Finck on Active Player. Wonderful session.

Dive deep into the process used to create wireframes, a key deliverable for user experience designers. Hear about the principles that guide this process, how to create great wireframes (all the way down to the nitty-gritty page or screen level), and how to identify and deliver solutions that meet your clients' business goals and solve their problems. Walk away with a better understanding of what delivering awesome wireframes entails - from methodology, to process, to delivery - and how to do it yourself. If you're an information architect, interaction designer, visual designer, or regular old user experience-curious creature: this one's for you.

Source : Lifecycle of a Wireframe from MIX 2010 ( Feed ) via Active Player

While we can just start with a white paper and pencil to get started with wire-frames, We could also create great wireframes right in MS Power Point itself. You may download this  MS Power Point template for creating wonderful wireframes in Power Point.

Saturday, August 14, 2010

Happy Independence Day, India. Jai Ho.

Twitter : Short URLs, but Readable

While posting through TweetButton, Twitter translates your URL to a short URL, say in this example, http://active-player.inspions.com to http://t.co/0toCfbl.  This is all but normal.

But a nice improvement Twitter did was instead of just posting the short URL in the tweet, it posts a readable URL while still linking to the short URL.

image

It totally cool improvement and makes tweets more readable.

Compare it with this following tweet of this very post, but using Google’s short URL.

image

Wednesday, August 11, 2010

Design Sense : Youtube and highly trained monkeys

Look at this funny error displayed by Youtube when some thing went wrong on the servers. Is Google referring to its developers as monkeys? or am I missing some joke?

image

Trends : C# or VB.NET

There is a heated discussion going on at LinkedIn in .NET People's group about what is the most preferred .NET Programming Language : VB or C#.  I don't want to add fuel to the fire, but just wanted to point out search patterns for C# and VB.NET on Google. As usual, interpretation is left to you.

image_thumb9

Tuesday, August 10, 2010

Trends : ASP.NET MVC Vs Ruby on Rails (RoR)

While discussing about the trend charts of .NET Versions over lunch yesterday, the discussion led to ASP.NET MVC and how does it fare against Ruby On Rails (ROR). Ofcourse, we are just talking about Search Patterns here.  So here is the search Patterns chart between RoR and ASP.NET MVC.

image_thumb14

It is quite a surprising chart though. Try interpreting the chart and let us know your thoughts.

TDD : Quality Software Vs Healthy Software ( Kent Beck )

Listen to this wonderful presentation by Kent Beck on Developer Testing.
Kent Beck is widely recognized as the father of eXtreme Programming and JUnit. Kent's other contributions to software development include patterns for software, and the rediscovery of test-first programming. He is the author/co-author of Extreme Programming Explained: Embrace Change 2nd Edition, Contributing to Eclipse, Test-Driven Development: By Example, Planning Extreme Programming, The Smalltalk Best Practice Patterns, and the JUnit Pocket Guide. He received his B.S. and M.S. in Computer Science from the University of Oregon. Source : Kent Beck on Developer Testing.

Friday, August 6, 2010

Active Player Now Plays YouTube Videos

Go ahead and grab the latest version of the Active Player as the new version now plays YouTube videos too. You can add individual YouTube videos by the URL or you can subscribe to RSS Feeds that contain YouTube videos.

Adding a Single YouTube Video to your Collections

Let me quickly show you how simply you can add a YouTube video to your collections.

On the left side Toolbar,  click on image (Web Icon). It will open up “Add a Media File From Internet” popup.

image

Once you enter the URL, it automatically picks up the type of Video as “Youtube Videos”. Fill in the rest details of the YouTube video and click on “Save”. The application will save the Video details and instantly start playing the video right within the Active Player itself.

image

The player will be automatically resized to fit the size of the window as you resize the Active Player.

Subscribing to YouTube RSS Feeds

Now let us see how quickly you can subscribe to RSS Feed with YouTube Videos. Go to http://www.youtube.com/rssls and grab an RSS feed you are interested in. You can pick up a variety of RSS Feeds like user feeds, featured videos, recently added, videos of a specific tag etc. I will pick up an RSS Feed of Youtube videos with “india” in tags.

Click on RSS Feed icon image on the left side tool bar. It will open up the familiar “Add a Feed” form. In the form, fill in the RSS Feed URL and click on “Add”.

image

Active Player will grab the feed and display details of the feed. Update feed details as you like, add the feed to collections you want and click on “Save”. I have added to “My Favorites” and updated the title a bit.

image

Active Player will load the feed items to your collection. That’s all it takes. Now any time a new video is posted on Youtube with “india” in tags, you are ready to watch the video with a single click. Here we go, I am playing the India’s $35 laptop video right away.

image

Anytime, you would like to play the Youtube video on the original Youtube page, click on image  to go to original Youtube page.

Hope, you will like this. If you haven’t grabbed Active Player, you can install the Player from here. Let us know what you think.

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.

Sunday, June 27, 2010

Google Fonts : Free And Designer Fonts For The Web

Thanks to Google, now any web developer can have stylish designer Fonts on their web pages. As simple as including a <link> tag to a CSS file hosted on Google’s servers.

For a long time, the web has lagged print and even other electronic media in typographic sophistication. To enjoy the visual richness of diverse fonts, webmasters have resorted to workarounds such as baking text into images. Thanks to browser support for web fonts, this is rapidly changing. Web fonts, enabled by the CSS3 @font-face standard, are hosted in the cloud and sent to browsers as needed.

Google has been working with a number of talented font designers to produce a varied collection of high quality open source fonts for the Google Font Directory. With the Google Font API, using these fonts on your web page is almost as easy as using the standard set of so-called “web-safe” fonts that come installed on most computers.

The Google Font API provides a simple, cross-browser method for using any font in the Google Font Directory on your web page. The fonts have all the advantages of normal text: in addition to being richer visually, text styled in web fonts is still searchable, scales crisply when zoomed, and is accessible to users using screen readers

Friday, June 11, 2010

Apple Safari Reader Makes It Easy To Read Content on Web

Apple Safari version 5 makes it easy on your eyes to read content on websites. It smartly figures out what is real content and just shows up that. And you can easily resize content and even print the content. Printing a webpage just with content, makes it my best feature of all. Its sure the best way to read content on the web.

The best way to read on the web.
Safari Reader instantly banishes those blinking and flashing ads that distract you from your online articles. Say you’re browsing your favorite news site. Safari can tell if you’re on a web page with an article. Simply click the Reader icon in the Smart Address Field, and the article — every page of it — instantly appears in a continuous, clutter-free view. Email, print, or zoom with a click using convenient onscreen controls. And if you change the size of the text, Safari remembers it the next time you view an article in Safari Reader. - Apple

image

image

Friday, May 7, 2010

What is the Biggest Challenge For Programmers?

This video was recorded about 6 years back in 2004 on MSDN Channel 9, where Eric Gunnerson was talking about challenges for Programmers then, around 2004. One of the biggest challenge used to be about keeping up with the pace of technology around you. Not surprisingly, we feel, nothing has changed since then. It is still one of the biggest challenges programmer face.

Ask any .NET developer what do they think about .NET 4.0 and a whole range of other new stuff released this year alone, you can feel the overwhelming anxiety. They are more confused and we should say more scared at the pace of .NET platform evolution, than before. Not surprising at all.

Link to the Video here. Don’t forget read comments on that page.

There are a couple of important aspects  in those comments. Here are some excerpts from the comments:

  • It is a good philosophical observation about the way people work when they're abstracted away from semantics, and I think we're seeing now what was originally intended; save your time to worry about the bigger issues.
  • The rate of change is indeed a problem. And it is constantly accelerating.

  • Will development become something you get into after getting your college degree and after 10 years you will have to "retire" to another profession? Or maybe the cost and effort of acquiring the necessary skills will be so high in comparison to the time you have to leverage it, that it won't even be economical - and it will all be outsourced?

Tuesday, May 4, 2010

Teaching Online : Digital Whiteboard Vs. Physical Whiteboard

Adios Amigo, Power point. This was the first thing we did, after we noticed that teaching online isn’t as easy as we thought. Power Point presentations (for that matter any prepared or structured presentations) may be good for certain types of information exchange, but we felt, they are not definitely meant for teaching a technology.

We improvise our training programs almost every minute. So we keep our planning and teaching material to the least possible. This will let us fine tune our programs, examples and illustrations based on audience, time of the day or even based on events that happened that morning. With prepared presentation, we really got bored ourselves talking about the same old thing. And as mentioned earlier, Power point presentations proved to be quite rigid. It was quite difficult to let ideas flow and in more than one way forced us to kiss good bye to improvisation.

And we had a terrible experience using a digital whiteboard in place of a normal, traditional, physical whiteboard, call us old school. Even with a Wacom touch pad. It was a whole lot difficult to draw something on digital white board than we ever thought, an absolute thought breaker. So, we turned to what we are most comfortable with. A physical, traditional and old school white board. And we positioned a Logitech webcam to capture the whiteboard and feed the video on the screen in stead of a power point presentation. We felt real good and now back to our free style and lively training session.

dotnetbootcamp_proj

We tend to believe that we could actually cover more with a free form, in a way that is more relevant and easily understandable than a fixed form presentation.

Call it old school, but teaching is never better.

Teaching Online : What We Have Learnt So Far

“Unleash Your Career”, was our first ever program on Supercool School, and officially our first ‘exclusively online’ program. We did stream some of our sessions live on the internet, but those sessions were held in a class room environment with some students attending those sessions in person. This was our first fully ONLINE session. We were both excited and anxious on how it would go. But it went quite well. We have also received great feedback about the session.

But, who could judge the quality of your performance better than yourself. So, once the session was over we sat for a review. We watched the whole recording ourselves. We immediately noticed it wasn’t up to our own expectations. We watched it twice just to make sure.  It was in fact quite terrible by our own standards. We made a note of few things that we could immediately improve while some needs a bit more practice and getting used to.

Since then, we have been working on our shortcomings and getting better day by day with each session. Though we believe, there is not much you can learn by just reading this (but a whole lot just by actually doing it), we would like to share a few challenges or hurdles in teaching online, that we noticed.

  • No visual cues from participants, left us guessing about how well audience were receiving the presentation.
  • Power point presentations proved to be quite rigid. It was quite difficult to let ideas flow and in more than one way forced us to kiss good bye to improvisation.
  • It was a whole lot difficult to draw something on digital white board than we ever thought, an absolute thought breaker.
  • The only way you can project your passion or enthusiasm in teaching is by projecting all that in your voice. Not an easy task, leave alone effectiveness.
  • You can’t move freely. for that matter, if you don’t have a wireless microphone, you are literally stuck to your chair. You may loose body language, most importantly your gestures that convey so much meaning in a class room environment.

In later posts, we will share how a few changes we made in the setup have been helping us to do it much better than our first session and getting much better session by session.

Saturday, April 10, 2010

How Excited Are Businesses About Yet Another Version Of A .NET Framework ?

Just in a couple of days (on 12th, April 2010 precisely) Visual Studio 2010 will be released along with .NET 4.0.  While most of the .NET developers are excited to see an improved version of .NET framework and itching to try the latest and greatest of all, it is totally a different ball game for businesses, for they prefer  and wish a stable framework that doesn’t change, well, forever. As every new version comes with a new set of challenges and often hit bottom lines pretty hard.

A new version is always quite an expensive proposition

Its not at all a surprising fact that even today most businesses are running their business applications on .NET 1.1 or even some still run on classic ASP. Because, more often than not, upgrading to a new version proves to be quite expensive and doesn’t offer enough benefits or improvements that justify the cost of upgrade.

  • A new version comes about once in a year. If not a new version altogether, a new SP that fixes a whole bunch of bugs and security issues. The frequency of these updates alone is a big issue to manage.
  • Though new versions are often faster than earlier versions, you may have to upgrade your hardware resources to really squeeze enough juice out of those new versions to make sense.
  • Even with the possibility of running multiple versions side-by-side, upgrading to a new version is never easy for businesses, as often new versions are not completely backward compatible.
  • If there are 3rd party libraries are used in those applications, businesses may have to upgrade those 3rd party libraries as well. New versions, often bundled with a laundry list of new features (mostly not useful at all) comes with a price as well.
  • Though, .NET framework itself supports side-by-side execution, more often that not, running different versions of tools is a nightmare. Since not every application can be migrated at once, most enterprises must support co-existence of multiple versions of these tool sets for a long time, living through one night mare by another.
  • If Businesses do not upgrade, then there is an issue of support. For instance, Microsoft and 3rd Party vendors may cede support to older versions and force to upgrade. And, it may not be easy and good on account books to find developers who can support older versions.

On the other side of the coin

Its true that a new version is may be a better one than the earlier. Some times a faster, more secure and significantly improved. Some times, a new version even enable new business models, opportunities and much better ways to solve business problems. The truth of the matter is though, most businesses have already developed systems with existing toolset itself to leverage new market opportunities.

And its not just an issue with Microsoft, .NET Framework or Visual Studio. Upgrading any software is an issue and hit bottom lines for most businesses.  Its even the same story in the consumer space. For instance, iPhone OS 4.0 will not be supported on the first generation 2G iPhone, forcing to upgrade to a newer version. Everybody is well aware of the story of Windows Vista.

It will be a tough decision for stake holders to make a call to upgrade. But as we all know, it must be done at some point. I wish, we will have a stable release, for at least 3-4 years. No SPs, No new versions of frameworks, tools or any other component.

But we all know quite well, how it works.

Friday, April 9, 2010

Design Sense : Critical Elements of Landing Pages

We spend a significant amount of time and money in marketing a web site to reach the target audience. We take extra care in designing our marketing brochures, advertisements and campaigns, that translate our ideas, products and solutions to customers.

But what about the website landing page, the first page that customer or visitor get to see when he/she visits the web site. First impression is the best impression. Do you think your website makes the same first impression you wish it would? Does your website speak the same language? Does your website can keep the conversation going?

Here is a wonderful video by Gregg Blanchard explaining three critical elements of Website landing pages.

If you think first impression is important, landing Page is the ‘first impression’ of your website. So make sure, you make your first impression the best impression.

Previously on Design Sense :

Thursday, April 8, 2010

Accept OpenID In Your ASP.NET Web Application

If you would like to accept OpenId in your ASP.NET Web application or make your ASP.NET Application act like a openId provider, consider using the open source dotnetOpenAuth library before developing your own. The library supports off the shelf OpenID, oAuth and InfoCards.

Check out : http://www.dotnetopenauth.net/ 

The library even have Visual Studio Project templates to build a simple web app or an MVC application. In the next few days, we will include a step by step tutorial on using dotnetopenAuth library to build ASP.NET MVC2 Applications. Please stay tuned.

Design Sense : Avoiding Unintended Expectations In Writing

Our recent experiences with Supercool School have reminded us some of the key aspects of web application design, that we normally take for granted otherwise. For instance, clarity of copy writing on our web applications. Are our messages clear and conveying what we really intend to? Are our messages clearly translating our vision and ideas? Are our messages guiding the user to interact with the application naturally?

Some times, if we fail to think through the mental model of real users, it may result in unintended expectations on our applications. For example, when a new user try to signup for an account at  Supercool School, this particular screen is displayed where the user is offered a choice of signing up for a Professional Account or start a Free school. Look at the screen and try to figure out how many users a Free school can have?

image_thumb[2]

Based on the text, there is only ONE limit on free school : you can host only 15 classes in a given month, compared to unlimited classes in the Professional account. Omitting number of users for a free school, led us to think  there is no limit on users in free School version.

What do you think? 

We came to know later that it allows only a maximum of 15 members in a free school. They might have mentioned some where, but we didn’t notice until we hear complaints from users that they couldn’t signup.

Go back and have a look at your web site or application. Make sure, those messages really translate what you intended. Try to think like a user. Or even better conduct a few usability tests with real users. See, if they can use the application just the way you want them to use. Then try tweaking your flow, messages and everything on your site until a new user can navigate your application and get things done as they are supposed to be.