Andornot Consulting Inc.
Home Page
Home Page
 |  | 

Friday, January 26, 2007

Enso Launcher (pretty, flashy, and nice)

After reading Scott Hanselman's blog post today called "Another Way to Replace Start Run - Enso Launcher" I downloaded it. Very nice!

Until now, I haven't found a challenger to SlickRun. If you don't have SlickRun yet, download it and enter Win-Q bliss. For working on development projects I've got projectname set up as a link to my Visual Studio solution file, _projectname set to open the project source files in explorer, and >projectname set to open up any related documents etc. for the project in explorer. I probably hit the Windows key - Q combination a 100 times a day. And you have to love "morning", my shortcut set to automatically open up Outlook, RSS reader, and QuickBooks in one fell swoop.

However, having said that, it takes much too long to set up shortcut links when you're focused on getting something done (leading to sometimes days of countless drilling down in explorer to find a regularly accessed item). And, though possibly a bit too hedonistic, it just isn't very pretty and flashy and nice. I've tried Launchy, but while pretty, flashy, and nice, it just doesn't seem to do it for me.

Enter Enso...it might be what I'm looking for. My favourite commands in the few minutes I've been using it:

  • minimize: egads! A shortcut to minimize a window in Windows! What a concept.
  • google search term: in SlickRun I do "google", whch then opens up google.com and then I enter search terms.That much quicker (and prettier).
  • calculate: highlight a calculation in any application (i.e. 768*98+20908), highlight it and run calculate. Presto, the calculation is replaced with 96172.

And it's so pretty, flashy, and nice! Now if they would just change the shortcut from the awkward CAPS LOCK shortcut key; I think I'll be using the CAPS -> Alt to turn on and then Alt -> CAPS to turn off combination, but then my minimize command becomes that much more convoluted. Having played squash for the first time ever last night with Jon, I realize my squash playing abilities are about as dexterous as holding down the CAPS key while typing something with the letter "a" in it (why does a squash ball just not bounce like every other ball on this planet?).

Wednesday, January 24, 2007

Life with AJAX

