April 7, 2008

The Fat Client is Dead

I don’t think anyone will argue against the point that a lot of applications that were traditionally desktop-based are now moving on to the web. Google has proved that you can make very rich, very responsive, and very good web applications; GMail, Google Maps, Calendar, Docs & Spreadsheets, Reader, etc. are all applications I use regularly. While some of them may not have all the features of their fat counterparts, the fact they they work anywhere with a ‘net connection and a browser makes up for it (for certain uses).

I am a firm believer that the fat client is dead, or at least dying. We are switching to an online world and the OS is being replaced by the browser. It’s really just a matter of bandwidth and latency before almost every application will move online. Things dealing with really large input can’t currently work well online but that’s just a matter of time. Serious photo editing applications for instance, would need a lot of bandwidth; every time I press the shutter on my camera I make a 10MB RAW file, and it’s not uncommon to have at around 100 photos in a shoot–uploading a gigabyte of photos to process and sort through right now isn’t feasible but with more bandwidth it would be. I think that in the next several years we might see Internet access regulated like telephone service is now, and anyone who wants a high speed connection will be able to get one–and pretty much anybody with a computer will.

Mobile phone applications are also going more web-based. Apple seems to be ahead of the curve on this one, as a lot of things for the iPhone are web applications. Some people would say that it’s too early to make that jump, as web access on the cellular networks currently isn’t very good (EDGE is too slow), but this is also what they said when Apple stopped shipping computers with floppy drives and when they switched everything to USB, etc. and those really worked out in their favour.

It’s also getting much easier to build good web applications. Things like Ruby on Rails and Google Web Toolkit are providing developers with the groundwork they need to really hit the ground running here. I built a full web app using Rails in about a month–which also included the time to learn Rails, making mistakes, doing things inefficiently, going back and fixing them, etc. I’ve also worked with Apache Struts in the past, and this application would have taken at least 2-3x the time to implement using Struts. I don’t have any real first hand experience with GWT yet (I intend to remedy that soon), but from what I’ve heard and read it really helps make something with the feel of a desktop application.

One of the biggest issues with web applications has been that they go away when the network does: on a plane, during an outage, etc. Google once again came in here with a solution–Google Gears, which lets these web apps store some data locally and let you use them offline. I haven’t seen anything really interesting using it except for Google Reader (which was the first public use of it) and now Google Docs, but I keep hearing (unconfirmed) rumours that we’ll see it integrated into GMail soon.

The other big issue that’s always brought up is data privacy. I don’t believe that this is quite as big of an issue as people think it is, as all the companies providing these services have everything to lose and nothing to gain by snooping in on your data or selling it. They’re equally as concerned with data leaks; Google gets a lot of flack about the amount of data they have, but I know that they take data privacy very seriously–a lot of effort goes in to keeping everyone’s data secure. Nevertheless, there will be institutions that will never trust their data in anybody else’s hands–I think that the providers will sell a “black box” to these places so that they can run their own internal-only instance and keep their data on site, much like Google does with their search appliance now.

I think it’s a very dangerous proposition for an new development to not consider a web UI. Personally, I think a lot of effort is currently being wasted on fat clients in companies around the world. Eventually the writing on the wall be become evident and most of that effort will be tossed out in favour of a web UI in the coming couple of years (again, not for every application, but for a lot of them). The argument to this is often that certain things are hard to do on the web, but with the current suite of tools out there it’s usually not as hard as it might seem, and if it is hard, getting it done could be a competitive advantage. Switching to primarily web-based applications can also reduce a company’s IT costs; managing application installs on workstations is dirty work, by moving to web-based applications much of this work can be eliminated.

October 3, 2006

Posting Frequency

I know my posting frequency has dropped off a lot recently. (You can stop reminding me)

I’m going to make an attempt to change that, and get back to my original goal for this year of writing approximately one post per week. So, I’m taking a page from Angus’s book and have put my posting statistics on the sidebar. I did this with a custom Wordpress plugin, that I will post publicly as soon as I clean it up a bit.

Hopefully with the numbers out there for the world to see, I’ll be a little more motivated to make them go up a bit. As a side note, I’m not going to try to get the frequency up to one per week for this past year (as I’d have to write between two and three posts per week until new year’s to make that happen, and I’d rather write longer posts with some content in them).

May 29, 2006

New Design

Unless you’re reading this with a feed reader, or are a first time visitor, you’ve probably noticed that I changed the site design (again). This is the third major design since I launched GeoffHolden.com back in October 2004; three designs in two and a half years isn’t too bad.

I’m pretty happy with this one (for now anyways). It has several new features that the old design didn’t have:

  • It actually expands to use the whole browser width.
  • It adds the categories/tags features that I didn’t use/build into my theme before.
  • It’s much easier to add a new header image with this design (drop an unprocessed photo into a directory and the server takes care of the rest the first time it’s loaded).
  • The embedded gallery theme is done much more cleanly this time. (Now that I have a proper understanding of how they work, as opposed to the hack-job I did last time)
  • The photo gallery now uses JavaScript and does the paging on the client-side. So the entries per page is based on window width, and changing pages doesn’t require a reload.
