Learning with Pluralsight videos gets even better with course assesments

Learning with Pluralsight videos gets even better with course assesments


If you are Pluralsight subscriber, you can try out the course assesment beta feature to test yourself on what you've learnt. Pluralsight is currently seeking feedback on the Q & A and intends to make this feature available in the future along with the course with score tracking after community vetting.

For those fond of quizzies, the current limitation of allowing only 10 beta test assessments every 30-days may be a little stifling.

I hope Pluralsight  also start a Forums section soon to let its users discuss topics covered in the courses.
Read More
Free JavaScript & jQuery learning resources

Free JavaScript & jQuery learning resources

Read More

Learn IIS 7 - IIS 7.x's Configuration System


Notes from Scott Forsyth's session "IIS 7.x's Configuration System" in his 52-week video lesson series  -

- IIS 7.x drastically different from IIS 6

- IIS 6 - IIS path (Metabase.xml) & .NET path (machine.config, web.config (root, site, app))

- Metabase.xml - app pools, site config, mime types, compression, various settings like default document

- 2 paths have merged & .NET becomes a first class citizen in IIS 7.x


- IIS 7.x - Distributed & Delegated Config system

- applicationHost.config (kind of replaces metabase.xml, guts of IIS) & administration.config (IIS Manager related settings) host most of the settings of IIS. Both files are in the %windir%\System32\inetsrv\config\ folder

- lot of settings related to not just .NET but also IIS config settings can live in the web.config or app web.config files

- Settings managed by IIS admin can also be managed by the development team as well.

- Feature Delegation - what settings are allowed to be applied in the config files vs. what has to be set at the global level. Every setting or config section has a decision on whether it is Read/Write- can't be delegated or whether it's read-only.

+ Benefits of Distributed Config
- Developers have more control of IIS settings - delegated management
- IIS configuration saved in source control
- Easier to maintain when migrating
- Websites packaged for consistent deployments - some settings may not work as they are not delegated

+ Gotcha's of Distributed Config
- Easy to overwrite existing settings
- AppDomain recycle
- Configuration is "all over the place" (aplicationHost.config, web.config files of site)
- Not replicated with shared config

- Lines are blurred between IIS & ASP.NET

Related: Getting Started with IIS Manager
Read More
Older ASP.NET Starter Kits

Older ASP.NET Starter Kits

The current ASP.NET Starter Kits page does not show older Starter Kits built on ASP.NET 2.0 & links to them that you may find in old articles may be broken. When I have to refer these useful oldies to folks in need, I keep going back to the search engine. Rather than waste time searching, I thought I'll place them all at one place. So here goes -

Read More
Why formatting of a ASP.NET page looks different when rendered through VWD & IIS

Why formatting of a ASP.NET page looks different when rendered through VWD & IIS

A puzzled ASP.NET developer asked on the ASP.NET Forums why the formatting of the same ASP.NET page looked different in Internet Explorer when rendered by Visual Web Developer & IIS seperately. When the entire source code is the same, why should they look different?

Dave Sussman has this insightful answer -
It's possible the application is running on IIS under a v4 application pool, meaning it will be run as though it were a v4 application, so the control rendering might be different. Two things to do:


1. On IIS machine, select the application and from the Actions tab on the right, select "Basic Settings ...". From the dialog that pops up, select the appropriate application pool (Classic .NET AppPool for an ASP.NET 2.0 application).


or


2. In Web.Config, in the <system.web> section add:


<pages controlRenderingCompatibilityVersion="3.5" />


That will ensure the controls are rendered as though the application was ASP.NET 3.5, so should be consistent on both machines.

A standard ASP.NET control may render a different kind of source depending on which Framework it targets.  For instance, ASP.NET 4 brings the following major rendering changes:

  • The Image and ImageButton controls no longer render a border="0" attribute.
  • The BaseValidator class and validation controls that derive from it no longer render red text by default.
  • The HtmlForm control does not render a name attribute.
  • The Table control no longer renders a border="0" attribute.
  • Controls that are not designed for user input (for example, the Label control) no longer render the disabled="disabled" attribute if their Enabled property is set to false (or if they inherit this setting from a container control).

Also see:

Read More

HTML5 at work

