Wednesday, September 30, 2009

Ads – Song from Target Ad

Today I woke up and I found more, more, more…..

The song is by Minnutes and called “More to Love”.

And here is the ad

Sunday, September 27, 2009

Pre-existing conditions clauses in Health Insurance must go

Saw this documentary on PBS that chronicled the hardships 3 families had to go through while trying to provide health-care for their loved ones. It really drives home the point as to why the pre-existing conditions clauses need to be removed: many of us just don't realize that we are just one medical surprise away from loosing our homes and bankruptcy and everything we have worked so hard for. Remember the only body that can change it is Congress and you need to tell your elected representative what you want done in your name.

Read more about the documentary and pre-existing medical condition clauses on the PBS website: http://www.pbs.org/now/shows/health-care-reform/now-segment.html

Monday, September 21, 2009

Words - Laodicean

Laodicean • \lay-ah-duh-SEE-un\  • adjective
: lukewarm or indifferent in religion or politics

Sunday, September 20, 2009

DEKA Arm

Just saw this piece on 60 minutes about the latest in prosthetic arm technology – its called Luke.


The degree to which the robotic arm mimics a real arm is amazing. The robotic leg that is shown is very cool too and its amazing how close it looks to the legs that were seen on RoboCop in the movie RoboCop.

Lending money to family and friends and the IRS

Came across an interesting article on CNNMoney, that talked about the fact that if you lend money to anybody at below a certain rate, then you could be assessed the difference as part of your income tax.

The minimum rate that you need to lend money at is determined by the Applicable Federal Rates (AFR). The rates are published monthly at http://www.irs.gov/app/picklist/list/federalRates.html

There are 3 sets of rates – short-term (under 3 years), mid-term (3 to 9 years) and long-term (beyond 9 years).

And here is the CNN Money article where I first came across this information: http://money.cnn.com/2009/09/14/pf/expert/family_lending.moneymag/index.htm?postversion=2009091505

Saturday, September 19, 2009

NTS - .Net Service Bus

Starting a new category of posts that are aimed at me as a “Note To Self” (NTS).

My first one is to check out the .Net Service Bus

WCF Coding Standard

While looking for coding guidelines for Windows Communications Framework (WCF), I found the following resource from the IDesign website.

Here is a direct link to the zip file containing the standards - IDesign WCF Coding Standard

Whats your site worth? WebTrafficAgent

A good way to stoke your ego (or make it drop)…. check out what its valued at by WebTrafficAgents. Check out what my blog is worth: http://www.webtrafficagents.com/WebSiteValue/blog.aggregatedintelligence.com

WCF and SilverLight – Cross-Domain issues

If your WCF service and SilverLight app are hosted on 2 separate domains then you might come across the following cross-domain access error:

An error occurred while trying to make a request to URI 'http://xxxx'. This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place, or a policy that is unsuitable for SOAP services. You may need to contact the owner of the service to publish a cross-domain policy file and to ensure it allows SOAP-related HTTP headers to be sent. This error may also be caused by using internal types in the web service proxy without using the InternalsVisibleToAttribute attribute. Please see the inner exception for more details.

I use Verio to host my web-sites and I had to add this very simple XML information to the root folder to overcome this error: (file should be named crossdomain.xml)

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Note:

What about using ClientAccessPolicy.xml?

It turns out that you can also use the ClientAccessPolicy.xml file to provide cross-domain access. Here is what the contents should look like (the file needs to be copied to the same location as crossdomain.xml – the root of the website).

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<!--Change WCFServiceFolder to reflect your setup -->
<!--If you want to provide access to all folder use /-->
<resource path="/WCFServiceFolder" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

So which one should you use:

