Welcome to blog.chinoy.com Sign in | Join

November 2008 - Posts

I'm back. I went to Chicago and Florida a while and came back with a 15g platinum ring.

Yesterday, I had need to download a brother-in-law's Picasa photo album. He had a sizeable number of pictures and, although I could view each picture individually and use the Picasaweb's "Download Photo" function, I wanted them all.

I looked at the Picasa application and saw in the File menu there's an "Import from Web Albums..." function - but that's just for your albums. I wanted someone elses.

I looked through Picasa and Picasaweb's help for a while until I realized it's Google, it has an API. I've always wanted to play more with the Google APIs, having used their chart API.

My winapp browser took about an hour, includes a login, album lister, picture lister, picture preview, and album download functions. The real kicker was a subclassing of the PhotoQuery to create the proper REST URI to access "unlisted" albums (as long as one knows the correct authorization key).


There are a bunch of things that could be improived, but for an hour - which is slightly more than downloading 100 pictures by hand - I've got a reusable app to pull pictures!

0 Comments


iPod Touch 16gb (original); T-Mobile G1 Android; Nokia E70 (my trusty old phone)
0 Comments
"Peshawar — Top Al-Qaeda Commander Abu Kash is among the 30 dead when suspected US drone fired two missiles at a house of a tribesman in Essory area, two kilometer short off tehsil Mir Ali in North Waziristan Agency Friday night."

Drones again strike NWA, 30 killed Senior Qaeda leader among dead - Pakistan Observer

Pakistan - NWFP

People might note from reading this blog, Mir Ali is where Hamza Rabia - an AQ plotter who tried to kill Musharraf in 2003 - was killed via Predator drones on 12/03/2005, in Asorai/Asoray/Essory, a suburb of Mir Ali (33 1 16 N, 70 17 21 E). The military cantonment in Mir Ali (where Pakistani troops hide) is at 32 59 0 N, 70 15 37 E.

0 Comments

With Bonus: LINQ to SQL!

I deal with many Microsoft Dynamics CRM servers that are in many different states of configuration and I often want a quick view of those configuration settings. This version of CRM, 4.0, appears to be in a bit of a philosophical transition with regards many things, including as to where to store their configuration settings - in the registry or in the CRM configuration database - a quandary that provides a huge challenge to their internal code when it comes to precedence for SDK calls vs client calls, etc. It's very helpful to look at these two places at once when determining if plug-in or client javascript sdk calls are failing.

I came up with the "CRM Environment Check" app that displays both and also saves the output to XML. Nothing special - it took me about 10 minutes last night to think of it, 10 minutes to fire up the VM and get halfway done, and 10 minutes this morning to polish it to what you see here.

Works as promised, with XML output.

I like to add a few techniques to my toolbox so I figured I'd put in LINQ to SQL for the access to the MSCRM deployment properties table. I did, it was pretty easy and I was aglow.

At least, that's what I thought.

Crowing about my success - sorry blog, I couldn't wait - I told Chris who immediately and cruelly started mocking me about the death of LINQ to SQL and my poor choices in life.

I read this on my favorite tech website, InfoQ, Is LINQ to SQL Truly Dead?, dated yesterday.

Glad I didn't do much more with LINQ to SQL other than a "select" statement.

This experience has been a quick lesson in Microsoft technologies - the newest stuff looks easy to use, has lots of promise, and delivers (when I get around to using it), but inevitably, has some, shall we say, "scaling" issues.

// Define a data object class [Table(Name="DeploymentProperties")] public class DeploymentProperty { [Column(Name="NVarCharColumn")] public string Value; [Column(Name="ColumnName")] public string Property; } ... using System.Data.Linq; ... DataContext db = new DataContext(configDbConnect); Table DeploymentProperties = db.GetTable(); var query = from p in DeploymentProperties where p.Value!= null select new { p.Property, p.Value }; foreach (var row in query) deploymentPropertiesValues.Add(row.Property, row.Value);

Update: Version 1.1.0.4
Now includes ADSI to display Microsoft Dynamics CRM IIS website info and the hosts file, needed for determining the workaround for the hardcoded 'localhost' in RTM's services. (There is a hotfix for the hardcoded 'localhost' particular issue.)

0 Comments