Search

Archives

Categories

blog swap (16) books [non-technology] (4) books [technology] (2) code [.net] (10) code [t-sql] (3) code [vbscript] (2) coding (21) dogs (4) funnies (31) links (7) microsoft (100) one liners (19) parenthood (16) ramblings (114) sports (9) technology (68) testing (2) video games (24) workplace (1)

Subscribe

Email or RSS 1.0, RSS 2.0 & Atom

Ignore

growled on Tuesday, June 19, 2007 8:44:52 AM (Pacific Standard Time, UTC-08:00)
barked at microsoft | technology

A few months ago, Omar complained about a deprecated feature in Excel 2007...synchronizing SharePoint lists with an Excel table. One of our Excel SDETs, Jon Adams, recognized this problem also and wrote an add-in to work around the issue. I put Jon in touch with Omar and he was pleased with the add-in, but it hadn't been released to the public yet so neither he nor I could post it. Well, now it has...

Publishing and Synchronizing Excel 2007 Tables to SharePoint Lists

Before you despair, Jon Adams created an Office Excel 2007 add-in, Excel 2007 Add-in: Synchronizing Tables with SharePoint Lists, which adds a button to the Table Tools tab on the Office Fluent Ribbon. This add-in allows you to publish a read-write list to Windows SharePoint Services. Note that you cannot save the workbook in the new Office Open XML Formats. Instead, to retain the functionality, you need to save the workbook in the Excel 97-2003 (Biff8) file format.

~tod

tags: ,

growled on Wednesday, June 13, 2007 12:48:34 PM (Pacific Standard Time, UTC-08:00)
barked at ramblings

An interesting ~10 minute video, The Most Terrifying Video You'll Ever See, that discusses global warming [in an abundantly simplified manner].

I have no idea who this guy is, where he's been or what his credentials are [his user profile says "high school science teacher in the process of burning out"], but I tend to agree with his logic. Of course, I try to "live green" anyway, so agreeing with him isn't too much of a stretch for me.

And...he wasn't treated too well in the comments [not surprised in the least] so he posted an interesting/comical follow-up, Patching Holes #1.

~tod

tags:

growled on Tuesday, June 12, 2007 11:16:54 AM (Pacific Standard Time, UTC-08:00)
barked at microsoft | technology

I mentioned it a few weeks ago [Hotmail + Outlook = Email Nirvana] and it's finally here! Omar broke the news [at least for me] in his post, Hotmail + Outlook = Sweet [hmm, I think he might have just ripped off my title! ;-)].

With Microsoft Office Outlook Connector Beta, you can use Microsoft Office Outlook 2003 or Microsoft Office Outlook 2007 to access and manage your Microsoft Windows Live Hotmail or Microsoft Office Live Mail accounts, including e-mail messages and contacts for free!

Download it here. Seriously good stuff!

~tod

tags: , ,

growled on Monday, June 11, 2007 12:28:00 PM (Pacific Standard Time, UTC-08:00)
barked at technology

lifehacker has an article today, Organize your digital photos with Picasa, in which the author is enamored by the "ninja-like way Picasa helped me organize my photo collection." It's a semi-interesting read that raises some valid points/perspectives for how to keep track of your digital pix [1,000s in my case]. Although I'm comfortable with my methodology I always enjoy reading how others do it...maybe I'll catch a good tip or two. ;-)

Here's why Picasa is something I would stay away from:

Once you've copied or moved images around in folders within Picasa, do NOT tweak with them in Windows Explorer. I actually lost edits that I had made to two folders doing this.

That's a deal breaker for me. They've hooked you and are now just reeling you in. Ugh, now you're locked in to their app if you want all your organizational work to count for something going forward. No thanks!

I recently posted a how2 [find the date a picture was taken] that references this subject and the meaning behind my madness is this very subject...picture organization. I'm writing an app to rename all of my digital pictures based on a few select EXIF properties to keep things more organized. I'll have more on this in the near [I hope] future.

Meanwhile, an alternative to Picasa is Windows Photo Gallery, which comes with Windows Vista. Photo Gallery allows you to tag photos while importing them from your camera, make edits such as remove red-eye and cropping, and share them with family/friends. An especially nice feature, in my opinion, is that it "preserves the original 'digital negative,' so even after you edit the picture and save it, you can return it to its original form." Nice. :-)

~tod

tags: ,

growled on Friday, June 08, 2007 8:22:49 AM (Pacific Standard Time, UTC-08:00)
barked at funnies | video games

This is too funny. =) Be warned though, there are lots of expletives [only in subtitles] if you're offended by that sort of thing.

direct link

~tod

growled on Wednesday, June 06, 2007 9:06:11 PM (Pacific Standard Time, UTC-08:00)
barked at code [.net]

