July 2004 Entries
This is just brilliant...I have as much interest in American politics as I do in football (which is just a little greater than the interest I have in the hundred years war- none).
This is just incredibly funny though...apparently it's getting sued for something or other (as usual)...so it could be gone at any time...
Sorry I haven't been posting much, I'm cranking out a bunch of code for work, and therefore haven't been trawling the web as much. Some things I have been using though include this great tree collection, looking at a really interesting article on 15Seconds on Client Side Web Services in IE, playing with ComponentArts' Snap Control ; which lets you move stuff around on your page a la MyMSN - handy for a page editor I'm planning where you can shift user controls around...
Oh, and I love these:

Don't these count as 'parody' and should therefore be protected by the First Amendment???
Thinking about this today, my MPx200 is pretty small - but then I've heard about another, smaller Smartphone...so, what *is* the smallest windows powered device on the planet? What's the smallest one that can run .NET?
UPDATE: Hmm, probably one of the Spot Watches...nothing smaller? We can't have the Java Powered iButton be smaller can we!!!
Don't ask me why, it's just something in the air which makes me believe that Microsoft will want to release a new version of Internet Explorer over and above the one packaged in XP SP2...with better standards compliance and stability...anyway, I'll leave this post here and revisit in a few months...
This is another one of my 'gripe' posts I'm afraid...Been working on the app I mentioned previously - having to rearchitect some of my stuff to support 'instances' of objects instead of links to their concrete definitions...big fun! So, I'm about to pack it in for tonight (it's 2:15am right now...and I'm VERY tired). I also just posted a comment on
Brendan's blog about the whole UI stuff...this is a subject I'm really interested in and plan to revisit in the future. I think I want to approach this type of thing by using a 'metaphor' approach - first thing, re-read Don't Make Me Think! by Steve Krug...then start assembling some basic interface objects...anyway, back to that later...good night
I'm in a bit of a mental fug, as I've griped about before, I work in a very small company which results in my having to do a whole bunch of different stuff - I'm currently trying to work out the best way to present a user interface for an application I'm writing; and I'm having a few 'issues' with it.
The odd bitr is that I've just finished writing a pretty involved chunk of work creating an application framework upon which this and a number of future products for my company will be based - and I'm finding the mental shift pretty difficult. I always have this problem, the issue is that I'm mired in how the application and data are structured so I find it really difficult to put myself in the place of the people who'll be using the application - I had planned to use Paper Prototyping to get more of a handle on this but as usual, it feel by the wayside due to some other higher priority work which came along.
So, that's where I'm stuck, I have to present this chunk of the app on Friday to the client and I really have no idea how I'm going to get the UI working - this is also partly compounded by the fact that I didn't understand one of the requirements (well, it wasn't written down - and I'm not the most communicative when I'm deep into code), so I have to add a major bit of functionality to the app. Tomorrow could be interesting! I have to wake up in about 6 hours but I have thoughts circulating on how to get this stuff done.
I think I've made it pretty clear in the past that I think that one of the weakest areas of the Microsoft 'developer experience' is the Patterns & Practices area, don't believe me? OK, try and find an article about the Singleton pattern on the site; hint, don't use the Search feature, it returns a link to the Caching Application block for 'Singleton' and nothing at all for 'Singleton Pattern'! When you do manage to find it (here), you may notice a few things:
1. It doesn't really explain where / why you'd want to use it, here's the 'Context'
'You are building an application in C#. You need a class that has only one instance, and you need to provide a global point of access to the instance. You want to be sure that your solution is efficient and that it takes advantage of the Microsoft .NET common language runtime features. You may also want to make sure that your solution is thread safe. '
Which is technically accurate, absolutely...ok, so why would you actually want to use it? Some examples may help here!
2. This really isn't the easiest or even the 'best' implementation - for my money, this is - has a lot of versions explaining the benefits / drawbacks of each one.
I've complained about this before, reason I'm doing it again? I was trying to find a decent implementation of a specific pattern, the Dispatcher View - eventually I went to the Sun Patterns site and translated from the J2EE version into C#...which is a pain in the ass! I can't find the post at the moment but I read some stuff on someone's blog that the focus had been on the 'professional' developer as opposed to the 'opportunist' on the P&P site...meaning those with formal comp-sci training versus those who chose to become developers after having qualified in a different subject.
Hmm...I don't know if the UK is unusual, but I'd say that of the many developers I've worked with, around 5% have actually been comp-sci graduates - and they haven't been easily identifiable by their skill level.
I find this really annoying, patterns should be the universal language of all developers, sure, the 'Enterprise Developer' will probably rely on patterns more (as the use of patterns can greatly simplify the creation and future understanding of complex enterprise systems) but I really believe that Microsoft have dropped the ball in not pushing patterns more to the general developer community. Sites like DoFactory do fill in part of the gap but I'm still puzzled by the Patterns agnosia on sites like MSDN, even the Architecture center barely mentions them...come on, it's like building a house out of raw materials like clay and wood rather than using things like bricks and doors.
Anyway, rant over...
This is really a pretty slick way of adding Zip support to all .NET web service calls (which I've just noticed also references an
old post of mine yay!). Even though this is very slick, I still yearn for a way to apply a simple modification to the proxy class to support the native HTTP 1.1 compression stuff...anyone...?
One of those 'blog of a blog' posts, but I unashamedly love this...recreated is the full post...
Some guy Shane posted “Isaac Hayes' 3 Laws of Robotics“ as a comment to this blog entry on Engadget. I laughed out loud.
- A robot must risk his neck for his brother man, and may not cop out when there's danger all about.
- A robot must be a sex machine to all the chicks, except where such actions conflict with the will of his main woman.
- A robot must at all times strive to be one bad motha-shutchyomouth.
(As an aside -- who thinks Phillip Torrone has too many robots? Is there such a thing?)
I was perusing the
Paperchase site today (looking for the very specific notebook I like to carry around) - this is a perfect example of design over function
take a look at it, tell me why couldn't they just stick to a normal catalogue? Oh, and try to find a black bound a5 squared notebook which they definetly sell- I couldn't!
Read on Stefan Demetz's blog about a movement afoot to lobby Microsoft to change how textboxes allow passed in data. See here for the comment. Sorry but I think this is a plain awful idea and is very reminiscent of the horrible RequestValidation nonsense introduced in .NET 1.1. I am in favour of a simple method of encrypting and validating QueryString input such as presented here (apart from the fact that it used 3DES - DO NOT DO THIS! 3DES is MUCH slower and not as secure as AES). So what's my problem with changing the default behaviour of input controls? Simple, three things:
1. If it happens, this will likely be implemented in such a way that it breaks exisitng applications (this also happened with 1.1 and as a result there's still a few apps still running 1.0 out there).
2. If it is done it would have to be totally bulletproof, otherwise every app would rely on a single security mechanism - which is so NOT a good idea!
3. Abdication of responsibility by developers, if this were done so it had to be explicitly enabled either at web.config or in page level, I would be much happier. Put simply I prefer developers know what's happening in their code and therefore are more likely to be aware of any issues surrounding it.
Oh, and Microsoft, if you do do this, don't do it like Viewstate where you hardcode 3DES encryption with no way of replacing your implementation, at least make it a Provider!
Just 'upgraded' my server by some deft memory swapping and an overclock...I'm really impressed with
my little Shuttle machine, now it sports an Athlon 1800+ overclocked to 1.91GHz - this makes it as fast as a 2600+ for no money down (don't worry, I am monitoring the temp using
CoolMon and
MBM and it's doing just fine). Anyway, until I can budget some cash for a proper upgrade (possibly a total replacement with one of the new
Shuttle Athlon 64 machines), it's running with 768Mb (unfortunately stolen from my dev machine which is also now stuck at 768Mb) and this Oc'd processor - and it's a lot happier!
I don't usually condone this sort of thing but the providers have been incredibly tardy in releasing the Windows Mobile 2003 upgrade for the Motorola mpx200 so when I saw that a site was offering a download (and that there were lots of positive forum comments) I decided to have a go. This only works for Europe - so no GSM 900 support! Anyway, it seems to work perfectly, my phone is a lot more responsive and now I can have the .NET Compact Framework on my phone! If you want to have a go (and don't blame me if it kills your phone!) you can read about where to get it here.
Good luck!
Yeah, yeah, I'm sorry I've been negelecting you my lovely reader. There's just a whole lot to play with at the moment, just got a reasonably priced Video Camera, my lovely bike, been playing with VS.NET 2005 Beta 1, getting a new deployment (and tracking down a deadlock) on this site and finally playing with Adobe Premiere Pro - which is just awesome, if you've been stuck with Windows Movie Maker, try a real editing package!
Whew...as well as that I've been looking into SQL Hierarchies using something called 'Nested Sets' by Joe Celko - this really is the best way I've seen of doing hierarchies (well, trees) in SQL. Also ordered his book on the subject Joe Celko's Trees and Hierarchies in SQL for Smarties ...so, with all of that I have to get back to this site. I was very aware that I was just metablogging for a while there which I personally can't stand. So,l no promises but I'll try and get back to things as soon as I can!
UPDATE: Ooh, this is a pretty complex subject and really pretty interesting. There's a couple of other links I can recommend this site has the most complete set of links to the best methods of modelling hiearchical data in T-SQL, this site has a really nice method for supporting Nested Sets in a basically 'automatic' way. There's a whole lot to learn about this topic (much of which is mentioned in the book I mentioned earlier) and articles like this on the 'Nested Interval' model look really useful but will take a bit of work to figure out. Luckily the system I'm developing is fairly loosely coupled in it's Schema, allowing me to easily upgrade the hierarchical model I use if necessary...