The crossdomain.xml file is used by both SilverLight and Flash apps. But crossdomain.xml does not provide you the fine grained control that ClientAccessPolicy.xml provides (you can see that in my example above, where I provide cross-domain access only to the WCFServiceFolder sub-folder). Also, Silverlight will first check if the ClientAccessPolicy.xml file exists and will use the CrossDomain.xml file only if it doesnt find the ClientAccessPolicy.xml. So its a good idea to use both.

Get more information from this post:
Using Silverlight 2.0 clientaccesspolicy.xml vs. crossdomain.xml for Web-Service cross-domain access (from Cesar da la Torre Blog)

Working in Visual Studio with the Visual Studio Development Server:

Just drop the above ClientAccessPolicy.xml file in to the root folder of your web-service solution and you should be good to go.

Friday, September 18, 2009

WCF – Hosting a service in IIS

I have been playing with Silverlight and WCF over the last couple of weeks and today I tried moving the service to my web-host “Verio”. Unfortunately what was working on my local machine – stopped working on web-host’s machine and I was getting the following error:

This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection. 
Parameter name: item

The problem is related to how different services can be hosted on the same server and the fact that ASP.Net and WCF are processed by different pipelines. I found that with .Net 3.x, Microsoft added some new configuration elements that allow you to control the addresses used. I dont understand the exact reason that causes the problem, but the following worked for me:

Add the following to your web.config file inside the “system.serviceModel” node:

<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix="http://www.aggregatedintelligence.com"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>

Read more about the baseAddressPrefixFilters at http://msdn.microsoft.com/en-us/library/bb924481.aspx

Wednesday, September 16, 2009

Words - Pink

pink • \PINK\  • verb
1 a : to perforate in an ornamental pattern* b : to cut a saw-toothed edge on 2 a : pierce, stab b : to wound by irony, criticism, or ridicule

Monday, September 14, 2009

How should a well written ASP.Net app’s connection use profile look like?

Recently I had to look into an ASP.Net application, which was consuming way too many SQL Connections and was causing problems to our web-server.

The way we were able to tell that the issue was being caused by too many SQL Connections being consumed was by profiling the “.Net Data Provider for Sql Server”.

Here is how you need to setup the performance profiler.

Open up the Performance console. Click on the “+” icon to add a new counter.
Select “.Net Data Provider for SqlServer” under Performance Object.

image

The 2 counters that I found most useful are:
1. NumberOfPooledConnections and
2. NumberOfReclaimedConnections.
image

Select the 2 counters and make sure that you select the correct instance from the Instance list. Click on Add.

Now use the Microsoft Web Application Stress Test Tool to exercise your web-app. (Remember to set Stress Level and Stress multiplier values under settings as well as the test run time).

Note: number of concurrent tests = stress level x stress multiplier

Now lets take of an app that was badly written and see how its graph looked like when it was exercised using the stress test tool:
image image

As can be seen from the graph, both the “numberOfPooledCOnnections” and “numberOfReclaimedConnections” grow rapidly. This is probably because the sql connections were not be closed explicitly. At this point some definitions are in order:

numberOfPooledConnections: the number of open sql-connections
numberOfReclaimedConnections: the number of sql-connections that were closed because of the garbage collector running and reclaiming those Sql-Connections.

One should aim for numberOfReclaimedConnections to remain level at zero. Which would mean that you as the developer are proactively closing out each and every SqlConnection that you are opening. Keeping this number low, also saves CPU cycles.

As for numberOfPooledConnections, one should aim for slow growth which reaches a plateau. This should never grow quickly, as that could mean that you might hit the hard limit of the number of concurrent SqlConnections that can be open from your server.

So how should a well written app look? Lets take a look at the graph:

image image

As you can see here, the numberOfReclaimedConnections remained level at zero. The numberOfPooledConnections grew only to 9, even though I was using 100 simultaneous connections to test the web-app (the same number that was used to test the app when the code wasnt pro-actively closing out the connections).

Final note:

I prefer to create a new SqlConnection object within a using block. This allows me to forget about the management of the Sql Connection (which is automatically closed once program execution leaves the using block – either normally or via an exception). Also, it is almost always a good idea to write your methods that work with your database, in such a way that they take a SqlConnection object. This way, the caller of the method knows that they will need to manage the connection object. It also allows you to leverage the same connection object across multiple operations on a database that occur at the same time.

One of the ways in which too many open SQL Connections manifests itself is that you will get connection time-outs.

Sample code:

using (SqlConnection connection = SqlUtil.GetConnection())
{
    connection.Open();
    SqlDataReader sdr = null;
    using(SqlCommand command = new SqlCommand("select * from test", connection))
    {
        sdr = command.ExecuteReader();
        bool dataLoaded = sdr.HasRows;
        sdr.Close();
    }
}

Sql Injection – Find vulnerable code

You should review stored procedures that use dynamic sql for security vulnerabilities.

Here is a Sql statement that can be used to list all stored procedures that use some form of the Exec command. These should be reviewed to determine if any security vulnerabilities exist.

SELECT object_Name(id) FROM syscomments
WHERE UPPER(text) LIKE '%EXECUTE  (%'
OR UPPER(text) LIKE '%EXECUTE  (%'
OR UPPER(text) LIKE '%EXECUTE   (%'
OR UPPER(text) LIKE '%EXECUTE    (%'
OR UPPER(text) LIKE '%EXEC (%'
OR UPPER(text) LIKE '%EXEC  (%'
OR UPPER(text) LIKE '%EXEC   (%'
OR UPPER(text) LIKE '%EXEC    (%'
OR UPPER(text) LIKE '%SP_EXECUTESQL%'

And here is some good information about Sql Injection that a friend pointed out to me:
http://www.sommarskog.se/dynamic_sql.html#SQL_injection

Using Web Application Stress tool on local web-apps

If you try using the Web Application Stress tool to test pages on a locally hosted web-app, then you will find that the page that the recorder spawns in your browser, does not work.

I found that you need to add a period at the end of localhost to make it work.

eg: http://localhost./connectionTestWebsite/

you can also use your computer name instead of localhost. This issue is similar to why Fiddler does not work when you try using localhost in the address (which I blogged about in Fiddler Tips & Tricks)

Sunday, September 13, 2009

SilverLight – Interacting with the DOM and JavaScript

1. Updating a DOM element from Silverlight:

HtmlPage.Document.GetElementById("divStatus").SetProperty("innerHTML", "<b>loaded</b>");
The above code updates a div in the page called divStatus with the text loaded. 2. Calling a JavaScript function from Silverlight:
HtmlPage.Window.CreateInstance("testFunction", new string[] { "loading done" });
The above code calls a method called testFunction with the parameters “loading done”. The javascript function is defined as follows in the page:
<script type="text/javascript">
  function testFunction(s)
  {
      document.getElementById("divStatus").innerHTML = s;
  }
</script>

3. Calling a method in the SilverLight class

In the XAML code behind, in the constructor, you need to add the following code:

HtmlPage.RegisterScriptableObject("svMainPageObj", this);
Here, “svMainPageObj”, is the key which will be used to access the SilverLight object’s method from JavaScript.
Add the following code to the class, which will be called from JavaScript.
[ScriptableMember]
public void TestMethod(string value)
{
   string v = value;
}
Now, in the aspx page, add the following code to call the TestMethod method in SilverLight:
var obj = document.getElementById("veMapObj").content.svMainPage;
obj.TestMethod("hello");
Also make sure that the silverlight object has an ID defined (done as follows) – which is used to reference the SilverLight object in the javascript method:
<object id="veMapObj" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"&gt

4. Passing initialization parameters to the SilverLight object

Sometimes, you need to pass initialization parameters to the SilverLight object. The object definition in the HTML page, provides initparams as a mechanisim to do this (in the object definition of the SilverLight object in the aspx page) add the following:

