Pocket Loox n560 PDA

Finally got a modern PDA in the shape of a pocket loox. After a troublesome start, tip – don’t use their own wireless connection tool, I’ve; been on line via g wireless, grabbing mpg’s from my server, remote desktop accessed machines, went for a walk aided by 10 GPS satellites, played some dumb games(!) and…written this blog entry. It’s also so thin and light a huge change from my five year old HP. The wireless access is great, it makes the device independent. Having to use a host PC to get programs from the web was a real pain, the loox is refreshingly simple to use – providing you ignore the terrible 3rd party connection software

Software Patterns shock, some people don’t like them!

I’ve often felt like the sour faced developer for not loving Patterns. It’s not that I can’t see their use, labeling a mechanism or concept so everyone talks the same language is a good thing. However, I’ve always felt uncomfortable about the proliferation of patterns, seems like there is someone wanting to gain fame by naming some blindingly obvious concept. But this has always seemed such a feeble argument against patterns (and it probably is). Today I finally discovered a rather obvious reason why the majority of patterns may well be a waste of time. One of the basic idea of a designing using patterns is to locate a pattern and use  it as a template to writing some code. Indeed you can find ‘pattern explorers’ in many development tools encouraging the developer to select patterns to solve problems and indeed for one pattern to lead to another. The major problem for this use of patterns is that it encourages developers to develop many components using the same pattern, just the sort of maintenance headache we strive to avoid. Whereas what should really happen is that we should consider the pattern as an abstraction of the problem. When you get into that mindset then you’ll see that the abstraction itself is a potential object and therefore should be implemented. That way you’ll end up with the one object containing implementing the ‘pattern’ and others using or deriving from it.

To read more sober arguments for and against, see good old wikipedia

Debugging when classic ASP calls into .net

Breakpoints not firing when called from COM+?
A collegue was having trouble debugging some .net code that was called from classic ASP code. After getting over the initial problems of making sure that the source code matched the binary files (always a good start) the breakpoint still wasn’t firing. The problem was that the .net component had a com wrapper hosted in COM+, nothing unusual there. However, they’d configured the application to launch a debugger as soon as the application starts. The problem here is that Visual Studio only attaches to the x86 part of DLLHost. When you eventually get around to calling the .net code it is blissfully unaware that it should be debugging. The solution I chose was to stop all this auto-launched and simply wait until some .net code has been called. Then attach to the DLLHost process, ensuring it states ‘managed’ in the process, and then you’ll be hitting breakpoints to your hearts content.
 
 

My first Mono application

Finally managed to write my first program on Mac OS-X thanks the Mono project. Unfortunately there isn’t a simple (free) IDE for it yet (at least not without installing lots of odd Unix X-like components).  But anyway it was nice to see "hello world" appear in a Unix window all written in C#, I’m easily pleased!

Architect or fashionable label

I realise this isn’t a new rant but I need to vent. After coming back from Tech-Ed and listening to a few people talk about an architecture competition run there and how poor the competitors were. It seems to me that developers like to call themselves Architects where really they’ve simply designed a solution to a problem. Let me take an example from the world of building. If you need a house built then you know this is a serious project and you’d employ an architect to create all the plans, consider all the structural requirements, fire proof materials, thermal qualities, etc, etc. I.e. lots of complicated and big serious decisions. Whereas when you want decorate a room you’d probably do it yourself because it doesn’t really matter if you get it wrong, i.e. you can design the room within the constraints given to you by the original architect. In a similar way when I think about software architecture I think about systems talking to each other, or maybe down to the overall way a set of application services work together to provide a full application. What I don’t consider as architectural is producing a design for a small feature. For example, I might consider that architecting Visual Studio Team System would consider how to create something that allows various types of professionals to work on a projects and how all the various tools should work together. However I would consider something like the Server Explorer as a problem that needs a software design.

So before you go spouting on about what a wonderful architect you are, consider this, did you just put some new wallpaper up or did you really build a new house?

