Confessions of a Web Developer

Subscribe to RSS feed

Sticky post

Where Am I?

It's been a while since I've posted here, hasn't it? If you're looking for places where I'm more active, try these:


I also post to the following topic-specific sites:


(List updated April 2012)

Don't Block Internet Explorer

Apparently there are websites out there that are redirecting Internet Explorer users to the Alternative Browser Alliance. This is, IMHO, both counter-productive and counter to the open spirit of the web.

For all the same reasons that you shouldn't block visitors using Firefox, Safari, Chrome or Opera, or anything else unless there's an actual, genuine technical reason (and unless you're doing serious multimedia that has no fallback option, there is rarely a genuine technical reason), you visitors using Internet Explorer... Because you're not going to change them. You're just going to make them angry. They arrived at your site looking for something. Slapping them in the face and sending them off to another site is not going to get them to change their behavior and come back. It's just going to make them look somewhere else for someone offering the same thing who won't make them jump through hoops. Case Study Last week I received a message through the Alternative Browser Alliance's contact form asking, "What does this have to do with cpanel?" I wanted to reply, "Nothing, why do you ask?"...but the person who asked the question hadn't left an email address, just the name "King Kong." (Tip: If you want an answer to a question, give people a way to contact you!) So I checked the server logs and saw that he(?) had arrived on the Why Alternative Browsers? page and had left no referrer. Great, another dead end. I was ready to write it off as spam, but then I decided to search the logs for cpanel, and found several hits referred by a cpanel tutorial. I visited the page and didn't see any links to my site, but when I looked at the source, I spotted this script:
if(navigator.userAgent.indexOf("MSIE")!= -1)
{
   window.location = "http://www.alternativebrowseralliance.com/why.html";
}
Wow. They just redirected all IE users with no explanation -- not even pointing out that they were being shunted off to another website! Imagine opening the front door of a computer repair shop and walking inside to find a political activist's office instead! Presumably "King Kong" had searched for cpanel, followed a link to this tutorial, and found himself looking at a page about alternative web browsers. No wonder he didn't leave a contact address. He didn't want an answer. He was angry and blowing off steam -- at me, for something that someone else did. And did badly, I might add: Three of the five visits I could actually identify in the logs claimed to be Opera Mini, not Internet Explorer. I don't recall whether Opera Mini can masquerade as another browser (the current Android version doesn't offer the option, but this claimed to be an older Java version), but the desktop version certainly can. Older versions of Opera used to deliberately identify themselves as IE (with a tag adding that, no, actually it's Opera), and would have been caught by this script! The User-Agent isn't a reliable indicator. It was never intended to be. If you must single out Internet Explorer for some reason, use conditional comments. That's what they're designed for. If what you want to do is block IE visitors, though, think about what you're really accomplishing. And please, don't just silently shove the "problem" visitors onto someone else. (Cross-posted at K-Squared Ramblings)

What's Cool in Opera 10

After a long wait, Opera 10 is out! So what's new in this first double-digit web browser?

Turbo

The biggest new feature is Opera Turbo, which can massively speed up web access on a slow network connection. Turbo takes the compression used for Opera Mini, which has to deal with slow cell phone networks, and brings it to the desktop. On fast connections you won't need the proxy, but if you're stuck on dial-up or sharing a busy network, it can help immensely.

I definitely could have used it on the painfully slow hotel wi-fi during Comic-Con!

Turbo can be turned on and off through the status bar, or set to auto-detect your network speed and switch on when it would help, and off when it's not needed.

Speed

Even without Turbo, Opera 10 is a heck of a lot faster than Opera 9 was! The app itself is a lot snappier, it displays pages faster, and it responds quickly. Opera feels lighter than Firefox again, after the (comparatively) clunky 9.x series.

Web Fonts

Opera's CTO recommended embedding TrueType fonts with CSS in 2007, but Safari was the first web browser to support it in a non-beta release. Now Firefox, Safari and Opera can all download fonts as-needed. That means websites can use fonts that aren't already installed on your computer.

Until now, if a designer wanted to use a font other than one of the standard fonts that come pre-installed with Windows or Mac OS, they had to save the text as an image. That's fine for banners and the like, but a pain for anything that changes regularly...like headlines or content.

You can read more about web fonts at Mozilla Hacks, and see them in action at Speed Force (font write-up).

Site Compatibility & Features

Website compatibility has improved a lot, and Opera has continued to add support for newer technologies. It's great to see Opera, Chrome, Safari and Firefox all working toward the next generation of the web. (If only Internet Explorer were along for the ride - at least IE8 has finally caught up with the last generation.)

Spell-Check

Opera has had on-demand spell checking for a while, though on Windows you had to install a separate dictionary. Now it's built-in, and it'll underline misspelled words as you type. (Downside: it underlines inside HTML code. I don't really want to add "href," "li," and so forth to my dictionary.)

Unite Postponed

One thing Opera 10 doesn't have that was introduced in the pre-10 snapshots is Opera Unite, which lets you set up a presence on your computer that other people can see for file sharing, social networking, etc. Apparently they decided it needed more work and didn't want to hold up the release.

But Wait, There's More!

Some other new features:
  • Visual tabs: Stretch out the tab bar and see a thumbnail of each page you have open.
  • New e-mail client, including the long-requested ability to compose with formatting.
  • Automatic update.
  • Customize Speed Dial.
  • Web apps integration with web-based email and feed readers.
  • Improved developer tools (Dragonfly).
  • Opera Link: synchronize bookmarks, history, notes, etc. across multiple computers and phones. (Not new, but I think it syncs more types of data than it used to)

And a lot more.

As a reminder: Opera is free (as in beer). It has been for almost 4 years now, but it's worth repeating because every once in a while you see someone who thinks it's still pay or ad-based software.

(Reposted from K-Squared Ramblings)

IE8 - Time to Upgrade the Web

, ,

Microsoft released Internet Explorer 8 yesterday, for Windows XP and Vista. So if you have friends, family or co-workers who are still running IE6, now's the perfect time to talk about switching or at least upgrading. (Assuming, of course, that they're not locked in by corporate policy or another piece of software.)

  • IE6 is now two versions behind the current release.
  • IE6 is almost 8 years old (it was released in 2001).
  • IE6 is lacking in many capabilities that modern web browsers have, in web technology, in security, and in features you can use.

You can read a review of IE8 at Wired, a write-up from the IE team, or a summary of technical changes at WaSP.

Of course, Internet Explorer is far from the only option out there. There's Opera, Firefox, Chrome and a host of other alternative browsers that are worth checking out.

If you run into a system that's still running Windows 2000 or some other old version of Windows that can't run IE7 or IE8, Opera is a natural choice. It'll run on Windows 2000, and it'll even run on Windows Me and Windows 98 (though I wouldn't wish Windows Me on anyone!)

(Adapted from post at K-Squared Ramblings)

Opera Mini on Android

, , , ...

Now there’s timing: Just two days after I bought a T-Mobile G1, Opera has released a beta of Opera Mini for the Android platform. You can find it in the Communications section of the Android Marketplace. Amazingly enough, on its first (or is that second?) day out, it’s already #2 by popularity.

For the most part I’m happy with the built-in browser, except for some sites that don’t translate well to the small screen. Sometimes panning & zooming isn’t the best solution, but that’s the only solution on the default browser as near as I can tell. Opera Mini gives you the option of choosing a “Mobile view” which will reformat the page.

It’s a bit rough around the edges (but then it is still a beta). In particular, the touch screen sometimes works for following links, and sometimes I have to use the track ball. Also text entry is a bit inconsistent: when you navigate to a URL, you can finish by hitting Enter, but when you fill in a single-line form field (say, a username), Enter takes you to a new line. You have to hit the Menu button to get an OK/Cancel dialog. And passwords remain completely visible, rather than obfuscating to dots one character at a time.

Of course it’s always good to have alternatives, plus it’s got the mobile display option and it’s blazing fast. It was designed to deliver performance over slower networks, after all (by compressing the heck out of everything at a proxy), so on the 3G network it just screams.

(Reposted from K-Squared Ramblings)

Suggestions wanted for Alternative Browser Alliance relaunch

,

You may have seen my website, the Alternative Browser Alliance. I put it together in 2005, when flame wars between Opera users and Firefox users were at their height, to show that we shared a common goal: opening the web. The most popular page on the site is a list of web browsers, which is linked as a resource from a number of sites and also gets a steady stream of traffic from people searching for alternative browsers.

Of course, things have changed a lot since 2005, so I'm planning an overhaul of the whole site.

Read more...

Gearing Up

, ,

So, Gears is now available for Safari on Mac OS X. Assuming I haven't missed anything, that means Google's offline application API is available on:

  • Firefox on Windows, Mac and 32-bit Linux (and other Gecko browsers if you jump through some hoops)
  • IE on Windows & Windows Mobile.
  • Safari on Mac
  • Chrome on Windows
Conspicuously missing at this time:
  • Opera
  • 64-bit Linux
  • Chrome on Linux & Mac
  • Safari on Windows
I expect all of these are on their way, however. Opera issued a press release back in May about upcoming Gears support, though it's been quiet on the subject since then. Google has stated their intentions to expand Chrome to Linux and Mac, and there's no way that they'll leave Gears out of their own browser. And it's obvious that 64-bit systems are the wave of the future.

The only one I'm not sure of at this point is Safari on Windows, though it certainly seems likely. The silence on the Opera front has been frustrating, though I wouldn't be surprised to see built-in Gears support in Opera 10.

Having just upgraded my home Linux box to a 64-bit system this weekend, I'm kind of hoping that 64bit Linux support will show up sometime soon. Though I suppose I'll have to try the nspluginwrapper workaround.

Where am I?

Okay, so it’s been half a year since I posted here, and that was only 2 sentences. The previous post was 6 months before that, and it was a cross-post. So, yeah, I've kind of drifted away from the browser scene a bit.

So where can you find me blogging these days? Mainly, at:

  • Speed Force. This is what I’ve been focusing on the last few months. It’s a comics blog for news and commentary about DC’s character, the Flash. Among other things, I’ve been promoting a book I contributed a few articles to, The Flash Companion (pictured at right).
  • K-Squared Ramblings. I still consider this my “main” blog, and I put stuff that I expect might be interesting to a general audience here. Interesting/funny photos, tech, TV/Movies, books, comics, etc.
  • My LiveJournal, where I post things that I figure only my friends are likely to be interested in. Slice-o-life, memes, those sorts of things.

I also contribute to Opera Watch from time to time, but I’ve only made a handful of posts there.

First Impressions of Google Chrome

,

I've posted my first impressions of Chrome, Google's new web browser, after trying it out for a few hours.

Opera Watch 2.0

,

Daniel Goldman is relaunching Opera Watch as a group blog, and I'll be one of the contributors. bigsmile

Now I just need to think of something to write! bigeyes

California, Water, and Blog Action Day

,

California is experiencing drought conditions again, and the media and PR campaigns have finally taken notice. I've posted an article, "Oh, You Mean This Drought!" over at my main blog, looking back at my memories of the mid-1980s drought, and how we seem to have forgotten how to conserve water over the years. Most of the tips being suggested today are the same things I remember hearing 20 years ago.

Read more...

Timed for Blog Action Day. Since I heard about the event here on the My Opera Community, I figured I ought to mention the actual post here.

Looking at Opera 9.5 alpha

, ,

I've mostly been away from this site since June, but I'm following the news... and I've downloaded and played around with the new Opera 9.5 preview. Over at K² Ramblings, I've posted my First Thoughts on Opera 9.5.

5 things I want to see in Opera

, , , ...

I've been away from this corner of the web for a month or so, focusing on the upheaval in comics fandom with The Flash, so I don't know if anyone's tagged me for Opera Watch's 5 things I’d like to see in Opera meme.

So I'm just going to throw my hat in the ring before I head off to Comic-Con tomorrow.

1. Inline spell-check and other improvements. Yeah, on-demand spell-check is available, but it's so much more convenient to have problem words highlighted as you type. I'd also like to see an "Ignore All" button, in case I don't want to teach the spell checker a word that appears repeatedly in a post. And it would be great if it would recognize and skip URLs and HTML/BBCode tags. I get really tired of hitting "Ignore" on things like href and http, but I don't want add them to the dictionary in case I accidentally type them in the body of a post.

2. Apt and Yum repositories for Linux. Opera's Linux offerings break down to about half a dozen binaries, which are available in 3 forms: .rpm, .deb, and tar.gz. Opera doesn't have to provide a separate repository for each distribution, just one yum repo for each .rpm, and one apt repo for each .deb. Once the user installs the repository, the OS's own update system will be able to take care of updating Opera. (As an example, see what Adobe has started doing with its yum repository for Flash.)

3. Delete all cookies on close with site-specific exceptions. I've given up trying to figure out what overrides what in Opera's cookie settings. What I'd like to do is just wipe everything on exit, with a list of sites that are allowed to keep cookies across sessions. Firefox does this with the "Keep until... I close Firefox" setting. I can sort of manage it in Opera by telling it to delete all new cookies when exiting, but it's more of a pain to add a new site. Instead of just adding it to the list of exceptions, I have to disable the option, log in to the site, then re-enable it. And that's assuming the site doesn't have to update the cookie later on.

4. Experimental CSS3 properties, especially box-shadow and border-radius. I know Opera 9.5 is supposed to have a bunch of CSS3 capabilities, but so far they've been cagey on just what's on the list.

5. Wii emulator mode for the desktop version. I'm not likely to pick up a Wii, but I'd like to make sure my websites look right. Small-screen rendering is great for simulating mobile devices, and the Opera Mini simulator takes care of that platform, but I can only go on descriptions for the Wii version.

I'm not big on the whole tagging thing, so I won't tag anyone else. (Besides, most of the people I could think of have probably already posted by now.)

(On the subject of Comic-Con, I'll be posting about it at my main site, K-Squared Ramblings, and guest-blogging at Comics Should Be Good.)

Safari on Windows: What effect will it have on Opera?

, , ,

So, Apple just dropped a bombshell: the Safari web browser is now available for Windows. I've posted some general reactions at K-Squared Ramblings as to how it will benefit web developers and users overall. The most obvious is that Windows-only web designers will no longer have an excuse for not testing in Safari, which might help break the two-browser mindset.

But what about Opera, specifically?

I remember when Apple first announced Safari for the Mac, Opera was very upset that Apple had decided to go their own way instead of licensing Opera as the new default browser. In retrospect, both sides were right: Apple was right to choose something that they could maintain themselves, without being dependent on an outside provider. (I guess they'd learned their lesson from Internet Explorer.) Opera was right that they lost a golden opportunity: as the default browser on MacOS, Safari has since become the most-used browser on that platform and the third-most-used browser overall, surpassing Opera's marketshare.

So there's certainly a risk that Safari on Windows could surpass Opera's users. However, there is one significant difference: Safari is not the default browser on Windows. It's hard to tell how much of Safari's uptake on MacOS is due to it being the default, and how much is due to people actively liking it. Personally, I have Opera, Firefox, and a half-dozen other browsers on my PowerBook, but when I fire that box up, I generally use Safari.

If you look at the functionality available in a base install, from simplest to most complex, it probably starts with Safari, runs through Firefox and IE, then finishes with Opera. Firefox has a wide array of extensions available -- in fact, it's pretty much known for them. Safari isn't nearly as extensible. You can't install something that will add mouse gestures, for instance.

I suspect that, at least at first, the audience for Safari on Windows will consist mainly of the following groups:
  • Web Developers
  • Dual-platform users who are used to Safari on Mac
  • People who just want a basic browser and don't want bells and whistles, but don't want IE for some reason

If anything, I think Firefox has more to worry about than Opera. For every Firefox user who tricks out his browser with every 1337 extension he can find, there are probably many who just wanted something more stable than IE, or faster than IE. There's a vocal faction of Firefox users who are frustrated with its performance. I don't know why they haven't jumped ship to Opera, but depending on how much memory Safari uses when it gets out of beta, it might prove a threat on that front.

Further reading:

Bookmarklet: preview current page in Opera Mini

, , ,

Haarvard just posted how to create a link to preview a site in the Opera Mini simulator. This is great for sites that want to spread awareness of Opera Mini, but it would also be very useful for web development. The link structure is simple enough, I realized it would be easy to create a bookmarklet.

I have one here. I wanted to create it as a link, so you could just drag it to your personal bar, but the blog software doesn't allow JavaScript links. (That's probably for the best, safety-wise, since allowing them could open the site up to cross-site scripting vulnerabilities.)

So, what you'll have to do is add a new bookmark, name it "View in Opera Mini" and paste the following into the address field:
javascript:location.href='http://www.operamini.com/demo/?url='+document.location.href;
I've tested this with both Opera and Firefox. It should probably work with IE and Safari as well. Basically anything that supports both Java and JavaScript, and allows JavaScript bookmarks.

Thoughts on Speed Dial

,

After a couple of weeks on Opera 9.20, I've come to the following conclusions about Speed Dial:

1. I can't stand the portal-like page that loads when I open a new tab. It's slower than a blank page, it's slower than opening my bare-bones home page, and it makes it tricky to open a new page and middle-click on an empty area to paste in a URL from another app because it's too easy to click on one of the thumbnails and open one of the speed dial pages instead. (It's a Unix thing -- middle-click usually pastes the current selection, and if you paste to a web page area, most browsers will try to load it as a URL.)

2. I love being able to hit Ctrl+1, etc. to quickly load those pages.

Once upon a time, wasn't there an option to choose what would load in a new tab/page?

Adding an Opera Button to WordPress: The Easy Way

, , ,

A while back I wrote a post on adding an Opera button to WordPress using your blogroll. It turns out there's much easier way to do it on WordPress.com, using sidebar widgets.

If you are using a widget-capable theme:

  1. Go to the Presentation tab on your blog's dashboard, then click on Sidebar Widgets.
  2. Drag a Text widget to the sidebar, then click on Configure.
  3. Load another tab or window and open the Choose Opera: Banners and Buttons page.
  4. Copy the code from the banner you want, then paste it into the text widget box.
  5. Close the widget configuration box, then hit Save changes.


Much easier!

On broken HTML

, , , ...

From time to time the idea is put forth that Opera needs to start dealing with bad code. There are two problems with that view:
  1. Opera already deals with quite a bit of "bad code" (but there's always room for improvement)
  2. Just dealing with bad code isn't enough: you have to deal with it the same way someone else does.
#2 is the tough part. The rules for dealing with good code are, for the most part, specific. If you encounter well-formed HTML, you can be reasonably sure you know what the author meant. But there are very few rules for dealing with bad code. Trying to "deal with it" means trying to guess what the author meant, and sometimes different assumptions are equally as likely. Example:
<p><b>Here's some text</i> and here's some more.</p>
Did the author close the non-existent italics by mistake, meaning to close the bold? Or did he open bold by mistake, intending to open italics? Or is the closing italics tag left over from copy-and-paste? Depending on what assumptions the browser makes, it should display it as: Here's some text and here's some more. Here's some text and here's some more. Here's some text and here's some more. And that's just a simple example. It gets wilder when you throw in issues like inline vs. block elements. A paragraph should never appear inside a tag for text formatting, like bold or italic. By all rights, starting a new paragraph (or more precisely, ending the previous one) should also revert to plain formatting. But a lot of old pages expect the formatting to continue into the next paragraph, because way back when, a P tag was a double-line break, not a container. Now, suppose that Browser A always makes the first assumption, and Browser B always makes the second. If someone tests their code in Browser A, and it happens to be what they want it to do, they won't necessarily notice that their code is broken. The result: the site looks wrong in Browser B, and the page author -- who thinks the page is fine, since he tested it in Browser A -- blames Browser B. Multiply that scenario by millions of pages and you have a large chunk of the web as we know it today. So the solution isn't just to "handle bad code." It's to handle that bad code in the same way that the dominant browser handles it. And since there's no document you can look to for guidance, that means taking every possible chunk of bad code, running it through the other browser, and seeing what it does to it. And there are a lot of ways to break code! Even Microsoft did this back when IE was new. At the time, lots of people were writing broken code and testing it by seeing whether it looked right in Netscape. So IE had to make the same assumptions Netscape did on certain things. Once IE became established, they diverged. Some relevant articles: I plan on refining this post from time to time.

Yahoo expands support for Opera 9

, , ,

Yahoo! just announced an update to their system of Graded Browser Support. This is the scheme where they classify browsers according to capabilities, age, user base.

  • A-Grade browsers get full support. Yahoo does extensive testing, and tries to make services work well in them.
  • C-Grade browsers are known to have problems, and get sent "lowest-common denominator" code. When last checked, the only C-Grade browser was IE 5.0.
  • X-Grade browsers are everything else. They get the same code as A-Grade browsers, but Yahoo doesn't do any testing on them.

A few months ago, they added Opera 9 on Windows XP to their A-Grade list (replacing Opera 8).

This time around, they've made several interesting changes:

  • Expanded A-list support for Opera 9 across all operating systems they support, including Mac OS and older Windows releases.
  • Added IE7 and Firefox 2 to the A-list.
  • Dropped IE 5.5 and Firefox 1.0 from A-list to X-list.
  • Dropped Netscape from A-list to X-list.

The first item is most significant for Opera users, because it brings Yahoo's official policy on Opera support up to the same level as their support for Firefox.

The new chart only shows A-grade browsers, so it's not clear whether IE 5.0 is still supported at C-grade level or dropped to X-grade like IE 5.5. This may reflect support at Microsoft, which maintains support for IE 5.0 on Windows 2000, but not IE 5.5. You can't even download IE 5.5 from Microsoft anymore. You can get IE 5.0 by installing Windows 2000, and you can update to IE6 or download the installer, but you can't update to or download IE 5.5.

The fact that they've dropped Netscape is interesting, and represents another nail in the coffin of the web's former dominant player. Of course, the real action moved from Netscape to Mozilla years ago.

Adding an Opera Button to WordPress

, , ,

Want to put an Opera banner on your site, but don't know HTML? Here's how to add an Opera button to any WordPress.com or WordPress-powered blog.

Update: I realized there's a much easier way to do this using sidebar widgets.

  1. Log into your WordPress account and go to the admin page.
  2. Go to Blogroll (wordpress.com) or Links (WordPress 2 or earlier)
  3. Click on Add Link
  4. Enter "Opera Web Browser" (or something similar) for the Name ("Link Name" in WP2)
  5. Enter http://www.opera.com/ for the Address ("URI" in WP2)*
  6. Click on the + in the Advanced bar so that you can see the Image Address field. (Or just scroll down in WP2)
  7. Open a new tab and open Choose Opera: Banners and Buttons
  8. Right-click on the banner you want and choose Copy image address
  9. Go back to your WordPress admin tab and paste that into Image Address ("Image URI" in WP2)
  10. Click on the Add Link button.
That's it!

Note: Depending on your theme, it may show only the text link. I've found that on WordPress.com, the default sidebar will only show the text, but if you go to Presentation / Sidebar Widgets and drag the Links widget onto the sidebar, it will show the button.

*Advanced Option: Log into your account on the My Opera Community first. At the top of the Banners and Buttons page, you'll see something like this:

Link to us using your affiliate url: http://my.opera.com/YOUR_NAME_HERE/affiliate/

Copy and that URL and use it instead of http://www.opera.com/ in the Address field. This will get you affiliate points, which you can keep track of on your My Opera preferences page...though I'm not sure if the points are actually used for anything.