I plan to look out for & compile interesting, practical, real-world examples of HTML5 features that popular websites have started implementing. I hope all the browser manufacturers quickly agree on a common minimum set of HTML5 features & get HTML5 rolling.

* Google Docs now supports uploading an entire folder.

There is a nice explanation on StackOverflow about how this is achieved  by setting up an attribute "webkitdirectory" on a file input element.

Unfortunately as this attribute is proprietary, this feature doesn't work on all browsers.

* The Windows Live team recently released a faster new version of SkyDrive that incorporates HTML5 features.
"We’re using HTML5 for CSS animations, reflow animations and other features. We’re using local storage for various parts of our caching support. We’ve also worked on making our HTML more standards compliant, so that everything you see works in as many modern browsers as possible."

HTML5 versions of Hotmail & Bing are believed to be on the cards

6 of the world's top 10 websites currently use LocalStorage on the mobile while Bing & Google use it on the desktop browser as well. Twitter uses App cache.

(to be continued....)
Read More

Discover public transport in India with Google Transit

I first tried Google Transit in Seattle in 2008 for help with bus routes and wished it came to India as well. I was happy when it started covering local trains of the Hyderabad Multi Modal Transit System (MMTS) in 2010(it seems to discontinued now) and then wished it worked with bus routes as well. Being a believer in public transport as a way to protect the environment, I was glad to find out that Google Transit provides help with bus routes in Hyderabad, Bangalore, Chennai, Mumbai, Delhi.

It'll be great if they also show the cost & distance involved in different bus routes and bus types (buses in Bangalore & Hyderabad have multiple types of services with varying ticket costs)
Read More

Adobe BrowserLab vs Browsershots.org: online services for cross browser testing

Adobe BrowserLab is an online cross browser testing  service (free till April 12, 2012) that has more features than Browsershots.org, the other free online cross browser testing service. However, BrowserLab currently covers a smaller set of browsers & platforms than Browsershots -
  • Chrome 10 - Windows
  • Chrome 11 - Windows
  • Firefox 3.0  - OS X
  • Firefox 3.0 - Windows
  • Firefox 3.6 - OS X
  • Firefox 3.6 - Windows
  • Firefox 4.0 - Windows
  • Internet Explorer  - Windows
  • Internet Explorer  - Windows
  • Internet Explorer  - Windows
  • Internet Explorer  - Windows
  • Safari 4.0 - OS X
  • Safari 5.0 - OS X
Unlike Browsershots, BrowserLab requires registration. The screenshots are shown using Flash so Flash Player plugin 10.0.0 or higher is required and Javascript needs to be enabled in the browser.

Opening screen showing BrowserLab generate screenshots for a chosen Browser Set
Some unique features of BrowserLab:
- Preview full screenshots with multiple view options and customizable test settings.
- Rulers & Guides - pinpoint the exact location of any area within a screenshot.
- Adjust screen shot alignment - to compare specific page elements to each other, you can adjust the alignment of screen shots individually. This helps you account for shifts caused by different browsers, which align page content differently
- Screenshot delay - you can preview content that needs time to generate by pausing the rendering of a screenshot by up to 10 seconds. This lets you capture Ajax data, interface animations that occur after the page loads, and Flash movies after their initial loading process.
- BrowserLab for Firebug add-on - lets you preview temporary changes you've made to a page with Firebug. BrowserLab can be launched directly from Firefox to show how the page looks in Firefox & other browsers.
- Active Links in screenshots - Links in screenshots can be activated by holding down the Control or Command keys & clicking. BrowserLab will open the link & generate a screenshot, replacing the current screenshot.

Related:
HOW TO make web pages "cross browser"
Read More

Overview of Pluralsight course "A Beginner's Guide to the Microsoft Web Platform"

This video course by Michael Palermo is useful for beginners to ASP.NET and ASP.NET developers who are yet to try MVC & WebPages. The seasoned presenter explains the difference between Web Forms, MVC and WebPages. He demonstrates how to create a new site, a new page, a simple input form, a data-driven list with each of the models.

