Wednesday, December 31, 2008

Crystal Reports Basic 2008 Runtime Installer

Need the Crystal Reports Basic 2008 run-time installer? Find it in the following folder on the development machine.

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5

More Info:

Copy and run the installer on the machines where you plan on deploying your application.

Crystal Reports Basic 2008 is the version of CR that is bundled with Visual Studio 2008.

important note: The correct method of deploying CR 2008 Basic is to create your installer correctly. If done correctly VS will include all the dependencies required by your application, including the CR dlls. This is typically done by including the CR merge module installer.


Note 2: The runtime installer for Crystal Reports for Visual Studio 2005 can be found at

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReports

More Links….

Monday, December 29, 2008

Visual Studio Icons

I needed VS icons that would allow me to differentiate between the different versions of Visual Studio that I have installed on my machine (I have VS 2005 and VS 2008 installed side-by-side).

Here is what I managed.

The different icons are available in the following dll "%ProgramFiles%\Common Files\Microsoft Shared\MSEnv\VSFileHandler.dll"

Here are the icons that are available in the dll.


Saturday, December 27, 2008

Ads – Hat Tip - Nikon S60

via and Advertising/Goodness

Information about the Ads:

Ads from Euro RSCG Singapore depicts Nikon S60 camera screens with unexpected face detection boxes, dramatizing how the S60 can capture up to 12 faces.
Brand: Nikon S60 Camera
Agency: Euro RSCG Singapore
Photographer: Jeremy Wong
Executive Creative Director: Charlie Blower
Creative Director: Victor Ng
Art Director: Lee Hsueh Ling
Copywriter: Victor Ng, Stephen Kyriakou
Country: Singapore
Other Credits: Digital Artist/Retouching: Ricky Haryadi
Production Manager: Joel Ng
Account Service Credit: Mark Ho
Client Credit: Jeffrey Low  

nikon_s60_1 nikon_s60_2 nikon_s60_3

Britain from Above – Data visualization

Via FlowingData

Britain from Above is a BBC TV series that takes a look at how Britain is interconnected in a variety of ways. The videos are interesting in not only the data that they display but also the way in which the data is visualized (The series uses data, satellite imagery and aerial videos to tell its story).

Take a look at some the clips and then take the jump to the BBC Britain from Above website.

Trailer for “Britain from Above”

GPS traces of ships


Data movement over Britain's telecom networks


And here are more “Britain from Above” videos on YouTube.

Flowing Data

Today I stumbled upon the FlowingData website and it is a great site. What is it? Here is a description from the website:

FlowingData explores how designers, statisticians, and computer scientists are using data to understand ourselves better - mainly through data visualization. Money spent, reps at the gym, time you waste, and personal information you enter online are all forms of data. How can we understand these data flows? Data visualization lets non-experts make sense of it all.

And here is the post that first landed me on this site: A contest on how to skin historical data about immigration to the U.S.

Take a look at the graph – it is interesting.

immig (pdf)

Top 10 tech breakthroughs of 2008 has this years top 10 list of technology breakthroughs (link)


10. Flexible displays.

Some of the other notable breakthroughs are:

6. GPS – Even though GPS technology has been around for almost 30 years now, it has been nominated for the fact that it has finally become ubiquitous and now appears in almost every gadget that you buy – PDAs, phones, cameras and ofcourse personal GPS nav devices.

4. Video capable Digital SLRs – this is my favorite breakthrough of 2008. I have a Nikon D40 and how I would like to upgrade to something like the Nikon D90 or the Canon 5D Mark II. Don’t believe me in how cool this breakthrough actually is? Then check out this video created using only the Canon 5DMk2 – Reverie and then take a look at the blog of the guy who created the video – stunning results are now possible by amateurs.

