A love story….

I blame my addiction interest in photography on my parents.

It’s as good an excuse as any, and fits into the standard blame game stereotypically associated with therapists.  Though there is some reason behind my fascinations.

My mom had a SLR of some glorious make (I don’t know the model, it got stolen when I was about 13) and all I remember about it was “Cameron, Don’t Touch!”.    That being said it was a wondrously heavy piece of glass and metal, that was so much more interesting than using binoculars.  You could twist the huge barrel tele-zoom lens and see things (usually birds) that were almost too small to see with the naked eye.  “Oh look at the XXXXXX” with a finger pointed at some spec in a tree somewhere… only to be shown a huge difference though the camera.  Add the Flash with that stereotypical sound of the flash and subsequent capacitor charging, or the mechanical click of the shutter release on an old analogue SLR and it was quite the experience using it.

Apparently the camera also had a somewhat storied history behind it…  Purchased for $100 with the trade in of my mother’s existing camera at Expo ’67 on a cross country road trip by my mother, and her sister.

My dad (the Zoologist) however had something that was just as incriminating.  Every year my grandmother would give my father a yearly subscription to National Geographic for Christmas.  It would seem that the stack of National Geographic’s my dad had stacked throughout the house would always be taller than I was. But within were amazing photos from around the world.  Pictures of Africa, or the Outback (along with stories my dad told of his childhood in the Australia), or amazing shots from the bottom of the oceans.

I still distinctly remember shots of lightning on the African plains on the glossy pages of National Geographic.   (It’s something I’ve tried to replicate before.. at least the prairie version).

Anyways this story brought it all back…

 

chilevolcano

No it’s not a photoshoped image….probably just a significantly long exposure…

Day late and Dollar Short

So firefox 3 beta 5 was released today, supposedly the last beta, and it only scores 71/100 on Acid 3.  Granted now isn’t probably the time to add new features to the final release, but the Acid tests are starting to draw more and more attention.

The thing is that firefox 3 also doesn’t work with many plugins/extensions.  I’ve come to depend on the Web developer toolbarGoogle Gears, though not a requirement, is something I used with gmail/Google reader, and now seem like it could really be useful with Google docs.  And don’t even get me started on how Silverlight is listed as a valid plugin in the plugins list in Firefox 3, but doesn’t work (it constantly prompts you to install the already installed plugin).

We’ll just have to hope someone get’s busy before June.

(PS. Yes I know these are the perils of Beta products, and the responsibility for these issues rests with the plugin/extension developers but with the coming of web 2.0, beta == functional  — I avoided the alphas for this very reason.  If the G*d damned adobe craptastic plugin still works why can’t yours?)

Peak WEB

Incase you didn’t realize the title of this post and the previous one – PEAK CRUFT – are a reference to Peak Oil, and in all 3 we can expect drastic changes.

Again I’m referencing the Joel on Software article about Martian Headsets… which recently has received quite a bit of flack.

There’s a certain (large) segment of web developers who are feeling full of Schadenfreude at IE8’s (potential) troubles, and I must admit I myself am among them (see one of my previous posts).  The upcoming free for all that will be IE8’s introduction will cause mass amounts of confusion (if current plans are carried out), but those of us who are forced to work in webdesign, figure that Microsoft has really just made it’s bed, and now it has to sleep in it.

Quickly now how many web browser can you name?

  1. Telnet
  2. Netscape 3
  3. Netscape 3.1
  4. Netscape 4
  5. Netscape 4.2
  6. Netscape 6
  7. IE 3
  8. IE 4
  9. IE 5
  10. IE 5.5
  11. IE 6
  12. IE 7
  13. IE 8
  14. Mozilla
  15. Firefox 1
  16. Firefox 2
  17. Firefox 3
  18. Flock
  19. Camino
  20. Safari 1
  21. Safari 2 (WebKit)
  22. Safari 3
  23. Safari Mobile (iphone)
  24. Firefox light
  25. Opera
  26. Opera Light
  27. Assorted Mobile device and cellphone browsers
  28. oh… and Lynx

And that’s just off the top of my head… essentially there are for all intensive (math) purposes an infinite-1 number (-1) of web browsers, and for each web browser there’s been basically an infinite number of web pages designed and tested ().  Using my horrible analysis of algorithm’s knowledge from Uni that works out at:

Ω(∞) *  Ω(∞-1) = Ω(∞^2) = ∞ 

(and yes I realize I should use n instead of ∞, but it’s Ω notation ie. worst case)

That’s right, there’s an Order infinite number of combinations of web pages and browsers.  Looking at the graphs in the Martian Headset article this is quickly apparent by the lines in the pictures.  And since all the above browsers implement the same things slightly differently (there’s no compiler to tell you you’ve created a mal form web page).  Granted a large fraction of the above web pages can be removed by attrition, as well as limited support of the differing web standards (html/xml/xhtml), but it doesn’t change the big-O Order (magnitude) of the problem.