<param name="initparams" value="val1=silverlight,val2=asp.net" />
In the code behind page for App.xaml (app.xaml.cs) update the Application_Startup method with the following code:
private void Application_Startup(object sender, StartupEventArgs e)
{
  var o1 = e.InitParams["val1"];
  var o2 = e.InitParams["val2"];
  this.RootVisual = new MainPage(o1,o2);
}
notes:
you need to use the following namespace - System.Windows.Browser;
the above code worked with SilverLight 3 (3.0.40624.0)

Accessing properties in code-behind class from java-script

If the code-behind class has a property called MySampleProperty and if it returns a string value, then this is how you can access it in your javascript:

   1: <script type="text/javascript">
   2: function onAppLoad() 
   3: {
   4:    var vSampleProp = '<%=MySampleProperty%>';
   5:    alert(vSampleProp);
   6: }
   7: </script>

Realize, that I am saying “access” and not call. Because, what happens here is while the ASP.Net is building the web-page to send down to the browser, it sees the code inside <%…%>, calls the property, fills in the value and then sends it down to the browser.

If you need to “call” a method on the server then you need to look at web-services. (Basically you will need to use AJAX, to get the server to send your data asynchronously).

The future of computers – what does the iPhone point to?

I have had the iPhone for over a year and I use it all the time, all over the place. It reminded me of an essay that I had written while I was applying to graduate school. In that essay I had written about how I envisioned a future where the Internet and computer devices were ubiquitous in our lives – making us productive – not only by helping us do our work better, but by sharing our knowledge with others.

I just saw on ABC news a report on how the iPod touch was being used in schools to replace books and provides a whole new way of teaching students (saves paper, information is instantly updated, research can be done at any time – and the student could be texting instead of studying!)

The news program made me think of what computers might look like 10 years from now and here is some day dreaming:

Devices like iPhone will have the same amount of power and memory as my desktop and laptop machines. Just like today, I will be able to use the device on the go to do my work (browsing, checking my mail and other useless stuff). As soon I get home or work, I will be able to plug the device in to a dock and will be able to use the entire power in the device using a large screen monitor and keyboard. (The desktop screen will support multi-touch and will allow me to use gestures to get a lot of work done). In addition, I will be carrying a touch-enabled screen in my back-pack, which I can pull out when I need to do work on the go, plug in the pocket device and be able to do what I normally do with a laptop today.

And remember, I am thinking of a device that is as big as a iPhone. But over time, the devices will shrink and could even end up being as small as a watch.

But for now I would be happy with a iPhone sized device that would be the center of all the other devices that I use in my world.

Snap! Snap! waking up…. need to stop day-dreaming! :)

Testing out the SilverLight Map Control

What am I doing right now? Taking the Bing SilverLight Map Control for a quick spin.

The first thing you need to do (after installing the Silverlight SDK) is to download the Silverlight Map Control SDK. It is currently in CTP and can be downloaded from the following site:

https://connect.microsoft.com/silverlightmapcontrolctp

At this time, you need to “self-apply” for access to the CTP (which means you need to log in with a live account and click on the apply link).

Hello World Sample for SilverLight

This was easier than I could imagine.

I created a SilverLight application using the new project wizard:
image

on the next page I had to make sure that I selected that the app would be hosted in a web-site and I set it up as a web-application project.

image

Next, I added a reference to the SilverLight map control to the SilverLight project. (which I found in the following location - C:\Program Files\Microsoft Virtual Earth Silverlight Map Control\CTP\Libraries)

image

Now, I all I had to do was add the control to my SilverLight page. VS had already added a page called “MainPage.xaml”. I had to first add the following line to the navigation node of the document (to reference the namespace of the map-control in the document):

xmlns:m="clr-namespace:Microsoft.VirtualEarth.MapControl;assembly=Microsoft.VirtualEarth.MapControl"

image

Final step, add the control to the page.

<m:Map/>

