Thursday, March 24, 2005

IT: SQL view migration

I love SQL. It's an awesome tool. And SQL 2000 blows me away with how easy it makes commonly used SQL tasks. Unfortunately, one of its nifty data import wizards bit me when copying from dev SQL box to the live SQL box. Apparently, when you import a view, it just makes a table of that view. Yup, just a bunch of static columns - nothing referring to the original data! Bad. I had to go in by hand and copy the SQL code view by view to rebuild the live views. Being an SQL newb, the expectation is there's a much more graceful way to do this. So far though, the recommendation is: be careful!

Thursday, March 17, 2005

.NET: Conjecture on UserControls

I have become fond of the Web UserControls in .NET. They are undoubtedly clunky in their injection of strange namespaces and tags into your .ASPX file but the promise for easily reused HTML is awesome. What remains to be understood is how far these controls can be pushed with validation and client-side scripting. Clearly it can be hacked in there, but if MS facilitates easy ways of catching and acting upon postbacks & validation failures on an ASCX (UserControl) file, it opens up a world of possibilities beyond HTML reuse. For example:

Let's say you make CustomDateControl which pulls in a date field. If the framework is bright enough, you could assign a valid date range to said control. Upon validation, control would push back and inform the user "outside of range". One step further: client side validation could push back even before the postback is made.

This touches on another subject mentioned in previous blogs. Validation. I am fond of and old Java-style method of error reporting, the Observable/Observer interface. If a web control could pulse a message like this, then another listening control could grab it and display messages appropriately. Again, if there is a transparent client-side mechanism to do this, then the possibilties are impressive.

Saturday, March 12, 2005

.NET: Repeat after me

Working with Repeaters. Useful, but ... esoteric. Utilizes the < % # block syntax which apparently is like < % = but for data-bound situations. Make yourself an IEnumerable collection returning an object type with properties, then use DataBinder.Eval to pull 'em back out again. I hesitate to say "simple" but certainly effective. Goodnight!

Thursday, March 10, 2005

.NET: unmodified WebUIValidation version mismatch!

So the hacking of the WebUIValidation code continues. But low and behold, my WebUIValidation.JS didn't match the one on the server. I found this odd, because they both are in the aspnet_client\system_web\1_1_4322 folder. But the live site's version had a function which returned a value, where my own did not. I never touched that code, so lesson is: Use your diff tools!! :) Evidently 1_1_4322 doesn't exactly mean you're dealing with the same build, after all!

IT: Colocation: Quest for the Holy... anything?

So today I've spent a good amount of time researching colocation facilities. It's not like the golden days of the .COM bubble, man these suckers look like they are just scraping by. Not only that, but good luck finding a strongly-rated colocation facility. Compared are Alentus, Hurricane Electric, BurstNET. Technically Alentus isn't a real CoLoc, since you can't put your own hardware in. Don't expect much out of epinions or bizrate, either - at best you're only getting hosting reviews, not colocation reviews. Notably excepted is Hurricane Electric, which received a mere 5 reviews, and spotty at that.

Where oh where is Exodus now? "Savvis" can blow me. Any hosting service whose own website doesn't work right is enormously suspect. I mean come on. If you can't link to your own pages properly, how can you be expected to host a mission critical server? SecureWebs suffers from this as well. Maybe their Athlons are overheating? :)

---

I just received a call from a business partner asking if I'd read my email. No. Because I haven't received it. Evidently, POP3 isn't retrieving it properly - have to use the webclient. It's an epidemic, I tell you! nrgtech.com: -1 point

Negative endorsement list:

BurstNET
Savvis
nrgtech.com

Positive endorsement list:

Alentus: kick-fucking-ass tech support
HE.net: helpful support, and cheaper prices than Alentus

.NET: Getting aggressive with validation: Hacking WebUIValidation.js

The built-in validation in .NET can carry you far. While not totally sold on pushing my business logic that close to the presentation layer, the Validation suite certainly makes it easy to create robustly validating ASPX pages. That said, quickly I became dissatisfied with its limited method of notifying the user of an invalid state. Sure, a text string in red notifying you of the offending data is a good start - but I like stuff that CANNOT be missed by the user. We know how users can be :) I prefer attention grabbing shit, like turning the background red behind an invalid field. Good look missing that! Furthermore, it confuses me why MS didn't include the option to move cursor focus to the offending fields. That seems like a no-brainer. All this clever JS validation stuff, but nobody thought the user would actually jump right to the invalid entry field? duh.

So, for my present project as a gift to my incredibly fucking cool client, I am doing some off-the-clock work to make this happen. Here's the breakdown of what is to be improved from regular MS validation:

1. Aggressive, easy-to-notice RED BACKGROUND behind offending data fields
2. Focus which automatically moves to the first of aforementioned fields
3. Homogenous behavior on both the client and server side, incase someone bypasses the JS or plain can't run it (poor bastard)

Wednesday, March 09, 2005

IT: Products that [almost] work as advertised: External USB Hard Drive

You never know how well a product fits your needs until you get your hands on it yourself. Ages ago, I purchased an Archos Recorder jukebox and within a week it started acting funny. Yes, that's a negative endorsement. I lived with it until it finally bit the big one, at which point I cannibalized its 20gb 2.5" HD into an external USB 2.0 case.

Things went smoothly for a while, until I attempted to use the "1.1 compatibility cable" and found that still not enough power was being provided to the hard drive. USB1.1 is not always implemented to provide enough juice, so "special" USB cables were made with 2 connectors. This proved to not be sufficient, and I experienced numerous "power surge" and write failure issues. Not only this, but it took a while for these errors to start manifesting themselves. I used the drive successfully for about a month before these issues arose.

There is a 5V connector right on the enclosure (a definite plus) which I've yet to utilize, but plan on doing so shortly.

The sexy enclosure is "Mapower Warps" (review). It works beautifully in a USB2.0 only environment, but if you have any 1.1 machines - hold off for now.

General: Introduction

It's 2005, and here is the first blog I've ever done. Having 14 solid years in the IT industry, you could say I'm a bit late :) To keep things interesting for everyone, this blog focuses on specific IT/tech situations encountered from day to day. Because I am a member of a band, expect these blogs to stray into audio production as well. Also, expect numerous blogs pertaining to .NET development.

The titles reflect the content of the day's blog. If Audio Production doesn't interest you, you can safely bypass entries entitled "Audio Production: XYZ" as I will diligently be laser-beam focusing only on THAT topic for that entry.