Here is one of the newest videos that Vincent Laforet created (also check out his blog for some real interesting posts on how he does his thing -

hispeed_otg_usb3. USB 3.0 – This will be 10 times faster than USB 2.0 – Enough Said! apple-iphone-keyboard

2. Android – This phone is awesome for how open it is compared to the iPhone. Unfortunately the G1 isn’t yet in the league of the iPhone, but I am sure that very soon we will see an Android phone that is just as awesome as the iPhone and even more.

1. AppStore – The AppStore represents the fact that Apple allowed 3rd party developers to begin creating applications for the iPhone. The AppStore, coupled with the fact that the iPhone 2.0 comes with a GPS were the main reasons I sprang for this phone.

Beautiful pictures of our planet


Cloud streets over the Caspian sea. (Modis Website)

The Modis Rapid Response System’s website releases beautiful images that it captures of our planet at least once a week (if not more often). Check out their gallery (which also contains an archive of all their old imagery) The satellite images released are mainly of weather related phenomenon and fires as the system is used by U.S. agencies to monitor fires as well as weather patterns as related to agriculture.

The Moderate Resolution Imaging Spectroradiometer (MODIS) flies onboard NASA's Aqua and Terra satellites as part of the NASA-centered international Earth Observing System.

Wednesday, December 17, 2008

Log4Net: Unable to send emails to multiple addresses

The SMTPAppender is supposed to be able to send log information to an email addresses that is specified in the To property.

Here is a basic configuration for the SMTPAppender for the config file.

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
            <to value="toEmailAddresses"/>
            <from value="fromEmailAddresses"/>
            <subject value="subject"/>
            <smtpHost value="smtpHostAddress"/>
            <bufferSize value="1"/>
            <lossy value="true"/>
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="WARN"/>
        <!--<threshold value="ERROR"></threshold>-->
      <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%newline%date [%thread] %-5level %logger [%property] - %message%newline%newline%newline"/>

Based on the SMTPAppender documentation, one should be able to send emails to multiple addresses and this is to be done by using the semi-colon as the delimiter. (documentation)

But if you try and do this, LOG4Net will decide to no longer send an emails. This was perplexing as, when I used a single email address Log4Net would correctly send out an email. But if I tried sending an email to multiple recipients, Log4Net would not send out an email.

After some testing, I found out that the correct delimiter in this case is supposed to be the COMMA (,) and not the semi-colon!

Now you know!

One issue I had while using the Log4Net API was that it seemed to be swallowing up exceptions that were occurring within it. That seemed to be the most logical explanation about what was going on with the multiple email addresses de-limited by semi-colons.

Here is useful information on how you can set Log4Net to emit it's trace information - which can be useful in tracking down these errors.

How do I enable log4net internal debugging?

2 methods are available to turn on internal debugging:

  • via the application's configuration file
            <add key="log4net.Internal.Debug" value="true"/>
  • set the static log4net.Util.LogLog.InternalDebugging property to true.

Debug messages are written to the console. So for an app or a windows forms based app you might think you are out of luck. But here is another little trick.

You can redirect data sent to the console to a file or another application. When the application that is using Log4Net is attached to a debugger, the console information is automatically captured to the output window. But if it is not then you can use a tool like DebugView to capture the output from Log4Net.

To capture Log4Net's trace information to a file you need to add the following information under the configuration node of the application's config file.

        <trace autoflush="true">
                    initializeData="C:\log4net.txt" />

Monday, December 15, 2008

Geo-coder tool has been updated

My geo-coding tool now has a name “What’s the address?”. The page has been updated with various improvements (mainly cosmetic this time around).


The tool allows you to extract the latitude,longitude for an address. In addition, the tool allows you to do the reverse – get the address of a location that you click on the map.


The tiny URL is:

The complete URL is:


Saturday, December 13, 2008


Here is a good article on vesting (and how it is typically setup for new companies that are in the process of getting funding from VCs, etc.)

Wednesday, December 10, 2008

PageRequestManagerServerErrorException with Status Code 401

The error "Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 401", is due to a permissions issue. One can determine that by checking on the 401 error code.

In my case it was because a method on one of my web pages needed to have write access to folder where it created temporary images. Without the permission the browser would throw this generic error message. If you ran the page on a browser on the actual server, you would get the actual error message - which in my case clearly pointed to the fact that I did not have write access to the folder I was trying to write the images to.

Once the User account was given write access to that folder, the problem went away!

Monday, December 08, 2008

Google Maps – Forward and Reverse Geo-Coding

imageGoogle Maps allows you to plug in an address and get the location displayed on the map. But what Google Maps does not allow you to do is click on a location on the map and get the address of that location. The first is an example of forward geo-coding. The later is an example of reverse geo-coding.

I needed a tool that would allow me to quickly navigate to a location of a know address (forward geo-coding) and then display the addresses of different locations on the map (reverse geo-coding). So using Google Map API examples, I quickly created this very simple tool which will allow you to do this. Check it out at:

Sunday, December 07, 2008

Best New Denver Restaurants (2008)

Based on the 5280 magazine’s best new Denver restaurants list, I have created a Google map containing the locations and some basic information about these restaurants (address, phone number, web URL, what to try).

Read the entire 5280 article from their website:


View Larger Map


BatchGeoCode’s version of the map:

The map was made by first creating an excel sheet with all the information in separate columns. The information was then copied and pasted into’s batch geo-coding tool. BatchGeoCode then took my data and created a KML file. The KML file was downloaded to my computer and then loaded into GoogleEarth. Then GoogleEarth was used to export the kml file as a KMZ file. The KMZ file was then imported into a new Google MyMap. (the step of going from KML to GE to KMZ was needed because there seems to be something wrong with BatchGeoCode’s KML file and it was not getting imported into MyMaps. Using GE to export the file seemed to do the trick for me).

Schmapp includes my photo in its tour guide

Schmapp used this photo of mine in their tour guide.

Saturday, December 06, 2008

iPhone App – Amazon Mobile finally has released an app for the iPhone platform. Amazon is a great tool for comparison shopping as well as looking up reviews of other users – is one of the best review sites for all kinds of products (from books to music to electronics). An interesting tool that the Amazon app introduces is called “Amazon Remembers”. Amazon remembers lets you take a picture of a product that you wish to remember to research latter. Amazon will store the image on their server and in addition try and recognize the product in the image and send you an alert if they find the product on their site. (Not sure if images are recognized using machine learning or using human eyes).

The app also provides you with access to your account, which means that you can use 1-click to purchase products, view and edit your wish-lists and more.

Thursday, December 04, 2008

Oracle sequences and concurrency

Recently I had a question about sequences and their behavior when they are accessed concurrently by multiple users/sessions.

Surprisingly there is very little on this topic from Oracle (or for that matter on the web - search).

First some background (jump to the end if you wish to see my conclusion based on my research):

CURRVAL and NEXTVAL (collated from various documents on the net)

A sequence is a schema object that generates sequential numbers. When you create a sequence, you can specify its initial value and an increment. CURRVAL returns the current value in a specified sequence. Before you can reference CURRVAL in a session, you must use NEXTVAL to generate a number. A reference to NEXTVAL stores the current sequence number in CURRVAL. NEXTVAL increments the sequence and returns the next value. To get the current or next value in a sequence, use dot notation:


Each time you reference the NEXTVAL value of a sequence, the sequence is incremented immediately and permanently, whether you commit or roll back the transaction.

After creating a sequence, you can use it to generate unique sequence numbers for transaction processing. You can use CURRVAL and NEXTVAL only in a SELECT list, the VALUES clause, and the SET clause.

Any reference to CURRVAL always returns the sequence's current value, which is the value returned by the last reference to NEXTVAL. Note that before you use CURRVAL for a sequence in your session, you must first initialize the sequence with NEXTVAL.

Within a single SQL statement, Oracle will increment the sequence only once per row. If a statement contains more than one reference to NEXTVAL for a sequence, Oracle increments the sequence once and returns the same value for all occurrences of NEXTVAL. If a statement contains references to both CURRVAL and NEXTVAL, Oracle increments the sequence and returns the same value for both CURRVAL and NEXTVAL regardless of their order within the statement.

A sequence can be accessed by many users concurrently with no waiting or locking.


From my research here is what I have determined:

  1. Concurrent access of NextVal on a sequence will always return separate values to each caller. (Unless the sequence has been setup to cycle values - in which case duplicate values are possible).
    An important point to remember is that a sequence is under no circumstances ever rolled-back. For this reason sequences can end up with holes.
  2. CurrVal returns the last value generated for a sequence when NextVal was called on it. The CurrVal is independent for each session (where a session is a distinct connection, as a single database user, to the database by an external program). This means that CurrVal will always return last value generated for you, regardless of how many times NextVal is called by other users on that sequence.
    So sequence can be safely used concurrently and you do not have to worry about CurrVal returning you some other users current value for the sequence.

As an aside, if you are using a sequence to generate a record id and if you are trying to determine the last inserted rowid then you can use the returning keyword in Oracle.

eg: insert into tableName(table_id,.....) values (mySequence.NextVal,......) returning table_id into variable_name;
(this forum post shows how returning keyword can be used when the row id is updated using an on insert-before trigger using an example -

Here is a good article that delves into the depths of Oracle Sequences:

Wednesday, December 03, 2008

Spelling Alphabets (Phonetics) for the iPhone

I created a quick web-application for converting words to their phonetic equivalent. Obviously this isn’t the first website that can do that, but this one has been optimized for the iPhone (sort of!).

Basically all I had to do is add the following line to “HEAD” part of the document.

<meta name = "viewport" content = "width=device-width">

And that takes care of making the document be the right size for the iPhone. The rest had to do with the right placement of the controls.


Check it out at (

The website also allows you generate the spelling alphabets using a URL. Alphabet (Just replace “Phonetic Alphabet” in the url with whatever word or sentence that you need converted).

(Phonetics – Spelling Alphabets - on the iPhone)

Sunday, November 30, 2008

GPS use in-flight

garmin_nuvi_260Have you ever wondered if you can use your portable GPS device while in-flight?

Here is a list of Airlines which APPROVE/DISPROVE GPS use in Flight. (Remember that the allow list means that it is left to the pilot’s discretion).

iPhones – AppShopper – Tool to find apps for the iPhone


AppShopper is a great website that helps in finding apps based on various criteria. Just like the iTunes store you can search for top apps based on whether they are paid or free and it also shows you the rating of the software (just because it is popular it does not mean that it is great). In addition AppShopper also allows you to track and find applications that have recently changed in price (

Saturday, November 29, 2008

Nav N Go’s iGo – Light years ahead of competition

 iGO_My_way_8_Cockpit_n I first started using Nav N Go’s iGo software when it came packaged with the Mio c310s. The software runs on Windows mobile OS. The graphics were clean and clear. The interface simple and yet highly customizable. There were many websites dedicated to hacking the iGo software. The list of features that I liked are endless (smart zoom, quick overview of route, easy customization of route parameters, etc.) I loved the software very much.

Unfortunately, this year, not many of the low-end devices came packaged with the iGo 8. This new version is vastly improved (even better graphics, more options, 3D land-marks, etc) and I wish I could get my hands on a device that was cheap (under $200 or at least one to review). With none available and my c310 aging out, this year I begrudgingly, settled on a Garmin Nuvi 260.

But if you have the $ then check out this list of devices that run the iGo 8. The iGo8 will definitely not disappoint you.

Current list of devices supported by Nav N Go iGO 8:

Airis T482igo_8_pack
Airis T620
ASUS MyPal A686
ASUS MyPal A696
Dell Axim X51v
Eten Glofiish M700
Eten Glofiish M750
Eten Glofiish M810
Eten Glofiish X500
Fujitsu-Siemens Pocket LOOX 720
Fujitsu-Siemens Pocket LOOX N500
Fujitsu-Siemens Pocket LOOX N520
Gigabyte g-Smart i
HP iPAQ h2210
HP iPAQ h4150
HP iPAQ rw6815 Personal Messenger
HP iPAQ rx5940 Travel Companion
HTC Athena 100 (X7500)
HTC Pharos (P3470)
HTC Touch Cruise (P3650, Polaris)
HTC Touch Dual (20 key) 5520
HTC TyTn (P4500, Hermes 200)
HTC TyTN II (Kaiser)
MiTA  Mio 168
MiTAC Mio 169
MiTAC Mio 180
MiTAC Mio A501
MiTAC Mio A701
MiTAC Mio A702
MiTAC Mio P350
MiTAC Mio P360
MiTAC Mio P560
MyGuide 7500XL
Palm Treo 750
Samsung SGH-i780
Toshiba Portege G810
Yakumo deltaX 5 BT

And a much more detailed list after the jump (link).

My wife has the HTC tilt mobile phone and I am going to check out to see if I can get the iGo8 to run on it and review this latest version from Nav N Go.

GPS – Mio and Garmin 2008

miotm_rgb_logoI loved my Mio c310 portable navigation device (PND or is it personal navigation device, never mind!). I loved the fact that it ran Windows CE and the mapping software was iGo 2006. The combination of using Windows CE and iGo, provided for a device that had crisp and visually pleasing graphics and an interface that was highly customizable. The c310 had its quirks but at $150 in 2006, it was a steal of a deal and I never got lost. The iGo mapping software is the standard that I hold other PNDs to know.

The biggest problem with the Mio c310 that I had was that the company did not put out map updates often enough and their customer service kinda sucked (just check the number of people who commented on my posts on upgrading the map software and how they could not get any help from Mio and used my post to unbrick their 310s).

Mio with NavMan software (Moov series)So this year I started looking at the Mio’s Moov series of GPS. And boy was I disappointed to learn that they had replaced the iGO mapping platform with the software that used to run on the NavMan devices (I believe Mio acquired NavMan, which is why that is the software that is now packaged on these devices). Now there are a ton of people that think this was a good decision on Mio’s part as the NavMan is simpler to use with far fewer functions and is less customizable (read crippled!). This year Mio had the Moov 500 on sale at RadioShack for $150. With a wide screen layout and text-to-speech (TTS) it is the cheapest full featured GPS on the market. And I would have bought it, if only it had the iGo software running on it. From my very limited testing with the devices screwed down to the desk, I just did not feel like the NavMan software brought anything new to the party. I would have liked to test the device for a week and return it in a week if I didn’t like it, but given the state of the economy, I did not want to buy something that I might have to return and cause a company to take on a loss.

Garmin Nuvi 260So this year, after tons of research, I settled on the Garmin Nuvi 260. This device does not have a wide-screen, but it does have text to speech (which means spoken street names - “Turn right in 100 feet on to Lincoln street”, instead of “turn right in 100 feet”). In addition, Garmin has a good map update policy and you can generally buy new maps every year for around $70. Garmin Nuvi’s also support a browser plugin, that allows you to send locations directly from Google Maps to your device when it is connected to your computer.

My only problems with the Nuvi: The device runs Linux and the graphics are just not crisp. (I felt that was also the same problem that the TomTom’s had). In addition, as someone who loves to tinker with his devices, there are just about zero hacks for the Nuvi(s) (same is true for the TomTom). I just cannot customize the map screen to show me the details that I am interested in and I am stuck with what Garmin decided that I must see while I drive. (On the Mio, I could have current elevation, time to destination, distance to next turn, just about anything that could be computed could be put on the screen).

The pluses for the Nuvi are: Solid map update technology, so you wont need a PhD in computer science to update the device’s firmware or maps. Simple interface – you will never ever need to break out the manual. Has TTS on a low end model. 5 hours of battery – so you can take it out of the car and on your walks around the city.


list of my posts on the Mio -

list of my posts on GPS devices -

Wednesday, November 26, 2008

iPhone – Doesn’t have an app comparable to the Android’s ShopSavvy

Today, I got a chance to play with the Shop-Savvy application which is available only for the Android running G1 phone and I have just one thing to say “wow”. ShopSavvy is simple, easy and fun to use. All you do is get your camera close to the bar-code and the application does the rest…… it automatically detects the bar-code, captures it and sends it off to ShopSavvy to get you a list of prices at various stores. (I can’t count the number of items that I tried scanning today with the G1 – Pepsi bottles, Coke cans, Doritos bags, books – anything that had a barcode and was within arms length was scanned – and ShopSavvy did not fail even once).

Compare this to the applications available on the iPhone (Snappr for instance).

The Apple does not allow developers access to the complete phone’s capabilities via its SDK. This means that one has to take a picture, then resize it (and or rotate it) and only then is the barcode image available to the application to send and get results back. Compared to the ShopSavvy’s simple steps (just point at the barcode), iPhone’s barcode reading applications feel like they are from the 19th century. (iPhone app – Snappr -

Apple’s crippled SDK doesnt allow for developers to create innovative and user friendly apps for the iPhone. Whereas the Android platform provides developers complete access to the hardware and allows them to create cool and useful apps. If Apple does not open up its SDK, I am sure that it will loose its fight against Android based phones.

T-Mobile Ad showing ShopSavvy in action and a demo of ShopSavvy



iPhone app in action

Tuesday, November 25, 2008

T-Mobile and AT&T’s 3G speeds compared

A friend of mine recently bought the Google Phone (G1) from T-Mobile which provided me a chance to test the 3G networks from AT&T (iPhone) and T-Mobile (G1).





Download Capture1 2008-11-25_093544
Upload Capture2 2008-11-25_093620
Coverage image


From this simple test using, it looks like T-Mobile’s 3G network is faster than AT&T’s 3G network (at least for the downtown Denver area). What is also interesting to note is that while the latency is consistent on AT&T’s network, it varies widely on T-Mobile’s network (download has a latency that is 4 times higher than upload). The reason this is important is that for the most part we are downloading more data than uploading data from our mobile phones. In addition the amount of information that we send back and forth is typically really small bites of data. This means that even though the T-Mobile network has a higher through-put, the higher download latency will result in a lower perceived speed of the T-Mobile network.

It is important to note that this test reflects network statistics at certain point in time (11:30am on Nov 25, 2008) and the results could be skewed because of the number of people accessing these 2 companies 3G networks at that time.



for an interesting article on understanding network latency and the relationship between latency and throughput, read the article: “It’s the latency stupid!”

On the iPhone, you can take a screen shot of the results by pressing the home button and power button simultaneously. On the G1, there doesn’t exist an easy short-cut to take a screen-shot. So the easy way to get a copy of your test results is to take down the test key value. If you then use the test-key in the following url “[test_key]” (e.g.:, you will get the test results.

Sunday, November 23, 2008

SQL Server 2008 – Spatial Data in 3D

Last week I attended an MSDN event in downtown Denver where one of the technologies demonstrated was SQL Server 2008. SQL Server 2008 supports spatial data and all the demos showed only data in 2 dimensions (X,Y).

I was wondering if SQL Server 2008 supported 3 dimensional data (X,Y,Z) and came across this post/tutorial and it does!


The .AsTextZM()  and .ToString() can be used on a spatial datatype to get the X,Y,Z (and M) values of a geometry.

On the other hand, .STAsText() returns only the X,Y values of a geometry.


And to create geometries you use a function like: STMPolyFromText

geometry::STMPolyFromText('MULTIPOLYGON (((5 5, 10 5, 10 10, 5 5)), ((10 10, 100 10, 200 200, 30 30, 10 10)))', 0);


To find out how to construct various geomteries in WKT, see

Saturday, November 22, 2008

iPhone 2.2 – Using Google Maps tutorial

I got the iPhone 2.2 firmware update almost as soon as it was released to iTunes. Once my phone was updated the first thing I dived in to try out was the new Google Maps application with it’s street view and all.

Unfortunately, unlike the previous versions of Google Maps on the iPhone (GMOI), in this version features are just not discoverable. When I first started up the new Google Maps application it looked just like the old version and I thought that for some reason the 2.2 update just skipped updating GMOI on my phone (the following images are the home screens for search, directions and the peel away menus of the new GMOI and they all look just like the previous version of GMOIs to me).

Google Maps for iPhone - Home Screen Google Maps for iPhone - Home Screen Google Maps for iPhone - Home Screen

Apple nor Google have released a tutorial/faq on how to get at the new features, so here is a very quick and dirty little tutorial on using the new features.

1. Routing
The first big new change is in routing. GMOI now lets you look up routes for driving, public transit or for walking. Once you input your start and end locations and you get a route back from Google, you will see the following screen, which shows you the first new feature in GMOI.

Routing - driving directions

Laid out across the top are the following 3 new icons: new icons for choosing routing options, which allow you to get routes for driving, public transit and walking. Tapping the buttons toggles between the various route types.

Routes - walking Routes - public transit

Above images: Google Maps for the iPhone (GMOI) showing a route for walking to the destination (left) and a bus route (right).

When you are looking at a route, if you tap the start button, you will get an animated fly through of your route.

The bus route adds a new task-bar that gives you information about when you need to depart and when you will arrive at your destination.Public transit - routing information

Touching the clock icon will take you to the following route customization page, where you can select different routes based on time:

Transit Times page

If you tap the depart information box, you will be taken to another page where you can change the schedule of your trip and even customize the schedule to be based on an arrival time instead of a departure time.

One big problem with the bus routing is the fact that you can not determine the bus/train name from the main map. The “Transit Times” customization window also suffers from the same problem, and I wish that Google had thought of listing the bus IDs that one would have to take for each of the listed trips.

To get the details of the bus route: such as where you would have to walk to, to get on the bus, which bus ID you need to take and the walking directions from the ending bus-stop to your destination; you first need select and display the route on the map and then you need to go to the peel away menu page and select the list option.

GMOI - peel away menu    ==> Tap on List ==>     Detailed directions for public transit

2. Street View

Ever since Google announced that the G1 phone would be getting Street View, owners of the iPhone were wondering if Google would be bringing it to the iPhone…… and in this 2.2 release of the iPhone firmware, Google has brought Street View to the GMOI.

Again the Street View is a feature that is just not easily discoverable on the iPhone. (Hint: you don’t get a special menu when you zoom far enough into the map)

To get Street View you need to do one of the following things:

  1. Drop a pin (which is done from the peel away menu page from the main map window)
    StreetView - PushPin or
  2. You search for a location, using the Search feature. (which will add a pin(s) to your map automatically).

The new pin labels have a special new icon on them which looks like this Copy of Picture 023.png . If Street View is available for the location where your pin currently points to, then this button will be available otherwise it will be disabled and will appear grayed out.

When you tap on the Copy of Picture 023.png button, GMOI will take you to the StreetView of that point via a smooth animation (looks very cool). StreetView is a 3D view of the location where you dropped your push pin (if you have a slow connection, you will see the blank globe and sky while GMOI downloads the images to apply to this 3D view).

Street View - 13th and Broadway - Denver

Once in the StreetView window, you can pan around to get a 360 degree view of that location by pressing and dragging your fingers in all 4 directions (A left-right motion rotates your around the point and an up-down motion tilts your view). The small circle (bottom right) of the window shows you an overview of your location that you are currently viewing. As you rotate around the point, a cone illuminates the direction you are viewing.

Street View - 13th and Broadway - Denver

Double tapping anywhere in the window (or a pinching out motion) zooms into the view.

Finally, if you tap on the arrows that appear on the road, your StreetView location will be moved in that direction and the view will be refreshed to reflect that new position.

Street View - 13th and Broadway - Denver

Street View - Colorado State Capitol

(Above – Google StreetView of the Colorado State Capitol)

More information about the release is available from the Google Mobile Blog:

Friday, November 21, 2008

Using the Microsoft Lines of Code Counter Tool

If you download the MS LOC counter tool (available at and then install the add-in version, you might be left wondering about how to start using the tool (at least I was!)

Before installing the MS LOC tool make sure that you have VS 2005 and Team Explorer installed on your machine. (Not sure if MS-LOC works without Team Explorer).

To start using the tool first go to View -> Other Windows -> LOC Counter Explorer.


This will bring up the LOC Counter Explorer tool.


Next you need to create a counter task and then run it.

The MS-LOC tool allows you to count code that might be stored in Visual Studio Team System or Visual Source Safe repository or even items that are stored on your file system (choice is mutually exclusive though).

For more information:

Note on IT
PowerPoint Presentation
IT Pro Webcast, WMA, MP3
TechNet Radio
Download the tool
Line Of Code Counter tool