My HTC Wizard (Cingular 8125) is now proudly sporting a Windows Mobile 6.0 ROM, plus a few other toys.
The awesomeness is breathtaking. I'm still playing with all the new features. I'll provide further detail here in a day or three.
Welcome to a blog about nothing more than a bit of code, a little tech, occasional ranting, a little raving.
Sunday, July 29
Tuesday, July 24
Thursday, July 19
Death to piss-poor DALs!
Just slayed the beast of a well-intended but poorly-implemented Data Access Layer (DAL). A few months back I picked up this project -- a website with a simple webservice API, simple reporting functionality, etc. etc. The original website was outsourced to a company, who in turn outsourced it to Belarus.
Apparently they don't believe in YAGNI (Ya Ain't Gonna Need It) in Belarus. The object oriented (OO) architecture is heavily over-engineered: singletons and factories everywhere (nothing wrong with them, just a little unnecessary) and a weeeeird data access class that is NOT designed for use in ASP.NET.
Desktop apps, maybe, but not web -- it uses a single static instance of a connection for the entire life of the application defeating IIS's connection pooling. If connectivity to the DB server is ever lost for the life of the application, the connection is toast until the application is restarted.
Retarded? Yep. And at first I thought I could swap the DAL out in one fell swoop, only to discover weirdness with a third party data grid they had been using -- rather than just populate these display-only grids with a lightweight SqlDataReader, they are filling a SqlDataAdapter, then grabbing its DefaultView, which then becomes the DataSource for the "SimpleGrid" datagrid.
Simple my ass. Simply retarded.
Apparently they don't believe in YAGNI (Ya Ain't Gonna Need It) in Belarus. The object oriented (OO) architecture is heavily over-engineered: singletons and factories everywhere (nothing wrong with them, just a little unnecessary) and a weeeeird data access class that is NOT designed for use in ASP.NET.
Desktop apps, maybe, but not web -- it uses a single static instance of a connection for the entire life of the application defeating IIS's connection pooling. If connectivity to the DB server is ever lost for the life of the application, the connection is toast until the application is restarted.
Retarded? Yep. And at first I thought I could swap the DAL out in one fell swoop, only to discover weirdness with a third party data grid they had been using -- rather than just populate these display-only grids with a lightweight SqlDataReader, they are filling a SqlDataAdapter, then grabbing its DefaultView, which then becomes the DataSource for the "SimpleGrid" datagrid.
Simple my ass. Simply retarded.
Tuesday, July 17
Flame on!
One of the many mailing lists I'm on is the Test-Driven Development (TDD) list. This list has some big name subscribers, including Ron Jeffries, author, practitioner, well known for Agile/XP.
Someone posed a question of the list regarding the use of Generics, and how well a generic collection conveys intent, versus deriving a non-generic collection to handle the object type in question. In this discussion, the original poster (OP) mentioned he's enumerating the collection -- because it's "prettier" than iterating it. Reading through this on Sunday morning, I replied, letting the OP know that if the List is of any real length, you're better off iterating it -- you get a 5%+ performance gain over enumeration.
Ron Jeffries and 2 other list-subscribers then jump in, demanding "proof," "test results," questioning my programming capabilities, questioning my use of various techniques, telling me that the "bozo bit ought to be flipped" because apparently my argument didn't make sense to at least one of these guys.
Hey guys -- hello -- not here to have a fight. Not here to win a debate, not here to prove a point -- I was simply offering a bit of advice gleaned from my own .NET experience.
The list erupted in idiocy and assclownery. I ignored it for almost two days -- a tactic that proved surprisingly effective, as a couple people backed up my original position. I stopped back in this morning to point out that enumeration produces 120% as much IL as iteration, including a try/finally block. Granted length of IL alone isn't guaranteed to be a performance indicator, different operations may have different costs, but it's a pretty good indicator.
All that said -- my respect for Ron Jeffries has evaporated. At one point in the thread, he made the comment, (paraphrasing) "I can write a collection that takes longer to iterate than enumerate." Hey Ron, that's fantastic buddy -- anyone with half a clue can write something that performs poorly, on purpose. The point of the matter however was generic Lists, not some RonJeffriesSpecialObjectCollection.
I have crossed Ron's name off my copy of the Agile Manfifesto in thick, black marker.
Someone posed a question of the list regarding the use of Generics, and how well a generic collection conveys intent, versus deriving a non-generic collection to handle the object type in question. In this discussion, the original poster (OP) mentioned he's enumerating the collection -- because it's "prettier" than iterating it. Reading through this on Sunday morning, I replied, letting the OP know that if the List is of any real length, you're better off iterating it -- you get a 5%+ performance gain over enumeration.
Ron Jeffries and 2 other list-subscribers then jump in, demanding "proof," "test results," questioning my programming capabilities, questioning my use of various techniques, telling me that the "bozo bit ought to be flipped" because apparently my argument didn't make sense to at least one of these guys.
Hey guys -- hello -- not here to have a fight. Not here to win a debate, not here to prove a point -- I was simply offering a bit of advice gleaned from my own .NET experience.
The list erupted in idiocy and assclownery. I ignored it for almost two days -- a tactic that proved surprisingly effective, as a couple people backed up my original position. I stopped back in this morning to point out that enumeration produces 120% as much IL as iteration, including a try/finally block. Granted length of IL alone isn't guaranteed to be a performance indicator, different operations may have different costs, but it's a pretty good indicator.
All that said -- my respect for Ron Jeffries has evaporated. At one point in the thread, he made the comment, (paraphrasing) "I can write a collection that takes longer to iterate than enumerate." Hey Ron, that's fantastic buddy -- anyone with half a clue can write something that performs poorly, on purpose. The point of the matter however was generic Lists, not some RonJeffriesSpecialObjectCollection.
I have crossed Ron's name off my copy of the Agile Manfifesto in thick, black marker.
Monday, July 16
Vampires among us
There are vampires among us. No, they don't drain us of our blood, but they do drain us of life. They are the people in our lives who constantly expect to be able to lean on us, without ever being there to be leaned on back. They are the people in our lives who don't bother to have a concern beyond their own immediate, short-term satisfaction, thereby typically ignoring any concerns or issues that might affect those around them. They are the people who take, take, take, and never, never give. What the hell is wrong with these people? I for one don't wake up thinking that everything in my life is going to be OK regardless of my own lack of effort, expecting that someone else will always be there to handle it ... am I the odd man out?
Saturday, July 14
bamboo Dog Toys
I am constantly hunting for toys that my dog can't destroy in mere minutes or hours. I recently discovered bamboo dog toys which go by the assurance, "Battle Tested."
I had high hopes for the Combat Extreme Toss 'n' Pull:
When it arrived, my first assessment was good -- the tennis ball might be flakey, but the toy itself is heavy duty nylon, the kind of stuff you find in sporting and hiking goods. My dog proved too much for the toy, however.
A ~2 year old Lab/Shepherd mix who loves to chew, he has jaws of steel -- in under ten minutes, the tennis ball was shredded. In under an hour, he had managed to puncture the nylon, poly fill flying everywhere. The seam near the rope started to burst not long after. Since that day, I have to say though, no new punctures have been added, nor has the original puncture been extended as much as I would have thought. Poly fill continues to appear round my home however.
Still hunting the everlasting doggie gobstopper, I turned again to bamboo, and their Combat Big Kahuna:
My dog has a history of destroying the squeaker in any squeaky toy. The Big Kahuna is no exception -- I think the squeakiness went away within the first 24 hours. More happily, however, my dog has not managed to puncture this toy -- no poly fill mess to clean up.
The dog loves both toys, so I suppose they were worth the money, but I'd rather keep my dog happy without a mess ... and if anyone can point me in the direction of heavy duty squeak toys that actually LAST, please do! I've been through a number of types and brands, with mixed results at best.
I had high hopes for the Combat Extreme Toss 'n' Pull:
When it arrived, my first assessment was good -- the tennis ball might be flakey, but the toy itself is heavy duty nylon, the kind of stuff you find in sporting and hiking goods. My dog proved too much for the toy, however.
A ~2 year old Lab/Shepherd mix who loves to chew, he has jaws of steel -- in under ten minutes, the tennis ball was shredded. In under an hour, he had managed to puncture the nylon, poly fill flying everywhere. The seam near the rope started to burst not long after. Since that day, I have to say though, no new punctures have been added, nor has the original puncture been extended as much as I would have thought. Poly fill continues to appear round my home however.
Still hunting the everlasting doggie gobstopper, I turned again to bamboo, and their Combat Big Kahuna:
My dog has a history of destroying the squeaker in any squeaky toy. The Big Kahuna is no exception -- I think the squeakiness went away within the first 24 hours. More happily, however, my dog has not managed to puncture this toy -- no poly fill mess to clean up.
The dog loves both toys, so I suppose they were worth the money, but I'd rather keep my dog happy without a mess ... and if anyone can point me in the direction of heavy duty squeak toys that actually LAST, please do! I've been through a number of types and brands, with mixed results at best.
Thursday, July 12
Pownce
Pownce pwns me.
Back in March, I signed up for Twitter after months of hearing about it ... and have hardly touched it.
I got an invite for Pownce after hearing about it on digg for a couple weeks ... and have hardly been anywhere else on the web in the three days since. digg? Sure, I stop in, once or twice a day -- instead of thrice an hour. Local news, national news, tech news, just about everything I refresh regularly has been cut waaaaaaaaaaaaaaay back.
What is Pownce? It's definitely a social network ... microblogging oriented ... some aspects of presence management or indication perhaps ... easy file sharing (post videos, pics, MP3s, etc. etc. on your blog, no HTML required, no external host required) ... interesting threading of conversations -- blog-like, forum-like, IM-like, all rolled into one.
I'm currently out of invites, and have a waiting list for fresh invites, but if you're interested, drop a line, I'll add you to the list.
Back in March, I signed up for Twitter after months of hearing about it ... and have hardly touched it.
I got an invite for Pownce after hearing about it on digg for a couple weeks ... and have hardly been anywhere else on the web in the three days since. digg? Sure, I stop in, once or twice a day -- instead of thrice an hour. Local news, national news, tech news, just about everything I refresh regularly has been cut waaaaaaaaaaaaaaay back.
What is Pownce? It's definitely a social network ... microblogging oriented ... some aspects of presence management or indication perhaps ... easy file sharing (post videos, pics, MP3s, etc. etc. on your blog, no HTML required, no external host required) ... interesting threading of conversations -- blog-like, forum-like, IM-like, all rolled into one.
I'm currently out of invites, and have a waiting list for fresh invites, but if you're interested, drop a line, I'll add you to the list.
Tuesday, July 10
Friday, July 6
Who knew? Uncle Sam from Troy, NY
Apparently the ubiquitous Uncle Sam figure of US mythology actually originated in Troy, NY during the war of 1812.
Thursday, July 5
Ron Paul iPhone nonsense
OK, I'm not even sure Ron Paul has any significance in the REAL (read: non-Web 2.0) world ... but crap almighty, if his site isn't proudly and prominently displaying what has to be one of the LAMEST efforts I've ever seen for someone outside Apple to hop on the iBandwagon:
http://www.ronpaul2008.com/iphone
http://www.ronpaul2008.com/iphone
Subscribe to:
Posts (Atom)