April 10, 2006

Gallery Lightboxed

If you’re into fancy web tricks/layouts/etc. and you haven’t already, check out Lightbox JS v2.0. It’s a neat little script that lets you link to images and have them display on top of your current page, without having to navigate away.

I’ve been meaning to try to integrate it into my photo gallery for some time now, and finally sat down and did it this evening. So, if you try to browse through my gallery now, and click on the thumbnail of an image, the full size version will load over the current page. I didn’t enable it for the random photo on the sidebar though, as lightbox needs around 110kb of JavaScript to operate, and I think that’s a little heavy for my page (my 12kb CSS file is big enough as it is), but if you follow a link titled ‘Photo Gallery’ while on a slow connection, you should be ready to wait for a little bit.

Update: I’ve made a few more changes to my Lightbox integration. I removed all the fancy effects, and made te necessary changes to my gallery theme to enable the use of the lightbox ‘previous’ and ‘next buttons’. As a result, I’ve cut that 110kb of JavaScript down to only 24kb.

January 18, 2006

White space is not “stealing our bandwidth”

I just read yet another article about how extra white space in HTML code is wasting bandwidth. I have several issues with these articles, the first of which is that people actually believe them.

Here are what I think are the main issues:

  1. Most large sites use HTTP Compression. This means that for all text files (HTML, CSS, JavaScript, etc.) the server is compressing the file before sending it “down the wire”, where your browser will decompress it. GZip is a respectable compressor and will remove almost all redundancies in these files.
  2. Even if there wasn’t any compression, that whitespace is useful for debugging and then for updates/upgrades, etc. You wouldn’t write all your C/C++/Java code with no extra spaces/newlines because the compile time would be a few milliseconds faster, would you? No, because it would get too difficult to update the file properly.
  3. The articles always ignore the benefits of your browser cache. Sure Google’s logo image could be more compressed by making it a PNG, but chances are that people who use Google (is there anybody online who doesn’t?) use it multiple times a day, the cache means you likely only download that image once. There are also issues with PNGs and some browsers, for instance older versions of Opera and pre-Tiger Safari will attempt to adjust the colour of PNG files if there is no colourspace info embedded (which would enlarge the file as well). Someone like Google wouldn’t want the colours of their logo changed on certain browsers.
  4. The argument for using CSS shorthands is somewhat debatable, so feel free to ignore this point. They will make the file smaller (before and after compression), and don’t signifigantly decrease readability. I don’t generally use them because I tend to be more explicit when writing CSS rules. The other reason is that I don’t trust them–getting the same set of CSS rules to work across all browsers is tricky enough without using shorthands.
January 8, 2006

Visual Upgrades

As you or may not notice as you’re reading this, I’ve made a few minor updates to the style of this site. I wanted to give the site a little more style, pizzazz, panache, and might I even dare to suggest cachet? (Oh, it’s got cachet, baby! It’s got cachet up the yin-yang!)

Now, as a warning, if you happen to be using IE the page might look slightly worse than before–the round corners will be far less smooth than they should be. The solution to this is proper PNG transparency support (look to any other current brower, or wait for IE 7)

The first of the updates was the banner image up top. It looks much like it did when there was no image, but it has some background texture now (an image of a hard drive, from stock.xchng).

The other update was a slight gradient in all the other blue boxes. Barely noticible in a short post, but in a longer one you can see how it darkens as you move down the page. This gradient is why I had to change how I did my corners, they used to be 100% opaque images with both the blue and grey. Now, because I don’t know which shade of blue will be at the bottom of a post, they only contain the grey and the rest is transparent. In sensible browsers the PNG alpha transparency works great, but in IE I had to fall back to the binary transparency of a GIF. And before somebody trys to inform me of the AlphaImageLoader workaround to getting transparency to work in IE, I’ve already tried it. It fails when you have to use background-position, but was otherwise working OK.

November 3, 2005

RSS Feeds

As I’ve mentioned before, I’m now using Google Reader as my RSS aggregator. I thought it might be interesting to list off the feeds I currently subscribe to, for anybody to see.

Do you read these feeds? Is there anything out there that I should be on my list, but isn’t? (Keeping in mind that I prefer to read Slashdot & Digg at their respective pages, not as RSS)

October 21, 2005

Internet Dependence

Internet Dependence (not to be confused with Internet Addiction) is something I’ve seen growing over the last few years, and I’m somewhat unsure what I think about it.

When I look back to my days in high school and early into university, getting onto the internet was a big deal. You had to make sure nobody was on the phone (or was expecting a call) and go through the whole dial-in, busy signal, retry, etc. until you finally got a connection. Then you quickly read and responded to any email, checked Slashdot, ran through usenet, etc. If you had to research something an encyclopedia on CD-ROM (or even in dead-tree form) was much more efficient and reliable.

Fast-forward to today. 49% of Canadian households have broadband internet access [Canada leads U.S. in broadband penetration], and I’d assume almost all businesses dealing in technology are connected.