Some notes from the video -
- A modern definition of ASP.NET – "Microsoft’s family of technologies to enable web development"; includes Web Forms, MVC, Web Page models
- The Web Page model is a page-centric execution model, similar to PHP. Markup and code are both contained in the page itself, with helpers being leveraged to keep the code succinct.
- If you have VS 2010 SP1, you should be able to see MVC3 options
- A WebPage can be built with Web Matrix or VS 2010
- Site built with WebMatrix can be opened through VS
- WebPage has the extension .cshtml. Works even without extension in the URL.
- CASE methodology – Copy Always Steal Everything. Bazinga!

I found that the presenter speaks slower than most other Pluralsight instructors and this is actually good as non-native English speakers can follow it more easily.

Trivia: For fun, I increased the Playback speed  in the Windows Media Player (this option is available when you open the site in Internet Explorer) and was able to complete watching the video in slightly lesser time than the actual duration of 1 hour 47 minutes.

I like the fact the Pluralsight specifies the overall duration as well as duration of individual sections of a course as it helps in planning how you would want to watch a long course.
Read More

You can now use an actual image as Google Image search argument

There are times when you just have a picture (of a monument, person etc) but can't frame a keyword for Google to search on.

The search box on Google Images now sports a camera icon on the text box as an indicator that you can use to either upload an image from your computer (by just dragging & dropping with browsers supporting HTML5) or specify an url of an image that you want more info on. This image is then used as an search argument and the web is searched.

This kind of visual search is already available with the Google Goggles mobile app. Although the results are not perfect in all cases, this is a remarkable development in terms of bringing complex computer science topics to practical use.
Read More

HOW TO check what HTML5 features a browser supports

Now that I'm getting my feet wet in HTML5, I thought I should spend more time with features that are supported by all popular browsers rather than digging into HTML5 features that are implemented by only one or two browsers.
Table showing browser support for HTML5 Input types from W3Schools.com
I noticed a nice demo by Craig Shoemaker in the Pluralsight HTML5 Fundamentals course on feature detection with Modernizr that lists all supported features. Not finding any readymade sample similar to his script after some googling and lazy to write it on my own, I tweeted him to ask if could share his code.

I appreciate that he did and I got it working locally after tweaking the CSS a bit to ignore a few images that he had used in his slightly old (it uses Modernizr 1.6) original code. I hope to work on it further while I learn more about HTML5 & Modernizr.

Meanwhile, here is the HTML5 Feature detection script using Modernizr 1.6 (red indicates a feature is 'not supported' while green means 'supported')

Update: haz.io & the Modernizr Test Suite  show a much larger list of HTML5 features supported by a browser opening their test page.

Browserscope compares all browsers on supported HTML5 features in a single page. I wish the first row & column of the table there were frozen for better readability.
Read More

Online database of medicines used in India - MedGuideIndia.com

No matter how big or small your ailment, you should never try to play doctor. However, there may be times when you want to verify details of medicines you are consuming. Typically, Indian doctors scribble names of medicines that are almost illegible but surprisingly understandable by the pharmacist.

MedGuideIndia lets you check details of commonly used drugs in India by their brand name. Their search feature also shows brand names for a specified generic drug and you can find out which manufacturers sell that drug and at what cost. Composition of brands and comparative prices of various brands of same composition are shown as well.

This website, aimed mainly at medical professionals, is not an alternative for an actual doctor but it helps consumers to be well-informed.
Read More

HOW TO see how your web pages are ranking in realtime

Google tells us not to focus on PageRank or “PR”, the famous part of their ranking algorithm, as a metric for success. It acknowledges that PageRank being a number is easier to measure than relevance which is what actually counts. Google removed PageRank distribution data from Webmaster Tools but if you still want to see in real-time how your web pages are faring, use StatCounter analytics.

Note that the Search Rankings vary when searches are conducted from different parts of the world and at different times. The ranking you see displayed in your StatCounter account is the actual rank position that your visitor saw (for your web page) from the location they are in, at the time they did the search.


Currently, this information is only available for some Google searches so you will not see a ranking beside every Google query or beside non-Google queries.


In Google AJAX SERPs (Search Engine Results Page), when you click on a link Google redirects you to the search page and also passes some referrer information that analytics providers can use to track rank. For example, the cd= parameter contains the exact ranking position of the search listing within the SERP -
http://www.google.co.uk/search?sa=t&source=web&cd=4&ved=0CEk.... [trimmed]

This is possibly the method that StatCounter uses to identify the rank of a page.