Tech-Ed Developers Conference, Barcelona

Tech-Ed

Just got back from Tech-Ed so I thought I’d blog about the overall experience and then some of the sessions I attended.

The Venue

The Centre Convencions Internacional (CCIB) was a good venue for the conference. Although, like a number of these places, it’s not in the nicest part of town. However, inside the facilities were good, and the general layout was easy enough to navigate around. If I had a complaint, then it would be more to do with the session scheduling than the venue itself. The rooms were of differing sizes depends, I’d assume, on the predicted take-up of the session. The problem here was two-fold; 1. How they predicted the attendance, 2. The use of small rooms. The prediction of the attendance seemed to rely on the pre-conference questionnaire but this was flawed. Attendees were asked to say which session they’d attend per time slot. But in most cases I had 1-3 session I’d attend, and it would depend upon my mood at the time which I’d actually attend, but there was no-way to convey that.   The second problem was the when a medium size room was free, the smaller sessions should have gone into them, instead they were left empty whilst the smaller session became full, very frustrating.

The Exhibition Hall

Nicely laid out with many of the usual suspects. Also included a (very grubby) X-Box zone, Speaker Idol and book store. The Communications area was just about the right size and the Ask-The-Experts was large although full of minority applications with not enough emphasis on the core areas.

I have to say that I think the Exhibition hall is a bit of waste of time, but hey its a way to load up your bags with junk that you’ll transport hundreds of miles to dump in bins throughout the EMEA region.

The big disappointment was the book store. It seemed to me that it was the books they were desperate to get rid of rather than those to support the conference.

The Sessions

Key Note – Windows Vista, the 2007 Office System and AJAX

Hmm, this started poorly and went into the world of the bizarre when a little girl from Pakistan was paraded in front of the conference because she’s passed some MCP exams. Although that should be applauded I can’t help but think that given her 101 demo of a calculator this speaks volumes about MCP exams and little about, "inspirational" stories. Still she seemed a nice girl but I hope she enjoys her childhood, she’s got the brains to do this computer thing for the rest of her life.

Then the marketing kicked in.  A nice demo of the presentation services and AJAX but unless you’ve been living in a cave for the last couple of years there was nothing new to see, I felt pretty disappointed.  The most cringey part was the, ‘pauses-for-applause’ that was greeted with silence. I’m not sure if this was the usual European sanity vs. American over-enthusiasm or the that everyone was just as underwhelmed as me.  
Overall 3/10

SQL304 Upgrade Benefits of SQL 2005 for Developers

Didn’t survive this session. I was hoping for some real ammunition to move to 2005 but basically got a list of the new features.
4/10

DEV351 ASP.NET Developer and Designer AJAX Bliss with Visual Studio and Expression

Didn’t survive this session. After 30mins of watching a demonstration of how to change properties of a element in an IDE, I walked.
1/10

ARC305 Connected Systems – Communication, Flow, Rules and Logic

Hurray, a full session. Interesting enough talk showing the thinking behind the WinFx changes. Inspired me to consider changing some parts of the application I work on.
7/10

OFF301 Windows Sharepoint Services v3: Using Feature and Solution Definitions…

A bit long winded and disjointed. Groups of ‘theory’ and code but not used a such a way as to explain each other, not really  helped by the constant audio bombardment of Todd Bleeker.  Still got a few ideas but was worried about the overly complicated and immature nature of customizing Sharepoint.
5/10

OFF309 .NET Development on Sharepoint Technology

The previous Sharepoint session had piqued my interest in learning more about. This session was much better, although I didn’t learn a great deal that I have not already read or seen, it was a much better session.
7/10

 OFF002 DEMO Building Collaborative Solutions with Sharepoint Services..

Quite a nice demo, I think attending this would have provided a decent overview of Sharepoint. It should some very touches, I especially liked the ability to derive a new field type – although the demo was a but flaky in parts. Another session that inspired me to make changes to our application, but also outlined areas where our application shines.
7/10

