HomeBlogCategory: “browsers”

Showing only posts in category “browsers”.

Show all


JavaScript: Unicode letters (in RegExps?)

As you probably know already, Firefox's browsers' regexp engines don't "know" Unicode.  The \w specifier seems to be equivalent to [a-zA-Z0-9_], which is far from sufficient to match word characters.  After some googling I found XRegExp, a pretty cool library that extends the basic JS RegExp object.  It adds some useful magic, and—surprise—unicode support is available as a plugin.

Nice going, but since I need this in a very time intensive operation, it was rather slow.  (As you will see below, it's quite possible that XRegExp isn't to blame for the slowness).

So I thought I'd copy the bits that I need from the source code, and use them with standard JS regexps, rather than XRegExp.  If you look at the source code, it has a huge line for a "L" property (it's lowercase in the code) in a hash which defines the Unicode ranges for characters that are letters.  Later in the code, with a for loop it constructs the actual regexp.

[ read more... ]


Google Browser

Google launched yesterday “Google Chrome”, their revolutionary (no bullshit) Web browser.  I played with it a little.  It's amazing how well they did it!

It's incredibly fast, it has a nice and clean user interface, it knows most keybindings (which I couldn't live without) from Firefox.  It has a wonderful start page which shows thumbnails to the 9 most visited sites in your history.  But if you want to view pages that you don't want to show up there, you can turn on the “incognito” mode.  It runs one separate process per tab (I'll never understand why other browser makers didn't think about this) which means that even if a tab crashes, the others will stay up.  It also means that you can run some computationally intensive stuff in a tab without affecting the whole browser.  And did I say it's fast?

[ read more ]


DynarchLIB release

I finally released probably the biggest projects that I've independently worked on.  DynarchLIB is a fully-fledged user interface toolkit for development of Web applications.  It contains a rich set of widgets, a consistent object/event system, browser-server communication helpers, various JavaScript extensions, etc.  Worths checking it out. ;-)

Also see the Dynarch online chess, currently the first public application based on this toolkit.

PS: the administration frontend of this very site is based on DynarchLIB as well. ;-)


Firefox slowness identified

I talked previously about the Firefox problems on Linux, however, I now identified a case that can reproduce the slowdowns.  It happens when you have a lot of text in some element.  Even if that element is displayed with overflow: auto, or overflow: hidden, it'll be slow as hell to drag'n'drop it.  Additionally, all operations seem to be a lot slower in the whole page (that is, even if they don't directly affect that element).

Here is a demo that shows the problems.  If you're running Firefox on Linux the poor performance should be easy to see; if you're on Windows, use more lorem ipsum. ;-)

If you have any idea how to work around this issue, I would love to know it—please share your thoughts by commenting in this page.

The fastest browser on Earth

I never thought I'd say this, but here I go: Safari is the damn fastest (modern) browser on the planet.  Nope, it's not Opera, not Firefox and definitely not IE.

I'm playing with Safari 3.0.4 on Windows and it simply rocks.  The rendering engine is quite good as well—I'm doing pretty heavy AJAX stuff and there was no special hack I had to do for Safari.  So let me congratulate the WebKit team for this fine product! (I still can't forgive Apple for using KHTML instead of Gecko; Gecko is better, it just needs to catch up with performance and it looks like this is going to happen in the next release).


IE rendering MSDN

Note how IE does a hell of a job rendering Microsoft's own MSDN site:


All you have to do is to zoom-in, and it all looks broken.  Look how horrible is that text over the scroll bars, or how mutilated are the icons in the “toolbar”.

Microsoft developers must hate it too.

Filed in: browsers, internet explorer2 comments

Apple Safari for Windows

So, Apple released a few days ago Safari 3.0 Beta, which is available both for Windows and Mac OS X.  They say the Windows requirements are “Windows XP or Vista”, but a friend of mine has it running on Windows 2000 with no problems.

First impressions: crash, crash, crash

I installed it on my Windows XP machine, which has IE7 and it's pretty much up-to-date, because, well, it's a genuine Windows, and since I paid for it—against my will, I only wanted the laptop—I run M$ software update from time to time.

Safari installation went fine, though it asked me one bizarre question: “Do you want to install Bonjour...?”.  The description of this thing looked cool, so I let it on, but I'm still wondering why do they have to distribute this with a browser.  Anyway.  I start Safari.  By default it goes to apple.com/startpage, or something.  It loads it fine.  I then enter “mihai.bazon.net/blog” in the URL bar and press ENTER to see an instant crash.  Tried a few more websites with the same result.  It was that point when I thought that this beta is only good so we see the new texture of the Apple UI, because they seem to change it every month or so.

Well, talked to my friend again, and he told me that he didn't install Bonjour.  So I uninstall Safari and reinstall it again, this time without selecting Bonjour and Apple Software Update.  Same results.

System requirements

Isn't it strange that they distribute Safari for Windows and it works even on Windows 2000, and in the same time it seems to require the very latest Mac OS X version for running on their own system?

I have a Mac, but it's running Panther.  There's no way I'm gonna have Safari there, because they want me to purchase Tiger.  I don't.

Another strange thing is, they basically took the KHTML rendering engine from Konqueror (which is a decision I won't, ever, understand), called it WebKit, then wrapped their cool interface around it, and called the result “Safari”.  Though Konqueror was initially developed in Linux, WebKit doesn't even compile there (ok, last time I tried, compilation was finally successfull, after reading howto-s for half a day, but the binary instantly crashes).

Final thoughts

I managed to have it working by installing it on a different machine and deselecting Bonjour and Apple Software Updates from the start.  It runs fine there.  The UI is very cool too, but I think it's nothing they couldn't have done (probably with even less work) by wrapping around Gecko, rather than KHTML.

The rendering engine is good, probably as good as Gecko was 3 years ago.  I care less about speed (but yes in fact I do think Firefox is faster) — but I just wish they would have used Gecko from the start...  Everything sucks compared to it.


Firefox on Steroids

... or not?

Firefox speed is actually OK, but only in Windows.  If you use Firefox on Linux, you'll find it unacceptably slow for certain things (such as handling CSS opacity, or JS-based drag'n'drop, etc.).  OK, it's generally fine—but not for the type of applications I work on. :-)

To make an idea, I tested FF2 running on Windows in VMPlayer, on an average machine, and I accessed it using rdesktop from another machine in my LAN, over a wireless link.  It's still waaaay faster than the one running natively in Linux.

I downloaded today the Firefox 3 Alpha-2 build, which for some reason is codenamed "Gran Paradiso".  Or something.

The good news is that it's a lot faster than the version I'm currently using (  I'm looking forward for the final release!

Update: hmm, just gave it another try and I think I might have been too excited the first time.  The “speed” is pretty much the same as in FF 2.0, the biggest difference being that Gran Paradiso has some nasty layout bugs.

Why don't they care about Linux? :-(

Update 2: WTF am I saying?  It's unbelievably fast!  Let's just hope they fix all the bugs.

Filed in: browsers, firefox, linux4 comments
See also