ASP.NET AJAX (code-name "Atlas") v1.0 was released in full yesterday. It's exciting stuff, even if it's yet another package to swallow and digest on top of all the other innovations that have come flying thick and fast this past year. It can get disorienting, to be honest. Probably my age catching up with me - I'm no spring chicken. More of a late summer chicken. It's a good thing I learn fast. (Kids! If you come out of school having learned nothing else but how to learn, you're all good! Xcpt yor eng skiLz suk!)

The fun part is looking at the candy in the AJAX Control Toolkit. Like touring Willy Wonka's Chocolate Factory, and I'm Augustus Gloop.

Friday, January 19, 2007

Blogger bad. Bad Blogger.

Oh, Blogger. Where did we go wrong? What a pain in the southern hemisphere you have been lately.

We had a little trouble migrating the Andornot News blog to the new version of Blogger. As in, it simply didn't. Migrate. What did you want me to do, Blogger? Get out and push? I had to completely reconstruct it from scratch, so thank goodness I had the archives as we publish it to our server instead of letting Blogger host it.

The news blog has more than one contributor, which makes it a team blog, which apparently makes it easier to quantum teleport to the dark side of the universe than to migrate from old to new Blogger. I took all the precautions Blogger told me to take, but was still left standing at the altar. Of course, afterwards I got the explanatory skinny from The Real Blogger Status, which is  is a good place to go and see what you should have done, after you have irrevocably fragged your blog into null-space forever.

All I can say is, I'm thinking hard about WordPress.

Thursday, January 18, 2007

ValidationGroup in ASP.NET 2.0

It seems like I just can't find enough gotchas this week. My latest is the use of the ValidationGroup attribute when validating user input in ASP.NET 2.0.

If you use ValidationGroup="Foo" on a validation control, then the postback control (a Submit button, perhaps) must also reference that validation group, or no validation occurs. In hindsight, this is logical and even obvious. Hindsight is always annoyingly obvious. Meanwhilesight, however, had me crossing my eyes in vexation because I couldn't understand why the validation controls simply weren't firing (client-side or server-side).

I had used ValidationGroup on all my validation controls, but had forgotten to reference the group name when I added a button the next day. The .NET can be a harsh mistress.

Wednesday, January 17, 2007

BookWhere, MARC Records and Inmagic Genie

A client of ours recently started using the new BookWhere XML MARC record import feature of Inmagic Genie. They noticed that although the new feature allowed them to import MARC records nicely into Genie, it did not import a call number from any of the records. There are several MARC call numbers that could be used, depending on the classification system used by the Genie user. See http://www.loc.gov/marc/bibliographic/ecbdclas.html for specifics on which MARC field you should use. We have used MARC field 050 - Library of Congress Call Number - in this example (leave out leading zero). Here is the code we added to the bookwhere.xsl file (located in the ImportFile folder of Genie):
Click on the image to see larger view.

Yes, we have no bananas

I *am* calling it during Render, you paraphylectic polygon. That's the whole point.

Monday, January 15, 2007

"Interesting" WAP quirk #87

Anyone using WAP (Web Application Projects) for ASP.NET 2.0 development will know what I'm talking about here: you love it for some things (otherwise, why would you bother using it?), and will just shake your head at the time wasted trying to figure out its various little quirks. Peter (as usual) had an eloquent/insightful/as-usual-make-me-roll-on-the-ground-laughing way to describe WAP implementation the other day, but I can't remember it (perhaps he'll come up with one in the comments?). But here is quirk #87 (or whatever quirk we're up to now): I am attempting to change a Profile property in a WAP project following successful login. This works no problem in a typical Website Project, but in a WAP I get this: "This property cannot be set for anonymous users". Ummm, nooooo...the user is not anonymous as the only way to get here is if the user has successfully logged in. Googling brought up others with the problem, but no solution. So here I am to save your day (or at least brighten it up a little bit): private WebProfile profile; private WebProfile Profile { get { if (profile == null) profile = new WebProfile(Context.Profile); return profile; } } protected void LoginControl_LoggedIn(object sender, EventArgs e) { Profile.Initialize(LoginControl.UserName, true); Profile.PropertyYouWantToChange = "New Value"; Profile.Save(); // Note that you've got to save here if you turn Profile AutoSave off in the Web.config (recommended) } In retrospect, you can figure out why this rigamole is required (well, maybe), but it still shouldn't be that way. Oh well...I await some Tyrrellian Quote that will help us deal with the emotional pain.

Hanselminutes Podcast

Every Saturday morning I clean the house and listen to podcasts on my iPod. My favourite is Hanselminutes. My second favourite is The Word Nerds, which doesn't help me grow as a developer like Hanselminutes, though it does help grow my already keen sense of grammatical fascism. Hanselminutes is hosted by Carl Franklin and Scott Hanselman, an unflappable web developer and technologist* who blogs and speaks frequently about utilities and tools and ASP.NET and Windows, with much practical advice. I learn a lot about new technologies from his weekly show, without having to read dull dull whitepapers. Scott likes his podcast tag line to be "the show that doesn't waste your time" and to date, it never has. http://www.hanselminutes.com * I don't know what a technologist is either, but it sounds cool.

Monday, January 08, 2007

Free 30 minute consultation

We have just completed our first 30 minute free consultation with Yanming Fei, Librarian at the Alberta Securities Commission in Calgary. In the brief Webex and phone session we were able to show Yanming how to determine which forms were being used to display data in her web-based catalogue textbase and then how to modify several lines in the full display form. Now she can do any new modifications herself.

This offer was extended to our clients in our 2006 Christmas mail out. We have several other clients lining up to take advantage of this and to get the most out of their Inmagic software. We encourage others to do the same. Please contact us via email info@andornot.com or phone 1-866-266-2525 local 1 or 604-269-2525 to arrange a mutually convenient time. This offer expires January 31, 2007.

ASP.NET 2.0 Profile with Web Application Project Gotcha

When using Web Application Project with Visual Studio 2005 instead of Website Project, the profile personalization feature new to ASP.NET 2.0 doesn't "just work" the way all the articles describing Membership and Profile say it does. The strongly-typed ProfileCommon class is not auto-generated and Intellisense tells you it has no idea what you're talking about when you attempt to access HttpContext.Profile from code.

ScottGu reveals (full article):

VS 2005 Web Application Projects don't automatically support generating a strongly-typed Profile class proxy. However, you can use this free download to automatically keep your own proxy class in sync with the profile configuration.

I got quite frustrated, enough to bang the desk, but fortunately not enough to emit a Primal Yodel. As usual, Super Ted came to the rescue and pointed me to the above download.

UPDATE June 25, 2007 - The gotdotnet site in the "free download" link above has shut its doors, possibly forever, so here is a copy of the Web Profile Generator for your downloading pleasure: Web Profile Generator download.

UPDATE II from Ted, July 4, 2007 - As of yesterday, the Web Profile Generator lives again on CodePlex: http://www.codeplex.com/WebProfile

Labels: , ,