DEV348 Extending .NET with Custom Providers

Great session, even though I’d read a bit about the providers I’ve never had the chance to really use them. Jeff Prosise did a great job of showing how to use them, and also pointed out the typical pitfalls. This is what Tech-Ed should be about, not simply regurgitating on-line book material but actually sharing experiences. Although it was tempered by some absolutely dumb questions from the audience – I felt for Jeff here, how he resisted just telling the guy to get out I don’t know.
After the session I asked Jeff a question (of course not a dumb question 😉 ) about site maps per user and I thought the answer was at best weak, but then I’d guessed they’d be no answer to it, but then why not just say that?
9/10

DEVWD34 Applications for Windows Sideshow

Serendipity played a big part here. I wanted to attend an AJAX whiteboard session (had some gripes about the Microsoft implementation) but managed to go into the wrong room with three people in it. I thought it was strange to have so few people in a popular topic but without and slide showing me the name I was none-the-wiser. Eventually lots of strange digital devices were brought out, very odd. Then the title was announced and I felt too embarrassed for the speaker to leave him with just three people so I decided to hear him out. It was very interesting and I think it would be useful for practical applications. So I’m hoping to do some demos of this soon. I thought the speaker could have been a little more enthusiastic but again, learning about something brand new is inspiring and what I attend Tech-Ed for.
7/10

SQLWD02 – The Doctor is in: Tell us what hurts in SQL 2005

Good chance to talk to some SQL experts. The only problem was that I (and a few others) wanted to talk about specific issues  whereas I got the feeling that they wanted to know about things that weren’t potential bugs but more about things that were slightly annoying. Anyway got a few things off my chest, although I think some of the advice was downright strange, but hey they’re the experts.
6/10

DEV411 AJAX Patterns with the Microsoft AJAX Library

A decent enough session. For the first time a session that actually pointed out some of the bad bits of the AJAX libriaries (something I’ve been banging on about for a while).  Again the stuff you’d hope to hear. However, again, the session had fallen foul of internet, I knew pretty much all of it already. So although it was a good session I didn’t get much from it.
7/10

DEV319 Visual Studio 2005 – Advanced Data Access Techniques

Although there were some interesting points from this, I liked the way you could say that a field was a detail in a master/detail from the UI, the presentation was pretty dull. I left this one early.
3/10

Summary

Why do I go to Tech-Ed? I would say for the following reasons;

  1. Learn about new things
  2. Talk to the Experts rather than the forums
  3. Have some time to learn and think without the pressures of day-to-day work
  4. Be inspired

One of the biggest problems for me was that the internet is now a mine of information about new products. For example, I’d already watched a number of presentations from the PDC on the web and frankly the depth of those sessions blew anything Tech-Ed had to offer out of the water.
Talking to the Experts was good, but I found them to be very defensive, what I’d prefer is some decent open conversions rather than experts clamming up and toeing the company line. I understand why but it’s still annoying.

But having said all that, I do feel inspired in a number of areas, although I’ll have to say that I wonder what would happen if I just took myself off to a nice hotel for a week with a laptop and an internet connection. Would I learn more and be more inspired?

 

Adobe Photoshop Seminar Tour (London)

Just got back from attending the Photoshop Seminar Tour by Bert Monroy . I’m not a big Photoshop user but I found the seminar interesting. The topics included;
  • Layers – Beyond the obvious. Nice talk about how to use layers to modularise your work
  • Channel: More Than What Meets the Eye. A great talk, especially about what information is contained within a channel and how to utilise them for masks
  • Master Class: Brush & Pen Techniques. Although good, I found this least interesting. Some nice features such as the random drawing of a brush, but there was little here to interest me
  • Pen Tools & Filters. Some nice little tricks in here, I especially liked the use of filters on masks to produce a rusted metal effect
  • Filter Magic: Creating Realism from Scratch. A small show case of what can be achieved through Photoshop.

