Pages

Showing posts with label Web Applications. Show all posts
Showing posts with label Web Applications. Show all posts

Tuesday, September 13, 2011

EnhanceJS : Progressive Enhancement For CSS and JS

Great toolkit for progressive enhancement for CSS and JavaScript.

EnhanceJS, a JavaScript framework designed specifically to deliver a usable experience to the widest possible audience, by testing the browser to determine whether it is capable of correctly supporting a range of essential CSS and JavaScript properties, and delivering features only to those that pass the test. -- EnhanceJS

Related :  Modernizr for HTML5 and CSS3.

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

Wednesday, November 17, 2010

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.

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.

Sunday, October 10, 2010

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.

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.

Thursday, August 19, 2010

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

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

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.

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.

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.

Friday, July 2, 2010

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.

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.