It's been awhile since I wrote a how to post, so here goes one taken from my latest little side project.

How to find the date a picture was taken [DateTimeOriginal] from the EXIF1 metadata using C#.

I discovered that the EXIF data is a bit of work to get to. It's not just a matter of instantiating an object off of the picture (jpg, bmp, etc.) and picking out the property you want based on the name. Oh no, that would be way too easy. :-\ There are some hoops to jump through.

Actually, the EXIF values are stored in the Image.PropertyItems collection, but the properties are all stored based on an ID without any immediate reference to the name. So you have to know the ID of the tag you're looking for. I found this list mapping tag ID to property name. The DateTimeOriginal property ID is 0x9003. Um yeah, that's a hexadecimal value, meanwhile the PropertyItems ID property uses an integer value. That means you have to convert the hex value to an integer, like so [must remove the 0x prefix]:

int id = int.Parse("9003", System.Globalization.NumberStyles.AllowHexSpecifier);

Now that we have the integer representation, we can grab the PropertyItem out of the collection:

PropertyItem prop = img.GetPropertyItem(id);

Here's another interesting little twist... The PropertyItem.Value is stored as a byte array. So now you have to convert that byte array in to something useful. I chose to first convert it to a string from which I could later manipulate it into a DateTime object. Fortunately, .NET provides the Encoding class with the ASCII property that makes this a trivial thing to do [thanks Sahil!]:

byte[] asciiBytes = prop.Value;
string strDate = System.Text.Encoding.ASCII.GetString(asciiBytes);

Now we encounter another little twist. The string comes out in a format like "YYYY:MM:DD HH:MM:SS" which would be "2007:06:06 19:43:31". Notice that the year, month and day are separated by a colon [":"] instead of a dash ["-"] or forward slash ["/"]. That means we have to first replace those colons with forward slashes before we can convert it to a DateTime object:

DateTime dateCreated = new DateTime();

// Pull out the year, month, day and time individually from the string
string dateYear = date.Substring(0, 4);
string dateMonth = date.Substring(5, 2);
string dateDay = date.Substring(8, 2);
string dateHourMinSec = date.Substring(11, 8);

// Create a stringbuilder that is formatted for conversion to DateTime
StringBuilder sbDateCreated = new StringBuilder();
sbDateCreated.Append(dateMonth + "/");
sbDateCreated.Append(dateDay + "/");
sbDateCreated.Append(dateYear + " ");
sbDateCreated.Append(dateHourMinSec);

// Convert the string to DateTime
dateCreated = Convert.ToDateTime(sbDateCreated.ToString());

VoilĂ , you now have a DateTime object that represents the date and time the picture was originally taken. :-) And here is a class for a console application if you want to see it all put together [and even compile it yourself]: GetDateTaken.cs.txt [right-click -> save target as...]

While working on this I came across Reading EXIF Tags From JPEG Files  at VBAccelerator.com which goes into quite a bit more depth and also provides some nice sample code in the downloadable project.

Hope that helps!

~tod 

DISCLAIMER: As usual, my standard code disclaimer applies and I welcome all suggestions for improvement.

1EXIF (exchangeable image file format) is a specification for the image file format used by digital cameras that stores the properties of an image such as date/time taken, ISO speed, camera manufacturer, camera model, flash, resolution and many, many others.

growled on Monday, June 04, 2007 1:30:21 PM (Pacific Standard Time, UTC-08:00)
barked at ramblings | technology

Thanks to Omar, I recently started reading Unclutterer. They have lots [and I mean lots] of great [and I mean great] suggestions for how to organize different aspects of your life. A few personal favorites: the computer file, perfect charging station, fewer clothes can reduce laundry, photographing mementos and the paper clutter begone series (1, 2, 3, 4). All of these articles have prompted me to start thinking about other areas that I can unclutter.

I don't know about you, but I read 20-40 RSS feeds (aka: web sites) a day from my home page [currently set to Netvibes].

Quick aside: I used Live.com for a long time, but prefer the user experience of Netvibes. I should do a comparison, but that's another post.

Anyhooo, I find that I add feeds over time while some of the existing ones will stop posting [Gretchen and Zoe :-(] or go down a path that's just no longer interesting to me. Thus, I end up with feed clutter on my page. Feeds that I just ignore and work around while my page gets bigger and bigger forcing me to scroll around [I hate that...a personal user experience pet peeve]. So just like those grunge-esque flannel shirts I have left over from the 90's, some of my feeds got-to-go. ;-)

While I'm busy uncluttering my feeds [and life] head on over to Unclutterer! Here's a good one to get you started: what causes clutter in your life 

~tod

tags: ,