Overall it was well worth attending, although I was almost reduced to hysterical laughter by the people in the audience (mostly artists and photographers) who kept repeated what was just said. The poor lecturer must have thought nobody was listening.

@Media 2006

Originally posted 18 June 11:27 – I recently attended a conference for web design and related subjects call @Media 2006. I thought I’d give a brief summary of the sessions I attended and then my overall thoughts.

Day 1

Keynote Presentation

– Eric Meyer

Fun look back on the evolution of CSS and the varying support in today’s browsers. Nice little pep-talk before the rest of the conference.

Using DOM Scripting to the plug the holes in CSS

– Jeremy Keith

Hmm, not so sure about this one, just who was this one aimed at? I liked the way DOM methods, such as getElementById, were compared to CSS but then it quickly went down hill. The first couple of examples were mechanisms to insert code into a source document that would be repetitive (and perhaps ugly) to do by hand. E.g. the "zebra effect" where every other row in a table is a different colour. What struck me about these examples is that you’d be much better off to do this on your actual source, using a macro or pre-publish script, rather than relying on the javascript support of the client.

The other point that puzzled me was that he kept making the point that the code he wrote wouldn’t be the code you’d use since his knowledge of Regular Expressions wasn’t up to it. I could understand that you wouldn’t want to pollute example code with RegEx’ but I’d hope you’d show at least one example of how to do it correctly. He then mentioned a couple of points about controlling document size by looking at the browser and some 101 tips about detecting the browser support.

The most interesting point he made was that Dean Edwards has a page of scripts to make IE 6 act more like IE 7.

Rating, 4/10 and don’t bother with the "humour" next time

Fine Typography on the Web

– Dave Shea

Probably best known for starting up Zen Garden I was keen to see his view of typography. Very odd session. Talked about the fonts he liked and disliked making some very odd statement about fonts been boring because they’re overused. Talked about fairly obvious (you’d hope) points about the sort of fonts that users (i.e. Windows and Mac) would likely to have on their machines. Talked vaguely about why fonts like Verdana don’t always work – what about the fact that they are screen fonts, perhaps that’s why they don’t print well! Now for the interesting stuff, how to ensure the user has the font you want to use…basically you can’t. A few technologies were mentioned but basically they’re all rubbish. So you’re stuck with using the most standard fonts because you’ve got no real choice.

Rating, 4/10 – "yes we all know Comic Sans isn’t great if we didn’t we wouldn’t be here" – anon attendee

New Accessibility Guidelines WCAG 2.0

– Andy Clarke, Patrick Lauke, Gez Lemon, and Ian Lloyd

I admit I’ve not read any of WCAG 2.0 but I think I know the basics of accessibility. The discussion was interesting because it showed that the guidelines were just to odd to simply take and use without a second thought. What I took away from this was, be practical and do you best not to alienate a visitor but rather than attempt to implement every guideline. Then if you have a particular target audience then ensure their guidelines are met.

Rating, 7/10 – the panel seemed at odds over some points and re-enforced my belief that guidelines are too weak to adhere to.

Designing the next generation of Web apps

– Jeffrey Veen

I nice motivational speech about web applications, although I couldn’t help thinking that bulk of the audience are here for web design, rather than web applications, but a nice keynote style session.

Day 2

Bulletproof Web Design

– Dan Cederholm

A decent enough talk about the basics of good web design, but again, if you didn’t know this already what are you doing here? A few people asked questions about the age old problems of how to structure your page one way but present it in a different order. Although the answer was correct, it wasn’t anything new.

Rating, 6/10 – good but basic

Beyond a Code Audit

– Robin Christopherson

The first think to say about this session was that the venue mucked this one up. No network for the presenter, bits of stage falling down oh what a mess. However, the talk itself was excellent and really well presented. I must admit I’d never considered the problem of dyslexia and fully-justified text…although fully justified text on the web is a sin so I’ve never done it.

