Computers and Internet
70-536
- Using a domain to host a 3rd party component isn’t that you’re worried the 3rd party component is full of nasty code, it is that you’re not sure how well security audited it is and that some attacker may find a vulnerability in it. A nice way of thinking about the security risk.
- Seemingly risk-free resources can cause problems. E.g. The Event Log has never seemed liked a huge security risk to me, sure you could fire lots of messages for a Denial of Service, maybe clear a log to cover your tracks but, perhaps even read the log. But the one that was pointed out to me by the book I thought was very under-hand. You could shut an important service down and then pretend that all is well by logging fake log messages…clever.
I suppose I should think about doing another exam…then again I do have to wash my hair and then there’s the tiles to grout, must complete the Workflow demo, and the…
Pocket PC woes
[Edit] Oh the shame. The cable has the "up" printed on the wrong side, so turn the connector over and it works a treat <doh>.
[Edit] Well Fujitsu support contacted me today. Hmm, literally was re-boot the PDA if that doesn’t work send it back for tests. Great…really tried everything there then, not impressed.
[Edit] No need now, I’ve got Exchange sync’ working now
Software Patterns shock, some people don’t like them!
To read more sober arguments for and against, see good old wikipedia
Architect or fashionable label
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;
- Learn about new things
- Talk to the Experts rather than the forums
- Have some time to learn and think without the pressures of day-to-day work
- 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)
- 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
Day 1
Keynote Presentation
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
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
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.
Comparing ATLAS with YUI
Object or UI Orientated?
Both libraries have implemented their own…style…for providing a more OO feel to the JavaScript code and to introduce some extra programming techniques, e.g. Namespaces. However, I believe that ATLAS goes quite a lot further. It allows you to register classes (including base classes), interfaces, enums etc. Although YUI has some of these features it feels very much more like YUI includes them to support the UI whereas ATLAS has included them to produce OO like code that happens to be used in the UI. A subtle but important difference, although if I can get the UI working without worrying about the code perhaps the Yahoo! way is better? If you’re a .net programmer now I’m sure you’d feel at home with the ATLAS client…code extensions(?).
UI Features
Both libraries have a very similar set of features but I’d say the YUI is more mature than the beta ATLAS counterparts. The YUI components just seem to work as you’d want. When I launch a panel in the YUI I get the full dialog experience with options for title bars, modal dialog, move controls, etc. Whereas for ATLAS I seem to get a square that I can move, but I’ve got to add the mouse pointer, the title, etc, etc. Another example is the Auto-complete edit box. The YUI and ATLAS variants do pretty much the same job, however the YUI includes a "selected" event, whereas I seem to have to code that myself for ATLAS. This means that I can quickly produce pretty slick UIs with YUI that do 90% of what I want. However, here’s the bind. When the YUI component doesn’t work as intended it takes quite a bit of fishing around to understand how the component works to sucessfully alter its behaviour. Whereas with ATLAS you learn that up-front and changes are easier because it works as you programmed it to. Ok, that’s a bit unfair, with the ATLAS control kit you can pretty easily wrap core features to become something more like what you need out of the box. However, I still come back to thinking that the YUI did almost everything I wanted without any need to customise it.
Summary
With my short time spent using both sets of libraries I’d have to say I’d probably invest my time in ATLAS. Mainly because it seems like the logical path to take when developing Microsoft based solutions, especially when you take into account ATLAS’ XAML like script, surely the tools will eventually all come together. However, at this very moment in time I would say that YUI wins hands down for its easy of use and feature set. I thought I’d struggled to get around animation bugs in the YUI, well I’d not seen the ATLAS implementation!
I’m sure over time both libraries will improve and it will probably just come down to the sort of coding you need to do. If you’re a Microsoft shop I’m sure ATLAS or Microsoft AJAX Client/Server/Control libaries will be for you.
YUI – Yahoo! User Interface Library
YUI – Yahoo! User Interface Library
What is YUI?
YUI is a set of javascript files containing useful UI code that are downloaded to the client in the normal "script src" fashion. The libraries build on themselves to provide ever richer UI tools.
The type of tools on offer include;
- Event registrations
- Dom support
- Drag n’ Drop
- Calendar
- Menu
- TreeView
- AutoComplete
My favourite is the Container that provides a very simple mechanism to include your own dialogs on a page, including psuedo modal windows.
My Staff Database
The project I wrote using YUI was essentially a very simple contact list with the following basic structure;
[Edit Box] [Find Button]
[Name of person] n [Contact details]n [Photo]n
[Name of person] n+1 [Contact details]n+1 [Photo]n+1
etc
The Edit Box for searching for a persons name is implemented as an AutoComplete control, so as you type in the persons name it displays a list of ever more specific matches. When you find a match, you click the Find Button and the page is scrolled to the person in question and their name is animated to draw the users attention. The user can then see the thumbnail image of the person and can click on the image to see a larger picture. This invokes a photo-box dialog that displays the picture in a modal dialog without the user having to leave the main page.
Any problems using YUI?
YUI isn’t without its problems.
Documentation
When I started using YUI it was in a beta form so the help was a bit sparse and even though it has been improved I still needed to fish around inside the implementation libraries to understand what I needed to do.
Style
I’m sure Javascript must hold some kind of record for the number of ways to define a function block and I’m equally sure people will argue for weeks about which style is best to use. However, what I would expect from library code (of which I include the example code) is a consistant style. I’d just got used to one style in the ‘Module’ code to be faced with a different one for ‘AutoComplete’. Ok it’s a minor thing but it’s pretty irritating, if not tricky, to read a block of code with different coding styles within it.
Stylesheets and Javascript
Obviously a Javascript library needs Javascript to work, but it does need to placed into the ‘problem’ section since there are server side alternatives to many of the YUI features. I chose to degrade gracefully when there is no javascript by defaulting to a fairly standard HTML version of my page and getting Javascript to add complexity, that way if there is no Javascript then you only get the basic feature set. The slightly trickier problem is the use of Cascading Style-Sheets (CSS). For me, one of the great goals of CSS is that it should degrade gracefully. YUI relies on CSS to provide many of its features, some degrade more gracefully than others. For example, the auto-complete list is a hidden list, turn off stylesheet support and the list is created underneath the edit box. Ok it’s ugly but functionally it works fine. However the containers don’t really work. In my example the photo-box simply stays at the bottom of the screen and is pretty useless. More annoying is the use of colour. I wanted to write a colour fade (or animation) but this required me supplying the colours I wanted to use. Now I can’t really do this since the user (or other developer) maybe using a stylesheet that I’m not expecting. YUI provides some support for detecting the style of an element but this didn’t work as expected. When I asked for the background colour of a specific element it failed to properly traverse the CSS hierarchy and only provided the correct answer when the element was specifically configured in the stylesheet. That led me onto another annoying problem, my workaround was then to use an opacity fade but that kept doing odd things to the font. Eventually I discovered that you must ensure the text in an opacity fade has a background colour.
The other major problem with the CSS use is how accessable the page is. In my example I had to add extra buttons and events to cope with the keyboard user. Reading between the lines it looks like the YUI is doing more in this area but currently I feel you have to add too much of this code yourself.
Extending the YUI
Apart from the coding style issues I found extending the YUI relatively easy. The main problem is due to its main advantage, the coupling of the modules hides the complexity of the lower-level libraries but it can also means that you can break the code without really knowing why. In my example I have pictures of different sizes to display within my photo-box, so I extended the module to allow me to specificy the dimensions of the image. This worked fine for a while but suddenly the box refused to be moved by the user and would just stutter. Also if I created a dialog larger than the viewport it started to behave erratically. I’m still not sure what caused this, perhaps beta code, but after a re-write for the latest version it seems to work.
Summary
I think the YUI is well worth a look but I do get the feeling that the majority of the features are built for users with a monitor and a mouse. Then again there is nothing stopping you extending the library to better cope with other devices. So even though it isn’t perfect I’m certainly considering using it in future projects.