So what to do?  That’s the one point the Martian Headset post is short on… He spends hundreds of words re-iterating the problem, but without proposing a solution.  Joel’s solution? Capitulate, and let the current broken standard of the web continue and fester.

The thing is that, as an IE 8 user he’s oblivious to the prejudices experienced by minority users.  Like racism, it’s very hard for members of the majority to understand the pain that others in a minority experience (ok, racism might be a stretch, but point remains the same).  Members of the majority can ignore problems, and trust that the might makes right argument will prevail with respect to web browsers and web standards.  The problem here is that with IE and the last couple of versions, the mob has been heading for a cliff.

Again back to the Martian Headset post, Joel talks about how there’s no standard implementation and the standards documentation is difficult to follow.  I’m not about to argue that the W3C documentation isn’t hard to follow, it is.  But it’s complicated in the way that a legal contract is complicated: it eliminates all possible forms of wiggle room.  And really that’s what a standards document is.  It’s a contract that you have to follow if you want to properly implement something, the thing is there’s no penalty (besides marketshare) if you don’t follow it.  And by standards documents standards it’s ridiculously easy to read.  Compare it to the TCP/IP RFC (and that’s one of the simpler RFC’s out there).  Standards documents aren’t designed for vanilla web developers.  They’re designed for web browser developers.

The thing is that these browser developers are infact translating these documents into different standard implementations that other browser developers can compare their work to.  The first big step in this direction was the old Netscape standard documentation – that was all but ignored by Microsoft, followed by the more recent Acid tests (Acid 1, Acid 2, Acid 3), and kudos to Microsoft, they’re following suit.  This can only lead to good things, and don’t be fooled by 3 “small” acid tests vs. Microsoft’s 700 unit tests.  The acid tests each have hundreds of sub tests, and only if they all run properly will you see the proper output.

Peak CRUFT

There’s only so much bailing wire and bubble gum you can tack on before the thing is going to just fall apart. And the creaking you’re hearing is Windows.

 

Yesterday someone who shall remain nameless forwarded me an article about the recent IE flamewar

Joel does a great job explaining what the issues are, and what the problems are as well as where we stand currently.  He also briefly touches on stuff he’s talked about before, mainly why Windows 95 was so great (which coincidently just so happens to be when Joel of Joel on Software last worked for Microsoft).  His argument is that basically 1/3rd of the code in windows 95 was compatibility stuff so that code that worked on older versions of windows still worked on windows 95.  This includes code to make horrible horrible hacks that worked before still work on windows 95.  His rant about the idealists and the pragmatists is basically re-iteration of this point.

And it’s a valid point.  The reason Windows has dominated to this point is because what worked on windows 3.x, worked on windows 95, and what worked on windows 95 worked on XP.  But things are starting to break down…

Eventually in all software you have to give up on what you had before and start fresh.  Microsoft has so far managed to avoid this up to this point.  Other manufacturers have already run smack dab into this problem.  Apple ran afoul of this when they transitioned from OS9 to OSX, Linux hits this on a regular basis, but usually on a much smaller scale every time a new major revision of the kernel is released.  The fact that Microsoft has managed to avoid this to this point is a testament to the people they’ve had working with them, but it’s become the expected behavior.   And that behavior is going to come back and bite them in the ass.

When you do new things, you have to expect some of the old things not to work with your new things.

For all intensive purposes windows has become

 beverlyhillbillies

on a highway of supercars

There’s only so much bailing wire and bubble gum you can tack on before the thing is going to just fall apart.  And the creaking you’re hearing is Windows.

Vista is a bastard child.  Microsoft realized around windows 2000 that they needed to start fresh and crated a decent operating system, but due to marketing and time they had something that was windows XP underneath and all shiny on top.

vista

To add all the new features they’re going to need for a next generation Operating system they’re going to have to start fresh.

Tabula Rasa (clean slate – not the video game)

With no back ties to previous cruft they can design features that are un-encumbered (new graphics layers, new file system layers, new registry stores, etc).  This is also why Microsoft has been focusing on Virtualization technologies so much lately.

Once again Microsoft is cribbing Apple’s hard earned lessons.   When Apple transitioned to OSX they added an emulation layer that allowed the modern operating system, to run the old broken OS9 inside it.  It wasn’t perfect, and it allowed Adobe (one of their then premier partners) to be lazy and wait 2 years before issuing a new version of Photoshop for the new OS and the new Intel architecture, but it meant that almost all programs worked, (albeit slowly).

Once again to see the future of the windows platform you only need look as far as the closest mac.

The only possible way Microsoft has of preserving functionality with newer and newer versions of Windows it to emulate the previous versions.  In the past that meant running code that had been designed to mimic older code, but windows has become so huge it’s become required that you run the entire operating system as a separate process in a separate emulated environment.