Rating, 9/10

Internationisation: Awakening the sleeping giant

– Molly E. Holzshlag

Lots of enthusiasm from the speaker with a very…American, style that’s not to everyone’s taste, I didn’t mind it though. However, although she made a few interesting points (First impressions are very important, Internationalisation is a form of accessibility) the basic result was that you need to employ skilled people in your target locale to correctly design the site. Is that really news to anyone? Ok so I live in Britain and the majority of the sites I’ve had a hand in are English only and if I lived in Brazil or South America perhaps I’d feel different but I didn’t really learn anything new here.

Rating, 6/10

Yahoo! vs. Yahoo!

– Nate Koechley

An interesting look at a few Yahoo! applications. Again, all about applications rather than web design per se but it was interesting and had some real world points to make. Sometimes what he said seemed contradictory (as picked up by some of the questions) but it did reaffirm my feelings about web 2.0 style applications and coming from such as big company that was good to know.

Rating, 8/10

Microformats: Evolving the Web

– Tantek Celik

On the face of it this is a weird subject. Microformats look useful and I dare say a number of them will be common place soon but I’m not overly sure much of the audience really cares about creating them…but I could be wrong. I know I’ll have a go at using some of the most common ones though so I guess it served its purpose. I can’t create this on this blog since it removed my attributes <grrr>.

Rating, 8/10

Overall Impression

A quick note about the facilities…poor. Registration was chaos itself, the lunch was very poor, and there were no refreshments between sessions…not even a drink a water.

I think the problem with @Media is that it fails to explain who the sessions are aimed at. I kept thinking, "if you didn’t know that, then you wouldn’t call yourself a web designer therefore what are you doing here?". But then what is a "Web Designer"? What experience do you need to have to attend a session? I come from a coding background with little typography or layout experience so the Web 2.0 applications stuff is interesting to me, but it’s really the non-coding stuff that I want to see. Whereas I’m sure the opposite is probably true of the artistic web designer that wants to know how better to render their designs for the web with all this strange javascript code. So while I got the odd nugget of information very rarely did I feel that I was actually learning something. However, what I did feel reassured about was that not even the experts really knew the answers to the problems that most people face, so at least I know that I’m not alone or missing some obvious "fix" to the problems I see. So would I recommend going next year? If they explain who their intended audience was then I would recommend it, otherwise I think you’d be better off using the web to look for the resources…with the possible exception of Robin Christopherson who’s session really does need to be "seen" (the obvious irony is that he’s blind) to get the full impact.

Technique vs. Technology

Technique vs. Technology

Over the past few years or so I’ve noticed a phenomenon that I’m calling Technique vs. Technology.When developing software solutions for computers there is always a number of ways of doing something but usually there is a much smaller set of recommended patterns that should be used. However, there are a large number of developers that don’t follow these patterns and produce solutions that have inherent problems. The reason for this is either ignorance or cost cutting, maybe both. Either way it is the end-user or customer that suffers and gives software development a bad name. So what’s the answer? The obvious reply to this is to invest in educating the developer community and to produce software tools to help developers avoid common pitfalls. Yes, to my mind this is the correct way and with the recent surge of concepts like Software Factories it would seem that many others share that opinion too. But the software/hardware industry have another angle, lets use technology to compensate for poor technique and for backwards compatibility. However, lazy (or ignorant – is there a difference?) developers can rely on these features and will never learn or comprehend why they should learn the proper technique. But then again, why should they? So I’ve waxed lyrical for long enough now, how about some examples?

Stored Procedures vs. embedded SQL

 Back in the day Microsoft provided stored procedures for SQL Server with one of the benefits being that the plans are cached and reused. The problem was that when Microsoft released ADO a huge number of developers, using SQL Server, ignored stored procedures and simply issued statements directly to the server. Although ADO should be praised for its easy of use and flexibility it allowed lazy developers to produce grossly inefficient code. Consequently Microsoft spent the next few years defending ADO and repeatedly telling developers to use stored procedures for performance code. Eventually, although I’m sure there’s and official reason for this, they caved and provided statement caching which, IMO, panders to the lazy developer…although I concede there are some advantages to this. This is my first example of technology compensating for the lazy developer but really does it matter?