Run the application and you should see the following:

image

That was EASY!

Saturday, September 12, 2009

Visual Studio – Setting the default browser

Since I set Chrome as my default browser, everytime I debug a web-app – it opens up in Chrome.

But I wanted my web-apps to open in IE when I was trying to debug them without changing my default browser. Turns out there is an easy way to do this in Visual Studio.

In the solution explorer, right click on an aspx file and select the “Browse With” option. In the dialog that pops up – select the browser that you wish to test against.

Very useful tip!

DMG files on Macs – Basics for Windows users

When I tried to download my first Mac app from the Internet (Google Earth), it got downloaded as DMG file. When I double clicked it, the file seemed to get mounted and a icon representing the contents showed up on my Desktop. I was able to open the icon and inside was an icon for Google Earth, which I could run. But after restarting the Mac, the icon representing the DMG file had disappeared from the desktop.

This app delivery format intrigued me and I also began wondering what is the correct way to use these applications and here is what I found out:

  • The DMG files are similar to ISO disk images on Windows machines.
  • Double clicking them automatically mounts them and adds a link to your desktop.
  • The correct way to use them seems to be to mount the file and then move the contents to a location from where you can use them. (for example: in the case of Google Earth, I moved it into the Applications folder). Once you have moved the file into a permanent location, you can dismount the DMG file and even delete it.

My First Ever Mac

My wife replaced her Windows laptop with a MacBook Pro and here are my thoughts:

  • The MacBook Pro is awesome (a little expensive, but awesome).
  • I love the multi-touch touch pad is great. I am getting so used to the multi-touch gestures that I am trying to use them on my Dell laptop! (I cant wait for Microsoft’s surface to come to Windows machines).
  • The simplicity in design, the form factor and all make the MacBook Pro very convenient to do everyday activities – browse the net, email, view pictures, compose documents.

Though, as a lifetime Windows user I am still having trouble getting used to the Mac interface. (like the maximize button does not really maximize the window).

How much ever I like the MacBook’s styling the one thing I do feel at this time is that the MacBook can work only as a secondary machine. Windows will have to be the primary machine just because over the years I have gathered all the tools that allow me to get the maximum out of my Windows machine (not to forget the fact that I am a “Windows” based applications developer). Case in point – I have not found a good free replacement for Windows Live Writer for the Mac.

As I continue using the MacBook, I will blog about how I feel about it as well as blog about how to different things on the Mac, when you come from a Windows background.

Friday, September 11, 2009

Visualize your web-page DOM as a graph

Web-pages as graphs allows you to visualize a web-page’s DOM as a graph. Not sure if the tool has any analytical uses. But it is very cool to see it build out the graph.

Here is one I did for the DenverGov website that I work on.

http://www.aharef.info/static/htmlgraph/?url=http://www.denvergov.org

The following 3 pictures were taken at various stages into the construction of the graph.

2009-09-11_112209

2009-09-11_112226

2009-09-11_112919

Tuesday, September 08, 2009

How To Publish an ASP.NET Website from a Command Line

Via: http://blogs.msdn.com/securitytools/archive/2009/09/08/how-to-publish-an-asp-net-website-from-a-command-line.aspx (by Syed Aslam Basha)

A batch script to publish an ASP.Net website from the command line – very useful.

@ECHO OFF
set WEB_ROOT=C:\inetpub\wwwroot\mytestsite
set PROJECT_ROOT=D:\Source\website 

echo Publishing site %PROJECT_ROOT% to %WEB_ROOT% 

del /S /Q %WEB_ROOT%\*.* || goto Error
rmdir /S /Q %WEB_ROOT%\ || goto Error
aspnet_compiler -p "%PROJECT_ROOT%" /v /commercesite /d "%WEB_ROOT%" || goto Error 
 
goto Success
:Error
echo Site was not published

goto End

:Success
echo Site published successfully

:End