Microsoft is once again trying to shrink the foot print and the noticeably of virtualization with their new HyperV technology…. basically only emulating the parts of the operating system that a program  accesses so that your program thinks it’s running inside windows 95, when it’s actually running on the latest and greatest version of windows, without spinning up a version of Windows 95 inside a VPC.

This is great, but it means in your next install of Windows, you’ll be installing every version before it (in a massive 40Gig or so install – at least that’s my guess of the what the final install will be), but storage is cheap.  The question is will Microsoft charge you for the pleasure of running all their crappy old code?

Karma Police

So today MIX started.

I watched the live keynote, which really was focused on developers like me.

Silverlight 2 beta 1 was released, which is a big deal, but not what I found most interesting.

They had the Team lead for Internet Explorer 8 on stage to present and reveal IE 8 for the first time. Recently IE 8 has been in the news because of announcements in the team blog about standards used, as well as certain design decisions.

(Let alone that I find it extreeeemly interesting how the revision cycle for IE has accelerated dramatically since Firefox has started hitting critical mass)

The man on stage (I’ve forgotten his name already1) mentioned what I believe has to be the best quote about IE and web development evar:

My son knows I work on IE, and he sees these things about security on the web, and he asks me ‘daddy did you break the internet?’. My response is no, but if you’re a web developer you might think differently.

Anyways…..

The guy on stage had an agenda of 8 items about IE 8 (get it?, yeah I didn’t laugh either). These prob. don’t match the guy’s slides, but these are the points I came away with:

Part 1 was the announcement that IE 8 would support CSS 2. Which was A) big news, so big they announced it a few weeks back B)Important to web developers C) met by crickets in the audience and D) deserved a better response.

Part 2 was another huge announcement. IE 8 would be changing it’s rendering model so that it defaults to Standards based rendering by default (again met by silence from the crowd). This means that pages that look bad in current versions of Opera, Safari, and Firefox, but look ok in IE 7 will be busted in IE8. This means the web developers should be able to design a web page that would work on 99% of browsers…. this is HUGE, this hasn’t been possible since IE3 and the days of Netscape 3, back in 1996!!!!

Part 3 User interface changes for ajax and HTML 5.

SAY WHAT?!?!?!

The working draft for HTML 5 was only released a few weeks ago and is still undergoing rapid changes (for a list of what changes see here). Fine, great, your starting to implement it, bully to you. But don’t release an incomplete implementation, let alone an incomplete implementation due to an incomplete standard in a full mark version of the browser to the public! This is how Javascript got borked in the version 3.0 browsers!!!!!! Bluetooth was set back a decade due to this (and is still causing issues between MS’s driver implementation and device specific drivers). CD/R vs CD+R is the same thing. Implementing a half finished standard in a public release creates 2 separate similar named but completely different specs. Attempt 1 beta and finalized version. The only way Javascript was fixed was by re-spec’ing the language as EMCA script a decade later. Let alone all the browsers that make attempts to support document.all and the other non standard DOM implementations.

Part 4 and 5 were about Activities and WebSlices… I’m not too sure what to say about these yet, but I’m worried… very worried… There’s no spec for either of these, and they’re designed for integration of feed type data into a web pages like those annoying smart tags you find on certain websites (you know those links that aren’t actually links, but popup context windows with ads in them). The other half of them seems like the return of the old “if we can’t beat them, bundle it with a free automatic update product” strategy. Google maps is arguably superior to MSN maps, but the rest of the Activities seems to be a straight move against Google tools by Live services.

Bad Microsoft! Bad Microsoft!… haven’t you learned anything from the multiple $1,000,000,000 (one billllllliiiioooonnnnn dollars Mr. Powers) fines the EU has been giving you for not playing nice?

Part 6 was performance improvements…. it’s faster.

Part 7 was a Developer tool bar, for doing proper JS debugging…. this looks a tad familiar.

Part 8 was of course a live beta of IE8 that you could (and I have downloaded).

So the final karma tally:
Good Karma

  • Implementing CSS2 properly.. bye bye box model hacks!
  • Defaulting to standards style rendering
  • Donating Tests for Standardization
  • Providing Feedback and Implementation details on Standards
  • Fixing webpage debugging

Bad Karma

  • Webslices and Activites…. are these using hardcoded keywords in the class attribute!?!?!?!?
  • Defaulting to using your personal service instead of the industry standard for activities
  • Implementing a half assed version of a spec
  • Not having Silverlight work in IE8 edit:Stupid installers, have to install them in the right order…. still doesn’t work in Firefox 3.0b3 though

it would appear that the IE team has actually generated some good karma for a change…. too bad it doesn’t make up for the last decade of webdeveloper torture they’re responsible for.

1Apparently his name is Dean Hachamovitch