Windows Azure CDN locations

I asked on the WebApps StackExchange forum a few months ago out of curiosity, if it is possible to know where a Content Delivery Network's servers are located?

The unanimous answer was that it is not possible to know unless the CDN vendor gives it out. Both the respondents to the question also mentioned that big CDNs don't reveal exact details.

I was therefore pleasantly surprised when I recently came across a Windows Azure Team blog post that lists all of Windows Azure CDN's (currently) 24 physical nodes.
Read More

Book Review - Software Estimation: Demystifying the Black Art

Software Estimation: Demystifying the Black Art by Steve McConnell is a book that meets my definition of a good technical book.

In my opinion, Estimation is an underrated subject. A lack of understanding of this topic among team members (not just the PM) can negatively impact the success of the project. This is because the Project Manager has to draw on the judgement & experience of the software development team as well. This book is written for developers, leads, testers, and managers who need to create estimates occasionally as one of their many job responsibilities. It gently guides the reader through the esoteric art of software estimation with lots of practical real-world advice.

Within the 300+ pages of the book spread across 23 chapters, the author explains 32 Estimation techniques graded according by these factors of applicability:

  1. What's estimated (Size, Effort, Schedule, Cost, Features) 
  2. Size of project (Small, Medium, Large)
  3. Development stage (Early, Middle, Late), 
  4. Whether the development style is iterative, sequential, or both 
  5. Accuracy possible (Low, Medium, High)

The well-researched content is interspersed with 118 tips, numerous facts drawn from other authoritative books on software estimation and interesting statistics. Tip #30 contains the mantra of estimation: Count if at all possible. Compute when you can't count. Use judgment alone only as a last resort. 

Tip #17 advices: Include time in your estimates for stated requirements, implied requirements, and nonfunctional requirements—that is, all requirements. Nothing can be built for free, and your estimates shouldn't imply that it can. He lists the nonfunctional requirements that also need to be taken care of -

  1. Accuracy
  2. Interoperability
  3. Modifiability
  4. Performance
  5. Portability
  6. Reliability
  7. Responsiveness
  8. Reusability
  9. Scalability
  10. Security
  11. Survivability
  12. Usability

As with his other books, the author sets clear expectations. He explicitly states where the estimation techniques mentioned in the book will not be useful -
This book is not about how to estimate the very largest projects—more than 1 million lines of code, or more than 100 staff years.
These techniques will not produce estimates that are accurate to within ±5%, but they will reduce estimation error to about 25% or less, which turns out to be about as useful as most projects need, anyway. 

He informs in the beginning that this book draws from both the art and science of software estimation, but its focus is on software estimation as an art. This book avoids deep math and emphasizes relatively simple practices. Steve McConnell plans to publish a companion volume in the future that will deal with the Science of Estimation and cover more mathematically intensive estimation approaches.

I feel this book is essential reading for anyone who is into software development & highly recommend it.

Related:

Read More
HOW TO open your favorite set of websites in new browser tabs at once

HOW TO open your favorite set of websites in new browser tabs at once

Ignore this post if you live on the web & rarely turn off your computer.

On the other hand, if you have a favorite set of websites that you open everyday, you can automate the process of starting these sites in multiple tabs within a single Firefox window by using a Windows Batch file. To create such a Windows Batch file, open Notepad or any text editor & paste these lines -
@echo off
start firefox.exe "stackoverflow.com" "twitter.com" 


Change the URLs in the example to your own favorites & save the file with a valid name and a .bat extension.

Related: Setting Browser Tabs to Open at Start-Up
Read More
What makes a good technical book 'good'?

What makes a good technical book 'good'?

This question came up StackOverflow.

I have an unenviable target of reading at least one technical book a month. I have enjoyed reading dozens of them. Here's what I think are the ingredients of the secret sauce that makes technical books great -
  1. They are written in plain-English
  2. They have a no-fluff, straight-forward tone & a conversational style
  3. They identify the audience in the beginning & meet the expectations they set
  4. They have some kind of takeaways you can benefit from - practical examples, re-usable code samples.
  5. Their content is well-organized & structured.
  6. Attention is paid to technical accuracy, grammar, layout & fonts used
  7. Illustrations, backgrounders & infoboxes are provided where required & important information is highlighted.