Software Engineering: An Idea Whose Time Has Come and Gone?

Recently read the article Software Engineering: An Idea Whose Time Has Come and Gone? Its definitely an interesting article.

My biggest take-away…. It will always be important to engineer a software product. But it is equally important to not get caught up in the engineering processes that are used to drive the construction of the product.

And if possible, never take on a software project where the value of the end-product will not be much greater than the value of effort taken to implement it – because on such projects one needs much tighter controls and the engineering process can begin to strangle the project it-self. Instead take on projects where the value of the out-come is much greater. That way, you dont have to worry as much on the engineering controls as much as the engineering design of the product. Finally, invest in smart people who will self-organize as a team to accomplish goals. Such teams will automatically create a well engineered product which comes in under-budget and on-time.

Monday, September 07, 2009

Best Practices for Your Software Available for Free

Here’s a quick summary of software and tools that offer best practices for you to use in your software from patterns & practices: Best Practices for Your Software Available for Free:

Stunningly Awful Demos: Five Things Not To Do in a Demo

from:
http://www.openforum.com/idea-hub/topics/the-world/article/stunningly-awful-demos-five-things-not-to-do-in-a-demo-guy-kawasaki

Five things to avoid in a demo. (And I know I have been guilty of each one of these as I learned how to present a product in front of a large audience – I used to present Feature Analyst and Lidar Analyst at user conferences and training sessions)

Here is a summary dump from the post (but I suggest you read the article as it describes every point in detail).

Don’t:

  1. Misunderstand the customer’s needs: “Harbor Cruise.”
    Do the research to figure out what your customers need in advance.
  2. Start with a corporate overview: “Death by Corporate Overview…”
    Get right to it. Don’t start the meeting with twenty minutes of corporate overview. Your corporate overview won’t matter unless you suck the audience in with your demo.
  3. Present a linear demo from beginning to end: “In the Beginning…”
    dont deliver long, linear demos that take forty or sixty minutes to reach the pay-off. The order of the day is to show a great result and then briefly show how easy it is to produce it.
  4. Do a feature dump: “Here’s Another Thing You Can Do.”
    You shouldn’t present your demo as if it’s product training: “Let me show you how to do this, that, and this other thing…” Explaing all of the menus, tabs, navigation and customization capabilities is a sure way to inflict pain.
  5. Show the same demo: “Everyone Loves This Feature.”
    If you use the same demo no matter who’s in the room, you will bore the senior customer participants, and they will leave early. You’ll have done training for the end-users, but the training won’t be necessary since you won’t get the deal!

Mike Rowe on Work – Ted Video

I have watched many videos on TED and I have enjoyed many and learnt a lot on a variety of topics. But this one by Mike Rowe was one that had many teaching moments in it that apply to everyday life. Very appropriate for this Labor day weekend!

A must watch.

the preservation of favoured traces | ben fry

An interesting look at Darwin's book "The origin of species", the animation traces the edits that Darwin made over the course of his life-time. The animation is mesmerizing and also under-scores why Darwin's theory is infact a scientific theory - it evolves and is not considered set in stone - an underpinning of any scientific theory.

the preservation of favoured traces | ben fry http://bit.ly/fRxr0 - More info: http://bit.ly/fRxr0+

Words - ripsnorter

ripsnorter • \RIP-SNOR-ter\  • noun
: something extraordinary : humdinger

Fold a Sky King Paper Airplane

As a kid I loved building paper planes. This video brought back some great memories. (My best one was a model of the space shuttle with ailerons, rudders and all).

Saturday, September 05, 2009

Centennial Airport Touch and Go Flight Tracks

Capture

The Touch and Go flight tracks and cross wind flight tracks map for Centennial Airport overlaid in Google Earth.