Related:
Comparison of free Web Analytics tools
Read More

Learn IIS7 with Scott Forsyth's 52-week video lesson series


IIS expert Scott Forsyth has been running a video lesson series where he shares best practices, technical processes, tools of the trade, and occasional stories from working in the trenches. 25 of the planned 52 weekly, roughly 10 minute sessions are hosted on YouTube and currently available for free viewing. I checked out the "AppDomain - What it is and Why it's Important" & "IIS Virtual Directory vs. Application" sessions & found them very informative. I've jotted down some material from there & I'll add more as I finish watching the rest -

* When to use Virtual Directory vs Application -
- Use Virtual Directory when you want to point to a different physical path, when you want to share a physical folder across sites.
+ Use Application when you want:
- New application root or
- AppDomain isolation or
- Subfolder to be in new application pool (2 folders of same site targetting different .NET Framework versions can be set to different app pools)

- A vDir pointing to a single physical path can be shared by 2 sites. While accessing files under that shared folder, it appears as if this vDir appears physically under it.

+ 4 types of IIS Folders (note the icons in the image)
- Normal Folder
- Application Folder - use "Convert to Application" in the context menu. Lets you change Application pool but not physical path
- vDir only Folder - shares same app domain & app pool as root site
- vDir with Application - vDir with seperate application boundary

- On removing an Application, physical path remains but references are lost.

- AppDomains are a boundary set up by ASP.NET; they are controlled by IIS

- Usually there is a 1:1 mapping between app & app pool

+ AppDomain recycle consequences -
- First hit perf penalty when
- Any info in that appdomain (like inproc sessions) is lost

+ AppDomain Recycle causes -
- App Pool Recycle/server reset/reboot
- Touching or modifying web.config
- Touching anything in an application folder (bin folder or any of the 7 ASP.NET special folders - App_Code etc)
- Adding/deleting folders
- IIS settings that affect app pool
- IIS settings that affect web.config (change to Default Document in IIS causes app recycle as this file is referenced in web.config)
- Root machine.config & web.config changes (but modifying applicationHost.config will have no impact)
- Some failures at AppPool or AppDomain level
Read More
India IT - facts, numbers & trivia

India IT - facts, numbers & trivia

Numbers tell a story. Interesting tidbits about India IT from the newspapers (work in progress) -
  • Tata Consultancy Services has emerged as the largest recruiter over the last year, followed by Infosys and Wipro Technologies. Cognizant Technology Solutions India Pvt. Ltd. is ranked four in the list, while HCL Technologies Ltd came fifth. The other players who found place in the top 10 list are: Mphasis Ltd, Genpact Ltd, Capgemini India Pvt Ltd, Tech Mahindra Ltd, Aegis Ltd. .....women as a percentage of total new hires have reached more than 40 per cent over the last 3 years - NASSCOM rankings of top 20 IT-BPO employers. CIOL, 28-Jul-2011
  • Onshore software services (often derogatorily called 'body shopping') account for close to 45% of TCS' $8-billion revenues - ET, 1-Jul-2011
  • Telecom Regulatory Authority of India reported that at the end of March (2011) the country had just 8.8m broadband connections. By contrast, it boasts some 812m mobile subscribers. - Economist, 28-Jun-2011
  • "..cloud-services form 3 per cent of Infosys' income, and over 10 per cent if cloud- products are included."  - 25-Jun-2011
  • TCS's headcount stood at 1,60,429 as on April 1, 2010, which increased to 1,98,614 as on March 31 this year. - ET, 21-Jun-2011
  • Infosys had 130,820 employees during 2010-2011, from 88 nationalities. Of this, the number of software professionals stood at 123,811, while the rest were sales and support staff....the average age of its employees in 2011 stood at 27 years. The trend is similar with other IT service providers, including Wipro and TCS. - BS, 4-Jun-2011
  • Tata Consultancy Services is the largest private sector employer in the country. It had 1,63,700 employees as on June 30. But guess who's number 2? ....The fact that IBM has over one lakh people on its rolls (global workforce is about 400,000) in this country is one of India Inc's best-kept secrets.  ToI, 18-Aug-2010
  • Wipro .. "the first company in the world to achieve a level 5 CMM certification" ET, 8-May-2010
Also see: Indian software product start-ups that are making news
Read More