Archive for compatibility

a peek into aMSN

Webcams are interesting beasties…

First of all, I found out, somewhat to my surprise, that the quality of a webcam can depend as much on the software used as on the camera itself. It turns out that Yahoo’s webcam is very choppy and slow, though it gets the job done. The webcam through the MSN protocol was much better. However, using Kopete’s MSN protocol let me to run into a bug where the incoming cam just freezes and lags — at one point, I realized I was seeing images 10 minutes old. I can only speculate the packets took a quick side trip to a sun-drenched beach somewhere first before coming back to our gray, drizzly area.

So, I tried out aMSN to see if it was true that the webcam performance was better over MSN. This package is strictly for the MSN protocol and is designed just for Linux. The interface to this looks a little rough around the edges, although it’s possible that it’s a font issue in my installation. Ubuntu has 0.95-2.1 in its repositories, but I don’t recommend installing that. aMSN has a later version (0.96) that’s demonstrably improved, and I found it here using a standalone installer (a tar.gz for more traditional compile/install is also offered) which intrigued me enough to try it out, and it installed without any problems.

And indeed, it proved quite responsive with both incoming / outgoing webcams, showing the picture with much less choppiness.

I think in conclusion I’d have to say that I really look forward to Gaim incorporating video capability (which is rumored for 3.0, but as I said, I’m not holding my breath since 2.0 just came out) because I like Gaim’s interface the best. Kopete seems to be actively working on its code, judging from all the email on its devel list, so I would expect the bug I found to be fixed quickly. At that point, I’d be happy to use Kopete, as I can see its interface growing on me. It’s just a pity it doesn’t have a windows version, as I like being able to use the same programs at home and at work. But, in the meantime, aMSN’s not bad at all and I won’t mind using it for the webcam until one of the multiprotocol apps work for me. I prefer to run as few programs as possible :)

But if what you need is a robust MSN connection, I’d definitely recommend aMSN.

del.icio.us:a peek into aMSN  digg:a peek into aMSN

Comments (1)

the new & improved Internet Explorer

Roger Johansson (of 456 Berea Street) and Lorelle VanFossen both remind us that the new Internet Explorer has been released into the wild and what does that mean for all our web pages?

I want to point out that Internet Explorer really has three main versions right now. (I have to support multiple platforms, so this sort of thing is a large concern for me). IE7 is intended only for XP and Vista. Anyone who has not migrated to either of these platforms will use IE6. Since Win2K is pretty decent, and there’s a lot of people out there who haven’t bothered to shell out for the bigger badder etc computer, I expect that the web pages I work on will continue to have a substantial proportion of IE6 users. So the IE6 bugs remain a real and ongoing concertn.

In testing with IE7, we have noticed that there can be different behavior between IE7 on XP and IE7 on Vista! Now, some of this may be due to the different beta versions of Vista — I believe we’ve gone through at least two updates on Vista beta. However the possibility remains very high that IE7XP and IE7Vista will behave differently from each other as well.

So now that means three platforms to support in place of one!

In any case I’m aware that IE7 does not handle this website gracefully even though IE6 does, as you can see in this screen shot.

del.icio.us:the new & improved Internet Explorer  digg:the new & improved Internet Explorer

Comments

fun with browsers and javascript

Since javascript is a client side implementation (meaning that it is the browser and not the host site (such as is the case with php/perl/other cgi scripting) that actually runs the script) this means I can have endless fun finding out the many ways in which javascript gets completely hosed up.

I mean, take a pretty simple bit of javascripting:
document.getElementById('cleanslate').innerHTML = s;
where s is a nice little list of selectable (checkbox) items in a list to be output.

And then of course, in the html we have:
<span id = "cleanslate"></span>

How much simpler does it get?

Well. It worked beautifully in Firefox.
Didn’t do a single thing in IE6.

And it’s hard to figure out where to even start. In no amount of googling have I found a book, or a faq, or any kind of documentation that extensively details the ways in which Javascript differs from browser to browser. I would think this would be a huge niche. I certainly found many many questions on this stuff. Even if the differences are under constant change, I would still expect at least some online resources to be out there. (Anyone know of any?)

I did find another site that demonstrated a very similar problem: Chameleon but which offered no solution, only the illustration.

After much experimenting, I finally figured out that the issue was really this:


<p>
<span id = "cleanslate"></span>

There is something about the unclosed <p> that IE6 does not like. This actually kind of makes sense — since it’s not closed (yes, I know, slap my hands already), the question is what is the actual DOM? Firefox obviously defaults to something reasonable to handle it, IE6 takes the novel approach of displaying nothing at all. Well the “Sun Java Console” (now there’s a misnomer if there ever was) does come up with the every helpful:
"Unknown run time error on line..."