CSS vs. Table slicing

 Web page design has gone through somewhat of a rocky few years, caused mainly by inconsistencies in browser implementation, producing two basic techniques for page layout; Cascading Style Sheets (CSS) and Table (image) slicing. CSS is the recommended pattern with lots of good points ranging from structure/layout separation, accessibility (see PDA later), downloads efficiencies, etc, etc. However, early browsers (and indeed inconsistencies with modern browsers) prevented the use of CSS. To get around this the table tag set was used to create layouts by slicing images into small chunks that could be placed within equally sliced up tables. However, there are a number of problems with this approach, basically the opposite of what’s good about CSS but for me the important problem is the accessibility. The most obvious of these problems is scaling the text within a table. In the majority of case this simply breaks the page, with text disappearing or the image slicing going horribly wrong and the original dimensions change. But wait, the browsers technology has a trick up its sleeve, zooming. The browser simply zooms the whole page rather than altering any specific Html element/attribute. So I can use tables safe in knowledge that it works on almost every browser and the user will be able to zoom the page…providing they download a nice new browser. Ok it still doesn’t solve all the problems of table slicing but it certainly becomes a strong argument especially when CSS can be troublesome to get right on all the browsers.

CSS vs. PDAs

 Viewing Html on a standard 15″ screen has long since been superseded with all sorts of odd shaped viewing devices. Monitors now come in all sorts of sizes and resolutions, but the really odd sizes are reserved for the smaller screens of handheld devices such as mobile phones or Personal Digital Assistants (PDA). These screens cannot, sensibly, view a screen designed for 800×600+. Step in CSS, with device specific stylesheets you can create a nice layout for the smaller screen whereas those nasty-old table sliced sites look terrible. Well back to the real world. PDA browsers have long since given up waiting for CSS and have taken it upon themselves to use their technology to break up the tables and provide a decent view of the table sliced page. Whereas, many of the browsers don’t understand a hand-held media type and the CSS site looks terrible. So again, it’s all too easy to say, why bother?

Code Optimisations

One of the great aims for software development is that the developers should focus on the logical problem rather than spending their time solving issues with their chosen implementation language. One such area is optimisations. True they can make a big difference but if the developer types if MyString == “” or if MyString.length==0 then this sort of optimisation should really be caught by the underlying compiler. Another classic in the world of .net is the StringBuilder. If I use FxCop it will tell me that I should be using a StringBuilder for string concatentation within a loop. So rather than tell me that, why doesn’t the string concat’ do that behind the scenes? If I really don’t want to use a StringBuilder class I should be able to create a SimpleString type or something! In theory I shouldn’t have to concern myself with such optimisations.

Summary

So here is the real question, why bother spending the time using the “correct” techniques when the the majority of people don’t and therefore the technology ends up compensating for them? Granted they don’t compensate for everything, but will it just be a matter of time before they do?

DVD Piracy warnings, where can I get a copy?

Ok now I loath the idea of people copying films/music/software and therefore discouraging the authors from creating more. However, what I really hate is being forced to watch a (seemingly) 20 min advert telling me that the DVD I’ve rented/bought shouldn’t be copied. So basically I get penalised for buying the DVD whilst the people who buy the pirate DVDs go straight to the film. It almost makes me want the throw my ideals out the window for the sake of saving 20 mins per DVD I watch. So if any of you Blu-ray/HD-DVD executives are reading this, please, please don’t force us to watch mind numbingly dumb anti-piracy trailers or any other sort of advert. Sure keep them on there but don’t hijack the control of the film, let us skip them, otherwise I’ll be tempted to join the back of the queue for those dodgy HD-CAM films!