Read More

Search for keywords in videos with Microsoft Research Audio Video Indexing System (MAVIS)

If you were searching for videos that reference the Razor (view engine) from among Microsoft videos from events like PDC, MIX 2010, Channel 9, MAVIS can get you results with direct links to the precise moment that word was uttered in a video.


This feature has also been implemented on  the U.S. Department of Energy's videos at ScienceCinema.

MAVIS uses the Windows Azure cloud which affords massive scale & on demand computing capability to crunch through the videos.

The Microsoft Research Audio Video Indexing System (MAVIS) is a set of software components that use speech recognition technology to enable searching of digitized spoken content, whether they are from meetings, conference calls, voice mails, presentations, online lectures, or even Internet video.

Did you know, speech-recognition technology is already integrated in a number of Microsoft products, such as Windows 7, TellMe.com, Exchange 2010, and Office OneNote?

Using integrated speech-recognition technology in the Windows 7 operating system, users can dictate into applications like Microsoft Word, or use speech to interact with their Windows system. The TellMe.com service allows mobile users to get directory services using speech while on the go. Exchange 2010 now provides a rough transcript of incoming voicemails and in Office OneNote, users can search their speech recordings using keywords.

Also see:
Sound Search Results
Read More
How AI touches our everyday lives

How AI touches our everyday lives

In the NewYork Post article "The machine age", Peter Norvig traces the progress of Artificial Intelligence over the years. He cites interesting examples of how we are already using applications that utilize AI -

* Spam filtering programs using A.I. learning and classification techniques correctly identify over 99.9% of the 200 billion spam e-mails sent each day. 
* Your Android smartphone can recognize your speech and transcribe it into words quite accurately, despite your “New Yawk” accent and the honking cabby passing by on the street behind you. 
* A.I. chess programs play at the level of top human champions (defeating the world champion 40 years after Simon’s prediction, not 10). IBM’s Watson computer will eagerly take on “Jeopardy!” champs starting tomorrow. In checkers, an A.I. program has achieved perfection — it can play flawlessly and it proved for the first time that checkers always results in a draw if both sides play correctly. 
* With Google’s machine translation system, you type (or speak) a sentence in any of 58 languages and see (or hear) a translation into your desired language. The automated learning techniques in this project allow a new language to be added in two weeks of work rather than the two decades it previously took. 
* Your Microsoft Kinect can recognize human motion and gestures well enough that you don’t need a video game controller anymore. 
* Google’s prototype self-driving cars cruised a continuous 1,000 miles of winding highways and city streets without a single intervention from their human drivers. But autonomous vehicles are nothing new — unmanned drone aircraft have been used throughout the last decade in war zones, and modern airline autopilots are perfectly capable of flying a plane from liftoff to landing (but the human pilots usually prefer to do some work themselves). 
* A.I. systems approve credit card transactions, insurance applications and claims and loan applications, while detecting fraud and calculating risk; they route billions of phone calls and Internet connections while relieving traffic jams and detecting suspicious behavior; they make stock trades better than humans (unfortunately we learned in 2008 that that wasn’t a high enough standard).
Read More

Does office space affect software development efficiency?

Steve McConnell identified "Noisy, crowded offices" as a "classic mistake" in software development, in his book Rapid Development. This finding has been substantiated by the results of multiple surveys. However, nothing much seems to be done about it.

A recent CNN report reveals that the average (American) office space has been shrinking over the past 20 years.
In 1994, the average office worker had 90 square feet of office space, but the area had been whittled down to 75 square feet in 2010, according to the International Facility Management Association, a professional network for the facility management industry.
Chart from the article in CNN. Click to enlarge
An interesting tidbit from that article -
For two years in a row, Fortune magazine has named SAS, a business intelligence software company in North Carolina, the No. 1 place to work. Company officials say they give almost all their employees private offices, which they say contributes to their success.
Read More
India - Know your elected government representatives