That’s the background… everyone uses the internet, big deal, right? Well, next up is the dependence upon. The number of programs that depend on (or at least have some part of the functionality that depends on) having internet access is astounding. CD Players use the net to get track names and show you related info, office packages use it for templates & clip-art, calendar applications use it to find out which days are holidays. At last place I was working, we couldn’t compile the application without access to the internet. I know that in a lot of places if you were to shut down the internet access, you might as well turn off the power.

Is this all bad? Hell no. The internet is (generally) pretty fault-tolerant, and we can rely on it being there almost all the time. I, for one, am favouring web-based applications to desktop ones more and more. When you switch computers often (home PC, laptop, lab computer, etc.) it’s nice to have your programs follow you.

I’ve migrated to GMail as my email application. All my mail is now stored on Google’s servers and I can access any message from anywhere. (I really like the ‘Search, don’t sort’ way it works–labels are more powerful than folders when used properly)

I just started using Google Reader ass my RSS aggregator. I know Firefox supports RSS, but Reader will bring to my attention the things I haven’t read yet, and will stop me from having to check an ever-growing list of sites each day.

The program I haven’t yet found is a good online calendar program. I want something that I can read/edit from anywhere, as well as synchronize with my PDA. I’ve seen some good things done with the iCalendar format and WebDAV, maybe someone (maybe me, but no promises or even intent right now) just needs to write a program to sync CalDAV with a Palm OS PDA.

There have a number of been rumours in the last month or so about Google doing a word processor as a web application. There have been many people saying that this simply won’t work, I disagree. I think so long as it had the option to import/export an offline format like OpenDocument, which pretty much every office suite (except the most popular one, which doesn’t… yet) supports, and it had the ability to export to PDF for printing, it could really take off. The ability to read and edit your documents from any web terminal could be quite desirable.

I think AJAX is actually doing what Microsoft once feared that Java would do–make the browser the platform, and make the OS irrelevant. Can it replace all desktop apps? I won’t say yes, nor will I say no, I’ll leave it at ‘not yet’. Things like photo editing will require a large amount of bandwidth and storage space, but give it time. I’ve seen that some of the online photo-printing places will let you do simple things like cropping/removing red-eye. I think as bandwidth increases, we’ll see more and more apps turn web-based, but it’ll be quite a while for some other applications like video editing ones (massive bandwidth required there).

As a sidenote, I’ve decided to steal a little idea from Penny Arcade and start putting a song quote at the bottom of my posts. See if you can identify the song before getting the answer by hovering over the text.

October 17, 2005

Digg vs Slashdot, Give it a break.

OK, so I haven’t posted anything in a while, so I’m about to rant on something that’s been getting on my nerves. (Prompted by a Digg link today)

First off, for anybody who doesn’t know, Slashdot and Digg are both (supposably) technology news sites. Also, for the record, I currently read both at least daily. Where Slashdot is the old dog here (started in 1997), Digg is new kid on the block (November 2004).

The thing that’s been driving me nuts, is the apparent penis envy felt by the Digg community. It’s not enough for them to have a tech news site, it has to be better than Slashdot. They’re the guy who pulls up next to you at a red light and starts revving his engine and then takes off. Newsflash: there is no race, and you just made yourself look (more) like an idiot.

What these kids don’t understand is that the sites cater to different audiences, and have different purposes.

Slashdot is a news discussion site that caters to programmers, system administrators and the free software/open source community. The articles are hand-picked by a group of editors and are intended to provide the news while spawning some discussion. The discussion on Slashdot is good, so long as you filter out the trolls first (I read at +2 or +3 with the comments threaded and ordered highest scores first).

On the other hand, Digg is a link site. It’s catering to the new tech enthusiasts, web developers, bloggers, Apple fans, etc. The quantity of the links is much greater than that of Slashdot, but the quality is much less, there are often stories like “This site has a bunch of high-res wallpapers”, or “new episode of X is out”–I fail to see how that passes for news. And a large number of the submitters like to link to their own blog post about a news story instead of the actual story in a shameless attempt to get hits; to those people: “nobody cares what you think, just post the actual link” (as a sidenote, I already know that nobody cares what I think either, I write these posts for the sake of writing them). The comment system on Digg is also near useless–the majority of the comments say things like “awesome link. dugg”, adding no useful insight at all. When there are a few good comments, trying to find replies to them is a pain because the comments are totally flat (unlike Slashdot’s threaded system).

To clue this up, I still read both sites and will most likely continue to, they both have their uses. I go to Slashdot for the news and good discussion, and I go to Digg for links (the same way I go to del.icio.us).

April 17, 2005

SLUG Site Redesign

This weekend, I finished my redesign of the SLUG site. It now has (what I think to be) a cleaner design, and no longer uses tables for layout (with the possible exception of the NewsPortal pages).
I’ve also added a iCalendar version of our announcements that can be used with Mozilla Sunbird (or any other calendaring program that supports the protocol… KOrganizer can read the file, but I’m not sure if it’ll auto-update from the online one).
Anyways, give the page a look, and let me know what you think.

EDIT: I have confirmed that KOrganizer will auto-update a calendar from an online source, you just have to add it as ‘Calendar in Remote File’.