Thursday, July 21, 2005

Development: Binary XML, Web Services

Okay, I have done tons of reading on the binary XML subject. There are 4 (semi) prominent players:

- wbXML (old, but looks like it still is active in the wireless carrier market)

What's good about wbXML is that carriers are using it now, and it's an established W3C standard. It lacks important XML features (element names must be known beforehand, and perhaps the whole schema) but being that it *IS* XML nothing says you couldn't non-invasively extend the spec yourself to compensate for the shortcomings.

- Fast Infoset

Sun's champion, it may be complicated but it sure looks complete. This is our golden hope for true binary XML, and it is now an ISO standard to boot. Reference implementations of XML-RPC, Fast Web Services and more are in development as we speak.

- W3C's slothful XML Binary Characterization

Apparently Sun has a play in this, too. It's been chugging along for nearly a year - and the W3C papers are voluminous but informative. God only knows when we'll actually see a real specification.

- XOP

This one gives me the chills. This has been touted as the new industry standard (along with MTOM) for pushing SOAP w/ attachments around. I recognize the need and respect the problems that it addresses, but the end result is more metadata bulk accompanying your SOAP, more filters to go through but at least a smaller message size ... sometimes.

---
Now, a small rant about the naysayers of binary XML. The complaints of "non-readability" and "XML is a text standard" are mind boggling. What are you people smoking? One of the major tenants of binary XML is its transparent conversion to and from textual XML. Hello!! Standard command line tool "xmlc -fromb -tot file.xml" anyone?

Let's not forget the "who cares if it's bigger" folks also. XML isn't just bigger. It's orders of magnitude bigger. Do you want to pay for the extra bandwidth those chunky SOAP messages consume? You don't? Really... because neither do we!

The only valid argument the XML-for-text evangelists have is their claim that the text processing isn't a big CPU burden. Luckily for us all, CPU power is so incredibly cheap now that the 2-3x performance hit for all that text processing really doesn't sting much.

My next target of reading is on the very interesting and promising WS-* standards. Stay tuned

Saturday, June 18, 2005

JAVA/J2EE: Primary Keys & XFR Technology

That stands for “eXtremely Fucking Retarded”

I’ve been reading on this one topic all day, which is becoming the norm for my J2EE/EJB research. Here’s the final verdict:

EJB 1.x and 2.x do not support auto-incrementing ID (primary key) fields in a database. Stop for a second and consider how retarded that really is. After serious digging, here are the responses to plaguing question of ‘what the fuck do I do?’:

1. Go for a vendor-specific extension of EJB that lets you do it. WebLogic, WebSphere and JBoss have em. Sun App server does not appear to. Just my luck, I’m using Sun App server
2. Go O.G. style and make an entity table with a “sequence” and “entity” column (i.e. tablename and ID count)
3. Make a special bean that manages IDs, thus emulating #2
4. Insert pseudo-random #’s for your ID’s (like system time…. Ew)
5. Scratch your head attempting to figure out where all the time savings are

EJB 3 finally has auto-increment support, but isn’t ready for prime time (app servers aren’t to that spec yet) It took Sun 6 years to include this very basic concept in their specification. Very disappointing. All this agitation is going to make for some serious elation once I manage to get anything to work.

Friday, April 15, 2005

.NET: That's right bitches!!!!!!!!!

After many failed interviews (where often you are told you don't have the "skill"), one really starts becoming agitated and doubting one's own abilities. My latest prospect forwarded me a C# BrainBench test. I NAILED that fucker!!! Out of thousands of test takers around the world, I scored in the top 4%!! EAT THAT you lame-ass HR fools! Wooooooooo

Normally I go for purely informational blogs, but shit... this was too good to hold back...

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)