As an aside: I just gotta love this “Sun Java Console” for its utter uselessness. It’s not even possible to copy and paste the message somewhere for future reference. I can’t make use of IE6 until I close the window. It offers no means of running anything, debugging, tracing, etc. There’s an extension available at Microsoft but even after I jumped through the WGA hoops to download it, when I ran it to install it, it said “No Installation Data available.” It’s particularly annoying after using so many lovely Firefox extensions that enable extensive Javascript debugging.

But here’s the odd part. Removing the <p> altogether fixed IE6. Finishing it off before the opening <span> worked, as well. But enclosing the span within the paragraph did not work. Throughout all these variations, Firefox worked throughout.

Opera, unfortunately, is an entirely different story…! It looks fine, on the first pass. But it’s clearly not actually getting the checkboxed items into its form when the form button on that page is pressed. Ugh.

del.icio.us:fun with browsers and javascript  digg:fun with browsers and javascript

Comments (1)

Part II: wandering through unicode, legacy fonts, and browsers

Precomposed versus Combining

In the course of putting together the encodings (called code points) in Unicode, a number of decisions had to be made regarding the current existing encodings, particularly well known and/or well established ones. In some cases, even though the Unicode Consortium has a particular policy regarding some encode vs render issues, there are inconsistent inclusions due to this grandfathering of prior established encodings and (to be quite honest) outright mistakes on the part of the Consortium. The question of precomposed characters versus combining characters is a classic one.

Read the rest of this entry »

del.icio.us:Part II: wandering through unicode, legacy fonts, and browsers  digg:Part II: wandering through unicode, legacy fonts, and browsers

Comments

Part I: wandering through unicode, legacy fonts, and browsers

In the beginning was ASCII, at seven bits. And it was good, until someone noticed a few missing characters. In this way, ASCII with eight bits was born. But alas! There were even more characters to be respresented. And thus began the exodus in search of ways to show these missing characters.

And the way split and conmingled between encoding and rendering. After all, since no encoding existed for some characters, those attempting to render them on the screen made up their own encodings as they went. And things continued in this sorry mess for years, until Unicode was born…

Of course at this point, now various different programs such as mailers, forums, word processors, internet browsers and even programming languages all are in the process of being updated to understand unicode. It’s a giant bear of a mess along many fronts, although I do believe Unicode is the way forward, the essential problem is that it’s been introduced at this point instead of at, say, the point ASCII originally came on the scene. But no matter, things will sort themselves out. Over the years and years, but hey.

So what, exactly, am I talking about? In order to represent the alphabet, two things are needed. First is a kind of representation that says which character we’re talking about. So for example (decimal) 65 is used to represent the letter ‘a’. The second kind of thing is whatever is used to render ‘a’. It could be a, or a or a. These two things are the encoding and the rendering of a given character. Conceptually these two properties of a character should be distinct. In practice, of course, it’s not always been that cleanly handled, and there are some issues where the lines are legitimately blurred.

The problem was, of course, that the original encoding table (ASCII) was much too limited to handle languages other than English. To address this, a number of ISO 8859’s were developed to cover additional characters such as ß or ñ and other marks and symbols such as © and £. However, since rendering (or typography) was not considered in these representations. a number of legacy fonts developed that used additional proprietary (and conflicting) encodings for additional information not covered in the standards. And in all of this, languages that did not even use the Latin alphabet (such as Greek, Russian, Arabic, Hebrew, Japanese, Chinese, and so on and on) were definitely ill-represented overall. In most cases there are several possible representations and standards to use, which results in a nightmare for anyone trying to represent extended or other character sets in programs that make use of them. (Which basically potentially includes any program which ever tries to communicate with its user in anything other than international symbols, but I digress.)

Unicode

The idea behind Unicode is to create one giant encoding standard for all of this (leaving the typography alone and up to whatever rendering a particular program wishes to use, or whatever font set the user has installed). Sounds simple enough although even this idea is fraught with complexity and inconsistencies. For example Unicode absorbed many of the original encoding standards in order to ensure backward compatibility; and has made various inconsistent decisions on the inclusion of other characters in different ways. However. the underlying concept is sound, and if it takes another twenty years to refine it, the end result should still be better than the cacaphony there is now.

Enough with the background. I want to discuss most of this in the context of browser rendition, since this is a good deal of what I work on anyhow.

Read the rest of this entry »

del.icio.us:Part I: wandering through unicode, legacy fonts, and browsers  digg:Part I: wandering through unicode, legacy fonts, and browsers

Comments (1)

Bad Behavior has blocked 441 access attempts in the last 7 days.