India - Know your elected government representatives

Who says India is a poor country? Did you know 315 of the 545 MPs (Members of Parliament) in the current Lok Sabha or Lower House of Parliament are crorepatis (have assets greater than 10 million Indian rupees)? Out of 543 MPs (Lok Sabha), 153 are facing criminal charges. Fifty-four are facing charges of very serious nature, including murder. Who says having 35 criminal cases filed against an individual can stop that person from becoming a law-maker?


The Association for Democratic Reforms' National Election Watch is a web-based application that has collated details about India's elected government representatives, both at the state & national level, from their own sworn affidavits. It lists details like their constituency, Party, involvement (if any) in criminal cases, education, assets and liabilities. Find out how the representative for your region stacks up against the rest and be better informed while voting at the next election.

This website is the winner of the 2011 NASSCOM Social Innovation Honours in the ICT led Innovation by Multi-stakeholder Partnerships category.

Also see:
BigTech/NASSCOM Foundation offers NGOs software titles at huge discounts
Indian software product start-ups that are making news
Judicial Orders that changed the nation 
When grassroots innovation goes global
Read More

China Bing Dictionary makes learning English fun

There are some odd words in English, especially those originating from other languages, that are not pronounced the way they are written (wonder if there is a word for these kind of words). Mispronouncing such words could make you a laughing stock.

Unlike some other online dictionaries that just read out the pronunciation, Bing Dictionary for China also has karaoke-style videos for some 10 million sample sentences.

According to PCWorld, Matt Scott, the project lead for Bing Dictionary is the model for the videos currently online. And no, he has not actually spoken all those 10 million sample sentences

"Rather than repeatedly tape a person speaking the different sample sentences over and over again, Microsoft has found a way to synthesize the sounds and artificially mouth the facial movements of the model speaking in the videos.


It works by capturing shots of all the different pronunciations the model can express in a five-hour process that maps the person's lips, Scott said. The technology then finds the best match between the lips and what word the programmers want the model to say, creating an accurate lip synch. The end result is a video of the model mouthing the words of the sample sentence while a computerized voice reads it out loud."

I hope Bing brings this feature to other countries as well.

Also see:
HOW TO pronounce foreign names
WordWeb - the desktop English teacher
Read More

Can’t proceed beyond Database Configuration step in PrestaShop Installation Wizard?

PrestaShop is an open-source e-commerce solution that is built with PHP. It is reportedly used by more than 50,000 webshops throughout the world. Like any PHP app, it runs under both Apache & IIS.

While trying PrestaShop version 1.3.6 out, I ran into a few issues. After spending some time googling for an answer, I decided to do some experiments of my own and lo and behold, they worked! Let me tell you how it went -

A simple way to install it on a Windows PC with IIS is to extract the contents of the PrestaShop app that's packaged as a compressed file into the wwwroot folder of Inetpub. Now type this URL in your browser address bar to start the Installer Wizard - http://localhost/prestashop/install/index.php

The first hurdle came at the second step of the wizard, which is System Compatibility. The Wizard complained that my configuration was invalid as GD Library wasn't installed.
Click to enlarge all images

To correct this, I went to the Add or Remove Programs option in Control Panel  (in Windows XP) & ...


..choose the Change option for the PHP program to install the GD Library Extension that I had not selected while installing PHP originally.


After the GD Library was installed, I could proceed to step three.

The second hurdle appeared at the next step, "System configuration". The installation guide tells you to create a database for your store before you start the Wizard. During this step, the Wizard populates the blank database with data. So, prior to reaching this step  I created a blank database & named it prestashop using this query - CREATE DATABASE `prestashop` 
My database configuration was ok but the wizard would not proceed to the next step on clicking the Next button.

I got a hint from a thread on the Prestashop forums that this could be because of the database not supporting utf-8 charset.

I dropped the prestashop database I created earlier & re-created it with this query -
CREATE DATABASE `prestashop` DEFAULT CHARACTER SET utf8;

When I went through the database configuration step again in the Wizard, everything went fine subsequently & the installation succeeded.
Read More