Here is what I found out while doing research when I was planning on buying a house in this area: The western most runway is the one that is used by most of the trainer aircraft. The “race-track” configuration shown above, I believe is what is used by trainee pilots to practice take-offs and landings. (DISCLAIMER: I am not a pilot and nor do I remotely claim I understand anything airborne – so do your own research and verify the above information for yourself)

The KMZ file below can be opened in Google Earth to get a better understanding of the flight tracks shown in the FAR Part 150 study and their relationship with the different areas around the airport. (Its what I used to create the screen shot above)

Also, the FAR Part 150 study page of the Centennial Airport has a ton of useful information that you can use to get a better feel for the noise associated with the area around the airport.

Centennial Airport Part 150 Noise Study

Disclaimer 2: Noise is a very subjective and relative issue – not everyone is similarly sensitive to noise – So again – do your own research – and figure it out for your-self.

Disclaimer 3: Because the image was overlaid manually – it is not perfect and some locations there might be a slight distortion of the exact area (eg: road or neighborhood is shifted a little to the north-west, etc).

[Update 09-05-2009] – Noise Level Map

Here is a noise level map that I got from the Part 150 study (page 4 from 09 CEN IssuesActions.pdf). This map is a lot more useful as it displays the noise levels based on abatement procedures as predicted for 2005 when the study was done. It attempts to predict what the noise levels will be. (Read the document to see what the abatement procedures were. Also check for yourself if the abatement procedures were implemented or not – as the noise contours could change based on that information).

image

The contours shown starting from the one closest to the run-ways are: 75DNL, 70DNL, 65DNL, 60DNL and 55DNL.

Download and view in Google Earth using the following link:

If there is another map overlay that you would like to see for this area – leave a comment with information about where I can get a copy of the map and I will try and create one and post it here. (Or create it your self – here is a video on how to do just that http://www.youtube.com/watch?v=D9LcwbwQgzk)

[Update 02-08-2010]

I bought a house inside the 4th ring from the airport. After living in that area for about a month and a half here is what I can say about the noise level: the planes are noisy - some more so then others. But for the most part you just get used to it and you begin ignoring them. I lived in downtown Denver (Capitol Hill) and to compare the noise level, I must say that it is easier living here - as the airplane noise is not constant - as opposed to the constant noise of traffic and emergency vehicle sirens downtown. So it definitely is not too bad. But there are some propeller planes that are really NOISY. I wish there were a way to identity these and report them to the noise mitigation department at the airport. The jets are surprisingly quite - must be the newer technology and the speed with which they depart the airport's vicinity. Most propeller planes (seem to be students) arent noisy. So I think it is probably the real old ones or badly maintained ones that make the most noise.

Will continue updating as I continue living in this area.

Thursday, September 03, 2009

Some ideas in the Health Care Reform Package

Here are some of the reforms that are part of the health care coverage that is makings its way through Congress currently:

  1. Cap on out of pocket costs
  2. No limits on total paid out over the lifetime of coverage
  3. Preventive care will be covered
  4. Pre-existing conditions will be covered
  5. Coverage will not be denied because you or someone in your family get sick
  6. Guaranteed renewal of insurance coverage

Sounds like all good ideas – not sure what the fuss is all about – seems pretty clear to me that as a patient I would want all of the above to pass.

When not to use Bit.Ly urls

When the case of the letters in the URL cannot be conveyed – then you should not use Bit.Ly. A perfect example would be when you need to give some one a URL over the phone (or a podcast) – unless you dont mind saying “uppercase A, lowercase x, uppercase C”.

Here are some examples:

http://bit.ly/Yr7qw – goes to MSDN article “When to Use MSDE”.

http://bit.ly/Yr7qW – goes to an article on www.myDigitalfc.com

http://bit.ly/Yr7QW – goes to GumTree.com (a weird dating site!)

You get the idea!

Use the TinyURL service if you dont want your URLs to be case sensitive: http://tiny.cc/7ww2e
http://tiny.cc/7ww2E
http://tiny.cc/7WW2E

All of the above resolve to the same MSDN article.

Microsoft SharedView

Need to share your desktop with other people? Need it to work across FireWalls, etc?

I just tried Microsoft’s SharedView.

Here are my thoughts:

  • Its extremely easy to use.
  • You dont have to worry about firewalls and all. SharedView does its thing and you automagically begin sharing your desktop with others.
  • It is more like a GoToMeeting app, where you host a session and then provide others the session name and password that they then use to log in to your session.
  • SharedView uses your Microsoft Live ID – I like this very much! (dont have to remember the details of yet another account)
  • Allows you to share your entire desktop or just a specific application – this is cool too and I havent seen this feature in other applications
  • Allows other users to point at stuff on your computer – again very cool when you want to do collaborative work.
  • You can give others control of your desktop or just the application – again a nice feature.
  • Its not the fastest screen sharing application. You can see a lag time when the other person’s mouse is moving.
  • Its FREE!

A quick note:

If you want to use ZoomIt – then you need to share the entire desktop – not just a single application window.

You can detach the chat window – very nice if you use dual screens.

Wednesday, September 02, 2009

Google My Maps – RTD Call n Ride service areas

While looking for a house in Denver, one of my requirements has been that the house should be close to the light-rail corridor. To verify the requirement I would check the address in Google Maps, but I could never determine if the house fell into a Call-N-Ride area. So I created this map based on GIS data that was available on the RTD site.

Learn more at: http://www.rtd-denver.com/callNRide.shtml

From RTD’s website: RTD call-n-Ride is a unique curb-to-curb transportation service, taking riders to and from destinations within a designated geographic service area. Riders can travel from home to work, shopping, doctor's appointments and return home from any other destination within the geographic boundaries of each call-n-Ride service area. call-n-Ride vehicles are small buses and are wheelchair accessible. The service is also designed to connect with many RTD park-n-Rides, other RTD bus routes and light rail for travel throughout the metro area. Best of all, call-n-Ride costs the same as a Local cash fare.
Service Areas
RTD currently operates 19 call-n-Rides throughout the metro area. Click on the call-n-Ride areas below to find more information about the service including service area boundaries and contact information.

(data downloaded on 09.02.2009)


View Larger Map

ShapeFile to KML

Quick, easy and free way to get from shapefile to KML – use Shp2KML. Shp2Kml works well but fails when the shapefile has a projection that is different from lat/lon or UTM.

image

In this case use FWTool’s Ogr2Ogr.

ogr2ogr -t_srs EPSG:4326 -f KML outPutFileName.kml inPutFileName.shp

More information about using ogr2ogr:

To get all the attributes in the shape file use OgrInfo:
ogrinfo ParkNRides.shp -al -fid 0
the above command outputs all the fields associated with the shape with ID 0. This will give us a list of attributes in the shapefile.

Next use the following command to output the fields with the KML file:

ogr2ogr –SELECT “field1 field2 field3” -t_srs EPSG:4326 -f KML outPutFileName.kml inPutFileName.shp

ArcGIS Explorer in Windows 7

ArcGIS Explorer 900 works on Windows 7

image

Though – it seems to interfere with the Aero display framework:

image

Tuesday, September 01, 2009

Developing for SilverLight 3

If you plan on using Visual Studio (2008) for SilverLight 3 development then remember to install the SilverLight 3 Tools for VS 2008.

Get if from:
http://www.microsoft.com/downloads/details.aspx?familyid=9442B0F2-7465-417A-88F3-5E7B5409E9DD&displaylang=en

If you create a project in Expression Blend 3 and you are unable to open the project in Visual Studio, then you most probably havent installed the Silverlight 3 tools for VS 2008 package.

If you have SilverLight 3 tools installed for Visual Studio – you should see the following project templates in the new project dialog:

image

Words - holus-bolus

holus-bolus • \hoh-lus-BOH-lus\  • adverb
: all at once