Monday, December 29, 2008
The Glossy Fad
Thursday, October 30, 2008
Social Networking
I'm pretty selective about who I add. That may sound a little arrogant or elitist but I don't want to have 200 contacts of which 180 I don't know that well (or at all). I'm not in it as a popularity contest. I'm in it to keep in contact with close friends and the colleagues that I've enjoyed working with.
So, anyways, if you care you can look me up there.
Also, I've changed the blog format. After 2 years of the old one it got old. So on with the new!!
Saturday, October 04, 2008
Several weeks back, I needed to reload my PC. I said to myself, "Self, since you're going through the painful process of reloading Windows anyway, why not try Vista?" So I did. My first exciting dive into Vista from the warm, comfortable embrace of XP.
At first, it went pretty well. The install took a surprisingly long time, but it was reasonably straightforward (not as good as, say, Ubuntu Linux, but still pretty good), and Vista recognized nearly all my hardware, whereas with XP, I have to download and install lots of drivers to get all my hardware working. (For the record, Ubuntu Linux recognizes every last bit of hardware on both of my computers, and configures it all correctly without any extra effort from me.)
My happiness was short lived, however. I encountered a myriad of problems with Vista over the next several weeks, including, but not limited to:
* It takes a long time to boot. A really long time. It makes it to the login screen quickly, but that's just to give users the illusion of a fast boot. It's not really sitting at the desktop and reasonably ready to be used for much longer.
* It didn't format the hard drive upon installation, which is a feature. It allows you to more easily move your old documents into your new install. However, I ran into tons of problems removing the old documents once I was done with them. It's a difficult procedure (because I apparently didn't have access to delete my own old documents?!), and I never did get it to work for groups of files and directories. I was stuck changing the owner and permissions one file at a time, deleting the file, and then moving onto the next.
* Microsoft made some pointless name changes to personal directories (folders). This just makes things needlessly difficult.
* User Access Control (UAC) really is an annoyance. I saw that thing pop up hundreds of times over the course of a few weeks. I guess you can blame this on poorly written applications, but even Windows itself was constantly popping that thing up in my face.
* Windows Explorer and Windows Photo Gallery can't display Photoshop (PSD) pictures. Compare this to the free Picasa from Google, which can. This might sound like a nitpick, but come on, I installed Vista Ultimate. How can one of the most popular photo editing formats not be supported by Windows Explorer and Windows Photo Gallery?
* Vista is fat. Really fat. It uses an obscene amount of memory. Moving from XP to Vista is like removing half of your RAM.
* Vista is always grinding the hard drive, for some reason or another. And, yes, I know about Vista indexing the system. It grinds the hard drive even after the indexing was done.
* Poor application compatibility. For example, Vista is not compatible with my CD/DVD burning software, and some of my other productivity software. What happened to the much exhalted backwards compatibility in Windows?
* The CD/DVD burning software built into Vista can't burn ISOs. (Once again, I'll remind the reader that this is the Ultimate version of Vista I'm talking about. There's just no excuse for forcing me to find, download, install, and learn another program just so I can burn ISOs.)
* Vista Ultimate is expensive...really expensive. (So is Vista Business.) And those are the only two versions that support the Remote Desktop server. That just stinks, since I'm a Remote Desktop user.
* Vista is slow. Dear God, I have no idea what the hell Vista is doing. But it's damn slow.
* Lots and lots and lots of pointless changes for no good reason that I could determine. It makes using the system pointlessly difficult.
* There are too many versions of Vista. It was really bewildering and confusing. I settled on Ultimate because of that confusion. That's probably what Microsoft is counting on: confusing users with the myriad of versions so they'll give up in frustration and spend far too much money on the Ultimate version. (Fortunately, I was able to test drive a version of Vista Ultimate for which I didn't have to pay, otherwise I'd be suffering horrible buyer's remorse right now.)
And that's really just the tip of the iceberg. It's been a month or two since I used Vista, so I'm going on my memory, which is pretty spotty. But, believe me, there's a lot more wrong with Vista. Do yourself a favor, skip Vista, even if it means delaying upgrading your hardware for another year, or two, or three...
If the next version of Windows is as stinky as Vista, my wife's next machine will be a Macintosh, and I've already moved my personal machine to XP and Ubuntu Linux.
Monday, August 04, 2008
Sup....
This is what I'm reading right now. If you're interested in refactoring you'll want to get this after you read the Fowler refactoring book. It's like an extension. Good stuff.
http://search.barnesandnoble.com/Refactoring-to-Patterns/Joshua-Kerievsky/e/9780321213358/?itm=1
Wednesday, July 30, 2008
In a previous rant on this blog, I complained about displays with pixels that were too small. As a result of ever tinier pixels, things like fonts on web pages often ended up far too small to read comfortably, and increasing the text size in web browsers often resulted in web pages rendering incorrectly (often making them unreadable), and increasing the text size in the browser does not help make the graphics on web pages bigger.
Enter Firefox 3 and its new zooming enhancements. Not only does zoom increase the font size, but it also zooms the graphics and it almost always continues to render the web site correctly (so there is no weird overlapping sections or unreadable sections). (IE7 also has a zoom feature, but in my experience, it's buggy to the point of uselessness.)
This is just a simple fan boy post. Thank you, Mozilla. Thank you, Firefox developers. And thank you, Google, for being largely responsible for funding them.
Long live Firefox!
Thursday, May 08, 2008
As I watch my PC obey my commands at the pace of a snail (yes, I know I've ranted about this before), it gives me ample time to consider why the user experience never seems to get any better from a performance standpoint (and often, it gets worse, much worse).
I think it's largely because of the changing attitudes of software developers.
Back in the day (when I walked to school and back uphill, both ways, in several feet of snow, an hour in each direction, and I liked it), it used to be a badge of honor to write software that performed well. Almost everything else was secondary. Performance was King (or darn close). If you wrote software that performed poorly, you were pretty much a loser (in software development circles), and your users were appalled.
In other words, you did whatever it took to make sure your application performed well on reasonable hardware (where reasonable was anything five or less years old).
These days, it's all about ease of development. The program runs 50% slower? No problem, using this high level language made it easy to develop.
The program uses 100% more memory? No problem, using this high level language made it easy to develop!
The program stresses my old PC badly? No problem, using this high level language made it easy to develop! Look how few lines of code it uses! Whee!
The user experience hasn't improved? That's OK, I'll make up for it by shoveling in more bloated and slow features. It's so easy using this high level language!
The problem is compounded by developers wanting to use elegant languages these days. Developers are no longer engineers trying to create something useful; instead, developers fancy themselves as Picasso or Monet, trying to create an "elegant" source code base using an "elegant" programming language.
So what if the end result is slow, bloated, and unresponsive? Who cares if it performs like a pregnant hippopotamus? It's so elegant! Look at my pretty, pretty code!
Nobody seems to care about performance anymore, beyond making software just barely fast enough to be just barely acceptable to the user.
How disappointing.
Wednesday, March 05, 2008
A few weeks ago, I "completed" the creation of a small web site for my wife's photography business. (The word "completed" is in quotes because, like most web sites, it'll continue to grow and evolve as time passes.) I wrote the HTML, CSS, and JavaScript by hand. (I was warned about the terrible code generated by WYSIWYG web tools.)
The experience was terrible.
Admittedly, I had written some HTML, CSS, and JavaScript code before, so the technologies weren't completely new to me. And I've been doing professional software development for almost 20 years, using technologies like C, C++, and Java.
Still, the experience was terrible.
Getting the HTML and CSS to render correctly in IE6, IE7, and Firefox was annoying, to say the least. Fortunately, my friend Rick was nice enough to briefly test drive the site in Safari and Opera. (Thanks, Rick!) Sadly, some browsers will probably remain untested forever (such as Konquerer).
It all seems to render and work correctly -- for now -- but even minor changes would require another round of tests in a bunch of web browsers. And soon, it may require testing in yet another web browser: IE8.
It shouldn't be this hard. To be blunt, the state of the web -- from a developer perspective -- is that it's completely broken. Yes, you can do things -- amazing things -- but the effort required is far and above what it should be.
It's my opinion that HTML and CSS are just plain bad technologies. They grew far beyond their original design goals and inevitably had to be hacked to do more complex and interesting things. JavaScript isn't too bad, but since there's no easy way to thoroughly test it without actually sitting there and testing every possible code path, the possibility of run-time failures are always looming. (OK, there are tools to mitigate this risk, but they're complex to setup and use themselves. A workable solution for a big corporation, but not so ideal for smaller operations.)
HTML 5 will only muddy the waters further. Sure, it'll have cool new features, but as a result, it'll make HTML even more complex, and then web developers need to start deciding how and when it's safe to use those features. Wait until IE version N supports it? Wait until IE version N supports it and has > 50% market share? Tell your users they must use a particular browser? Do some browser capability sniffing, and have a < HTML 5 path and a >= HTML 5 path?
Bah!
I'm starting to wonder if this is the beginning of the end of the web as we know it. Technologies like Flash, which (theoretically) work the same on every browser, are appealing more and more, because your code is much more likely to work the same, whether it's Flash-on-IE6, Flash-on-IE7, Flash-on-Firefox, etc. (Right about now you're probably thinking about how much you hate Flash ads. Yes, they're horrible and obnoxious, but that doesn't change the fact that Flash is a great technology for creating a rich, interactive web site.)
Sure, some people (a surprisingly small percentage, actually) don't have Flash installed, but losing those few users might just be worth the substantial time saved in development. Besides the easier development and portability angle, you also get better performance (have you seen how slow some of those "rich widgets" JavaScript libraries run, even on blazing fast, modern PCs?), a compiler (which will catch many bugs at compile-time instead of waiting for your users to discover them at run-time), and a huge standard library which include things like rich widgets, persistent socket connections, animation, etc.
Perhaps best of all, Flash is well supported by the Free Software community as well. You can download and use free Flash IDEs and compilers, or you can use Adobe's excellent commercial tools.
Google is trying to sidestep the issue using Google Web Toolkit. GWT is a neat technology that "compiles" Java code to HTML, CSS, and JavaScript for you, helping you avoid all sorts of trouble. A lot of Google's nice web products are written using GWT. (One of the big caveats here is that you really need Java on the server-side too, in order to make GWT shine, but you can do some impressive client-side only things as well. Still, it ends up being a big problem for the many web sites that use commercial shared hosting.)
Even Microsoft seems to be smelling the stink of death on pure HTML, CSS, and JavaScript. They recently released a Flash competitor, Silverlight, which will apparently be bundled into IE8 (if you can't beat 'em fair and square, just bundle it!). The Open Source community has responded with Moonlight, which aims to be a Silverlight clone that'll run on free operating systems such as Linux.
Flash. Google Web Toolkit. Silverlight. Moonlight.
The existence of these products by large, prominent companies should tell us something: They're aware of the weaknesses and limitations of traditional web technologies, and are starting to push alternative technologies with success. Developers win, users win, and the evolution of the web takes a nice leap forward.
Are we looking at the beginning of the end of the web as we know it? If so, I couldn't be happier about it.
Monday, January 07, 2008
Wake up, Entertainment industries
So you bail on the music industry and start watching TV. But wait, there's a writers strike. So no new shows which require writers are being made. And this has been going on since November.
If it wasn't in the news would anyone have noticed? Or care? Is anyone going to miss the Golden Globes when the actors won't cross the picket lines and so it won't be televised? Doubt it.
Seriously. What the entertainment industry hasn't quite grasped yet is that there are a billion forms of entertainment out there. If they don't offer a product or make it too difficult to use fairly people will just go do something else.
I can't legally rip my CDs to a shared folder on my server so I can access them from my desktop and my laptop? Gee, thanks. Maybe I'll watch some CSI:Fargo reruns instead.
Or maybe I'll go to the library and get a book. At least that's still free. For now.
Wednesday, January 02, 2008
CSS-Driven Layouts vs. Table-Driven Layouts
Like many people, I like to browse the world wide web. It's a great resource for researching information, buying things, or just plain having fun. Go web!
However, several things have conspired to make my web browsing less enjoyable than it could be. There are three main problems which, when added together, cause me headaches (literally and figuratively).
Problem #1: Tiny Pixels
Displays have gotten bigger, but not as fast as pixels have gotten smaller. On modern displays, pixels are now really, really tiny. This is both good (really crisp, beautiful displays) and bad (fixed size images -- like those found all over the web -- end up being uncomfortably small to see properly).
Problem #2: Small Fonts
For some reason, small fonts are really popular on the web these days. Like, really uncomfortably small fonts. I know very few people over the age of 35 that likes those uncomfortably small fonts. I can only conclude that most web developers have 30" displays or most web developers are under the age of 35.
Firefox to the Rescue!
Fortunately, using an excellent web browser such as Firefox, I can increase the font size on the pages I browse. Typically, I increase the font size two or three steps. This results in a font size that's generally very comfortable for me to read.
Alas, an ugly problem has cropped up in recent years that makes my solution much less ideal.
Problem #3: CSS-Driven Layouts
I'm not precisely sure what the problem is, but over 90% of the web sites I visit render very poorly when you increase the font size two or three steps. These web sites almost always have one thing in common: their layout is done via CSS.
Sometimes the problem is reasonably minor: text overlapping other text. Sometimes the problem is much worse: the page becomes completely unreadable due to all the rendering problems.
The excuse I typically hear from web developers is, "That's because people don't know how to use CSS properly." However, the problem is so pervasive that I've got to wonder if CSS is just too unwieldy of a technology to be used for page layout. It appears to me that CSS has some serious usability problems, at least when applied to page layout.
Web sites that use table-driven layouts don't seem to have these problems. These days, however, you're considered an ignorant buffoon if your web page is laid out using tables instead of CSS (an Ivory Tower attitude I don't at all agree with).
As a result, from the perspective of a user (not a developer!) of the web, I say: DIE CSS-driven layouts! GO GO table-driven layouts!
My friend who started and runs this blog, Rick, loves and worships CSS, so I'm hoping he'll write an article which defends his pro-CSS-driven layout position. :-)