Here are my rankings (with some comments) for this week's American Idol.
So there you have it. My prediction is that the bottom three will be Julia (poor girl, three times in a row), Carmen, and Corey, with Carmen getting the boot this week. I am of course probably going to be proven completely wrong.
No commentary about what actually happens on the show until after it has aired on the West Coast tonight!
WebCore 68 is available for download here for those who are curious. The most significant changes to the code from v60 to v68 are the new CSS parser and the new inline box model (which also involved a split of RenderFlow into RenderBlock and RenderInline).
... our President had come up with something like this speech from Tony Blair explaining why Saddam must be disarmed.
Made some serious progress last night and today on Safari's float handling, especially when floats are mixed up with positioned elements. With all of these fixes macromedia.com's pages render correctly. Woo hoo!
Angel is quite simply the best show on television right now. This season has without a doubt been the best of the series, which is saying a lot considering how awesome last season was.
Joss Whedon, you are, you have been, and you will always be - to quote Randy Jackson again - my dawg!
Ok, so I can't really pull off "dawg." That doesn't stop me from trying. ;)
What has impressed me the most about Angel this year is the well-developed and carefully crafted arc that has been unfolding in all its twisty goodness over the course of the last fifteen episodes. The writers have genuinely surprised me over and over again this year with shockers that I didn't see coming.
And to think I was so angry near the beginning of the season when Cordelia and Angel's "handsome yet androgynous son" hooked up. There I was thinking, "That is so not like Cordelia. How could they do this? They're smoking crack! I should be writing this show! Morons!"
Fortunately some people with bigger brains suggested to me that "Uh, hey, dumbass, maybe Cordelia isn't herself," and - sure enough - they were right. The writers were vindicated.
Tonight's episode was particularly wonderful, and I'd love to blog more about it, but some people probably haven't seen it yet. Just trust me when I say that this show has left Buffy in the dust.
Bravo.
I finished the residual style fixes today. All of the code that I wrote to fix up tag misnesting and to reopen tags across paragraphs works like a charm. I deliberately implemented this code to only execute when in quirks mode, so standards mode pages will not get fixed up implicitly if they use bad HTML.
Proud of myself, I then went through my bug list. All of the pages were fixed except for one. Perplexed, I cut out the relevant snippet and pasted it into a local Web page. It worked! I loaded the page online. Nope, didn't work. I brought it up in Mozilla and WinIE, and the page looked just fine.
Confused I downloaded the entire page to disk. Still didn't work in Safari, but it did work in Mozilla and WinIE! I kept reducing the page until finally I noticed that it had an XHTML doctype.
An invalid page, horribly invalid (two body tags, misnested font tags) , was using standards mode in Safari and Mozilla! Even more mind-boggling, Mozilla actually still applies residual style quirks in strict mode. I couldn't believe it!
Maybe I'm taking a hard-line stance here, but I view fixing up tag misnesting as a horrible quirk that should not be implemented in standards mode. If you don't behave strictly when in standards mode, how will people ever write valid HTML?
I hope that Mozilla's behavior is just a bug.
I was thinking about the last ten years of my life, sort of wondering how I became this total Web geek. I used to do all sorts of things: music (clarinet and piano), playing games (with actual people, not on a computer), reading, hanging out with people who aren't all computer programmers, etc.
My range of hobbies has gotten steadily narrower as the years have progressed. At first you start off with a whole field of career choices, but college forces you to pick something. I couldn't even do that in undergraduate school, so I ended up double majoring in computer science and history. I finally narrowed the field down to computer science for grad school, but even then I had lots of free time to pursue hobbies like writing freelance and maintaining my own Web site.
But once you enter the real world you have to get a full-time job, and the job inevitably boxes you in even further, because you just don't have as much free time to pursue other interests as you did before.
I went to Netscape and started working on Web browsers straight out of grad school. Now I've been doing it for nearly six years, and I suppose you could call me a "browser expert," although all I really had to do was show up to work and have a pulse in order to absorb a bunch of Web knowledge after six fricking years working on them.
Now, after eight months of work on KHTML, I have this encyclopedic knowledge of not one, but two layout engines, and I've solved some of the same problems multiple times in both engines (and sometimes multiple times even in the same engine). Most people are proud if they can recite the 50 states in alphabetical order; I can do the same thing, but with CSS properties.
I rarely even have to think before cranking out code in a layout engine now. I just sit down and start typing. Ok, but enough bragging. ;) The problem is this knowledge, this expertise, has come at the expense of other hobbies and other pursuits. My paranoid nightmare is that parts of my brain are being overwritten to make way for all this layout knowledge. The gray matter is sloughing off skills it doesn't need in order to evolve itself into some kind of ultimate browser-constructing machine.
Don't get me wrong. I love working on Web browsers. I have yet to find an application that offers a wider range of fun programming problems. From GUI to networking to layout to scripting, there's a wonderful range to Web browser programming that it would be tricky to find elsewhere.
But it's literally *all* I do now (well, that and play video games), and I've come to the realization lately that this just isn't healthy.
I was reminded of that hilarious Billy Crystal monologue in the movie City Slickers.
Value this time in your life kids, because this is the time in your life when you still have your choices, and it goes by so quickly. When you're a teenager you think you can do anything, and you do. Your twenties are a blur. Your thirties, you raise your family, you make a little money and you think to yourself, "What happened to my twenties?" Your forties, you grow a little pot belly you grow another chin. The music starts to get too loud and one of your old girlfriends from high school becomes a grandmother. Your fifties you have a minor surgery. You'll call it a procedure, but it's a surgery. Your sixties you have a major surgery, the music is still loud but it doesn't matter because you can't hear it anyway. Seventies, you and the wife retire to Fort Lauderdale, you start eating dinner at two, lunch around ten, breakfast the night before. And you spend most of your time wandering around malls looking for the ultimate in soft yogurt and muttering "How come the kids don't call?" By your eighties, you've had a major stroke, and you end up babbling to some Jamaican nurse who your wife can't stand but who you call mama. Any questions?
I guess the trick is to try to find some balance between work time and free time. I've never really been able to do that. Here it is, some time after 1 am, and I'm busy hacking on Safari. I gravitate to it at all hours, just as I did when I worked on Gecko.
I have trouble sleeping because I'm thinking about all of the problems I still have to solve in the engine. I'll lie in bed and be completely unable to fall asleep because my brain will be chewing on layout engine bugs. Or I'll fall asleep only to wake up in the middle of the night because my dumbass brain has found a solution to some problem and it just has to share the solution with me even if it's 4am. Thanks brain. Really.
In some ways blogging contributes to the problem, because one of my hobbies used to be writing fiction, and I don't do that any more. I blog instead. Blogging in some ways is a trap for writers, because it's just so damn easy. I've never really viewed my blogging as actual writing, because unlike other writing I do, it's unpolished, emotional, raw. I pound it out on the keyboard, hit send, and then fix it later (if ever).
Also, since my blog became all about Safari in January, that has contributed to the problem, because even when I'm turning to the blog to "take a break" from work, I end up writing about Safari anyway.
I think the solution to this problem is for me to blog about Safari a bit less than I have been. I'll still try to respond to bugs and issues, but I'm spending too much time poring over referrer logs, reading Mac newsgroups and forums, reducing random Web pages people send me in email, etc. etc. You get the idea. It's too much.
At some point you just have to step back and slow down, and that's what I plan to do on the Safari blogging front.
Ruben and Clay all the way, baby. All the way. As Randy Jackson would say, "They are my dawgs."
I have decided to go ahead and include the Safari articles in this blog, although I'm not going to allow comments in the versions posted here. I'm also going to tag the articles lifted from the Surfin' Safari blog with "[Safari]" so that those of you who don't care about Safari will know what to skip easily. :)
One of the most critical HTML quirks is a problem that has not yet been solved in KHTML. Consider the following tag sequence found in a real-world screenplay on the Web:
<b><p>Bob:</b> Look out! It's behind you!</p>
<b><p>Carol:</b> What is?</p>
<b><p>Alice:</b> Run!!!</p>
<b><p>Monster:</b> Grrrr.</p>
And so on. This real-world page sends Safari into a nosedive, because it's essentially nesting bold tag after bold tag. Safari allows a paragraph inside a bold tag (as do most browsers in quirks mode), and so it happily builds up a tree thousands of bold tags deep.
Another common example of tag misnesting is the following:
<p><font>I am in a special font, but now the paragraph is closing.</p>
KHTML will currently close up the font tag, and then the following paragraphs won't have the font applied. This is a sensible approach to deal with what is effectively a misnesting of tags, but unfortunately, it's not what Netscape did in the old days, and it's not what WinIE does now.
The problem is that some style (this font) is left over at the close of the paragraph, and this style needs to be reapplied when you open the next paragraph. This residual style can't be lost or forgotten if you want to properly handle tag misnesting.
Another name for this problem is the "Tag Soup" problem, i.e., how do you handle complete garbage HTML. I tend to view the "Residual Style" problem as being a specific subset of the more general "Tag Soup" problem.
Ian Hickson has a a great blog in which he talks about how the various browsers handle this problem.
I am planning on adopting the Mozilla approach to solving this problem, which is to reopen tags that aren't closed properly at the close of a block. I'll also be attempting to identify examples like the first one above, and notice that inline tags got closed in a different scope, i.e., in a deeper block level. This close will be honored, and then I'll immediately close up the inline when you return to the same scope.
It's a shame that so much time has to be spent dealing with invalid HTML, but if you want to work with the real-world Web, you don't have much choice.
I tried to play Kingdom Hearts again today, and now I remember one of the big reasons why I quit playing: the control scheme. With most PS2 games, you can use either the arrow buttons or the joystick to move your character around. The arrow keys are comfortable on my hands, but the joystick is utter death.
Kingdom Hearts forces you to use the joystick, and saves the pad keys for other commands. Add to that the frantic arcade-style button-mashing combat, and it's just not good for my gimpy hands.
Oh well. Guess I'll go back to playing Freelancer.
Remind me to mail a dead badger sixth class to the guy who posted about tabbed browsing to Slashdot calling me an "uber-geek." The name has stuck with my co-workers. I guess it wouldn't be so bothersome if it weren't in fact true. :)
One of the things that really irritates me is games that don't let you pause or skip cut-scenes, as well as games that don't place save points well. Final Fantasy X is a great example of a game that makes skipping cut-scenes difficult (some scenes just couldn't be skipped) and that places save points badly for the final boss fight.
At the end of FFX, you have to endure a tedious mini-game following the last save point that basically serves no purpose whatsoever except to waste your time. Fifteen minutes later, when you finally get through the mini-game, you have to sit through a five minute cut-scene that builds up to the final boss fight. You can't skip it; you just have to suffer through it.
Then when you finally get to the boss itself and get beat down like a little girl, you have to reload and go through the stupid mini-game and cut-scene all over again. How does a company end up releasing games like this? Are the testers just so good at the game after testing it so much that they can beat the final boss easily, and so they don't realize how irritating this is?
It should be a cardinal rule for all computer games to follow: place save points just before and just after tough boss fights and always allow cut scenes to be skipped! It's that simple. To do anything less is to insult your players.
Ok, this is the first entry in my new blog. You know, a real blog, and not post after post about nothing but Safari. I felt like the Safari content was just overwhelming my blog; the personal element was being completely lost. Also everything I posted about ended up being misinterpreted as somehow being connected to Safari, even when it had nothing whatsoever to do with Safari.
So now I have two blogs. The official "mainstream" blog sitting at the original URL for all the Mac users to read, and this - the real blog - for those of you who actually stumble upon it.
Maciej fixed the infamous cookie bug last night, so PHP-Nuke sites will now work properly. Quoting Maciej:
I have a fix for the infamous PHP-Nuke login bug. It should be in the next release. Here's the short version: the Netscape cookie spec says when a cookie comes from a URL like "http://www.foo.com/user.php" and no path is explicitly specified, then the path should default to "/user.php". However, it actually needs to default to "/", because that's what all real browsers do. Don't you love the web?
Another bug bites the dust! :)
Ok, Freelancer is starting to get interesting, now that I'm on the run from the Liberty Police. Finally the story is going somewhere. I do find it odd that every person in every station is played by the same (bad) voice actor, and that all of them say the same thing.
"Hi. First time here? I work for [insert company name here]. I don't own this place, but I [pick one: have an understanding/have a stake with] the people who do. I have heard a rumor."
[Screen comes up showing the rumor. It's about as exciting as watching paint dry.]
Your character usually responds with something lame like: "Interesting."
No, it really isn't. This game is pretty fun if you follow the main story, but the minute you're left on your own, zzzzz....
The multiplayer might be interesting. I haven't tried it yet.
If there is anybody out there who has actually beaten Jecht in FFX and won the game, I'd love some tips/pointers. I have played that final boss battle over and over again, and every time I get beat down when he enters his second form. I simply can't keep my characters alive and take out the towers and damage Jecht all at the same time. What am I missing?
(Update: I won! There are spoilers regarding the ending in the Comments section of this entry, so read at your own risk if you're still playing the game.)
I beat Xenosaga tonight. It had a fantastic ending. When the words To Be Continued appeared on my TV, I really really wanted Episode II. I hope those folks at Monolith get the sequel done quickly. :)
I have moved on to Freelancer, which is decidedly unimpressive so far. I think it will get a bit more interesting once I actually have a ship with decent weapons and other gadgets (like mines and countermeasures), so I'm withholding judgment until I've played a while longer.
The other game that I'm about 60% of the way through is Metroid Prime. I wish those damn GameCube controllers didn't hurt my hands so much, or I'd have been done with that game by now.
Still in the queue is Splinter Cell for my XBox. I have sadly neglected the game completely, despite having heard wonderful things about it.
And I need to get back and finish GTA:Vice City on the PS2 and Buffy on the XBox. So many games, so little time. Sigh.
News.com's latest Netscape piece comes to us courtesy of Charles Cooper.
His article starts by asking the question "What if Netscape had Won?" Well, first off, that's a pointless question, because it was absolutely impossible for Netscape to "win" against Microsoft once Microsoft bundled their browser with the operating system. Sure, technically Internet Explorer 4 was superior to Netscape 4, but even if Netscape 4 hadn't been inferior, would it have mattered? No, of course not. Just look at how far beyond Internet Explorer other browsers have gone, and do they have any substantial market share? No.
This gets back to my earlier blog about avenues of distribution. Without them, your browser gets nowhere. Microsoft controlled distribution on the platform that 97% of the world used. Therefore they won. End of story. Asking "What if Netscape had won?" is like asking "What if the Earth started rotating in the opposite direction tomorrow?" It's not even worthy of speculation (update: Did I speak too soon?).
The paragraph I most disagree with is the following:
There's nothing particularly bad about the current state of browser technology--that is if you are frozen in a time warp, circa 1999. Internet browser design stopped being interesting years ago. That's simply because Microsoft no longer faces any challenge that forces it to innovate. If Microsoft were still trailing behind Netscape, Internet Explorer would be a far better product. That's what competition's all about. If the forward and back arrows constitute the last stage in Internet browser interface design, then we're an awfully sorry lot.
All this paragraph proves to me is that Charles Cooper hasn't even tried other browsers. Before you bemoan the lack of innovation in the browser space, Charles, try out a browser besides Internet Explorer for Windows.
You want better "breadcrumb"-style back navigation? Try SnapBack in Safari. You want better "threaded" navigation? Try tabs in Phoenix, Mozilla, Chimera, Galeon, NetCaptor, CrazyBrowser, Opera, Epiphany, or Konqueror. Sophisticated ad blocking? Try Mozilla or OmniWeb. Popup blocking? Safari, Mozilla, Phoenix, etc. How about smart searches using bookmark keywords? Typeahead find in Mac IE or Mozilla? Link prefetching? QuickSearch in History and Bookmarks? Bookmark groups using tabs? Tab home pages? How about the sophisticated user controls of Opera? What about site navigation controls in Mozilla and Opera?
From Opera's page zoom to Omniweb's bookmark scheduling to Phoenix's popup whitelisting to the Web services support in Mozilla, browser makers are innovating everywhere! The problem is not that we, the browser makers, aren't innovating. The problem is that you apparently aren't using the browsers we produce.
I believe that I am nearing the end of Xenosaga. I just finished the Song of Nephilim level and am about to enter Proto Merkabah. This game is just awesome. If you liked Xenogears, Final Fantasy, or Chrono Cross, you will love this game.
Now I will sit back and wait for Slashdot to write an article: "Dave Hyatt Discusses Xenosaga in Safari." and see if CrazyAppleRumors will write about how much Bill Clinton thinks I hate Xenosaga.
I mean, really, if I blogged about my latest bowel movement, I think it would end up on Slashdot.
Tantek blogs about how Safari messes up his CSS presentation slides. The bug actually is with the following:
<style media="print">...Safari is forgetting to cache the media type it observed on the style attribute. It doesn't have this problem with link elements, just with style elements. Since your print sheet sets all the slides to be visible and hides the footer, that's what causes all the madness.
FWIW, this is issue #5 under "CSS Importing Bugs" on diveintomark's list. It is now fixed.
John Gruber writes about antialiasing in Safari in his blog. The difficulty with antialiasing is that it is ultimately subjective, i.e., people have wildly different opinions regarding what fonts look good antialiased (or not so good).
For example, to me the Geneva example at the end of John's blog entry looks better in Safari than Camino (much better). It's all subjective. None of the antialiased examples look bad to me at least.
That said, what I am investigating is implementing the CSS3 font-smooth property. This will provide author-level control of AA on a site as well as enable users to have control via a user stylesheet, e.g., you could say:
body {
font-smooth: never;
}
Ultimately what's needed is to put fine-grained control of antialiasing into the user's hands, and adding support for this property will give the user that level of control.
You can also specify cutoff points for AA, e.g., say that only 12px or bigger fonts will get AA, e.g.,
pre, tt {
font-smooth: 12px;
}
Camino 0.7 has been released. Check out mozilla.org for details. Lots of new stuff, especially if you're coming from 0.6. It now has a history sidebar (yay!) and an improved download manager. Kudos to Pink, Simon, Brian, and the rest of the gang.
I saw this puzzle linked to here. Go play with it and then you can see how it works.
Basically what it asks you to do always produces a number that is a multiple of 9, which can be proven easily.
z = (10*x + y) - (x + y)
z = (10*x - x) + (y - y)
z = 9*x
So the puzzle functions by just placing the same symbol at each multiple of 9. Still, it's a cute trick, since the puzzle actually changes the symbol when you reload it. :)
Zeldman writes about a couple of Safari issues. The first issue is Safari's limited support for the title attribute. We're going to dump our implementation in the status bar and just use a tooltip-style implementation instead (and yes, we'll pick up support for acronym and abbr at the same time). This was sort of an intermediate hack to just get something out there for title attributes on links only. We'll dump it once we do the full TITLE support in a tooltip.
Second, the question about .ico files. The .ico file format actually contains multiple bitmaps, which can have varying color depths and sizes. The engine rendering an .ico has to make a decision regarding which ico to use, and this can get pretty complex, e.g., do you take the 32x32 in 16-bit color, or the 16x16 in 8-bit color? The former results in a scale, but the latter is a lower color depth. A naive decoder will simply use the first .bmp encountered inside the .ico, even if it's an inferior color depth.
Safari just uses the Cocoa NSImage object for displaying .icos, and I suspect that the decoder may be pretty naive about its selection of the appropriate bitmap. In my opinion, color depth should be highest priority. In other words you should try to find a .bmp with matching color depth for your screen first, and then prioritize 16x16 above other sizes only after the best color depth has been determined).
I will look into this issue in Cocoa and see what we're doing right now.
I've seen a lot of comments in various Mac forums where people have claimed that "Dave Hyatt said he doesn't like tabbed browsing!" or "Dave Hyatt hates tabbed browsing!" I find these posts perplexing, because I never said any such thing, and of course the opposite is true. I love tabbed browsing. I implemented tabbrowser in the Mozilla trunk. I implemented tabbed browsing in Chimera. I implemented the version used in Phoenix. Given how many times I've implemented it, I'm amazed that people would think that I am not a tabbed browsing devotee.
That said, I wanted to express some of my thoughts about the various UI decisions one has to make when designing a tabbed browsing system.
Target Audience
I think the most important question you have to answer before designing a multi-page system is "Who is my target audience?" In the case of Phoenix the target audience is experts and power users. I do not believe that tabs serve any useful purpose for novice users, because novice users don't ever use multiple views of Web data. They just browse from page to page.
The classic novice user Web setup is to have Windows IE maximized with the sidebar open. That kind of user simply doesn't need tabs. Tabs are total overkill for what that person wants to do with his/her Web browser.
That is why I think ideas like this, although extremely pretty, seem to be targeting an audience that IMO doesn't exist. A power user doesn't want thumbnails, since they wouldn't be easily distinguishable anyway once you opened several tabs, the overflow mechanism for such a system would be clumsy (or would use too much space, scrollbar anyone?), and you lose too much horizontal real estate. Sure, it's got a neat initial "whizzy" factor to it, but it's simply not as usable or as scalable as the classic tab strip model.
Bookmark Groups vs. Folder Options
This is something I've implemented three different ways in Phoenix, Mozilla, and Chimera. In both Chimera and Mozilla the bookmark group is a special entity that you have to make by taking a tab snapshot. I now hate this idea. The implementation is to just have a tagged special folder that when clicked loads all the bookmarks in tabs, a sort of one-click clustered loading. This complicates bookmark management and viewing, since you now have this third kind of entity along with regular folders and bookmarks.
I much prefer the system we came up with for Phoenix, which is borrowed somewhat from Opera. In this system, folder submenus pick up an extra "Open in Tabs" menu item, and you can just load any folder's children in tabs. No special new kind of bookmark group, and no special means required for creating bookmark groups. You just work with folders and can now load a single page of a group by drilling into a folder, or load all the pages in a group.
With the Chimera way, you'd end up having a Blogs group, and then you'd also have to bookmark individual blogs for when you didn't want to load the group. You had needless replication that is avoided by just making the operation available on folders instead.
Replace vs. Append?
When doing clustered loading, we took two approaches. One can be seen in Mozilla, and I personally hate it. The other can be seen in Phoenix and is my favorite choice. Mozilla actually appends the tabs loaded by a bookmark group to the end of the tabbed list. This means that if you click first on a News group and load tabs 1-5 and then click on a Blogs group, you'll end up with new tabs 6-10.
In Phoenix, you replace instead, so the News tabs go away and are replaced by tabs 6-10. The argument for append is basically that you end up with potential data loss in that you may lose access to the previous tabs by closing up some of the ones you replaced, e.g., if the second group has fewer tabs than the first. This is of course a solvable problem, though, and doesn't justify changing the default behavior to append.
Position of Tabs inside the Tab Strip
Chimera centers tabs within the tab strip. Everyone else puts them on the left. The only reason Chimera does this is because I couldn't figure out how to use the normal tab widget to make the tabs be left-aligned. Center-alignment for a dynamic tab system is of course awful, since for every tab you open, all of the tabs move.
It's much better to avoid moving all of the tabs around when a single new tab opens, and left-aligning the tabs inside the tab strip makes for a much less jarring experience.
Where do new tabs open?
A highly debated issue with tabs is "Where should new tabs open?" NetCaptor and the old Chimera (in early versions) use the following model. If you click to open a link in a new tab, then the new page will open just to the right of the current tab. Links will continue to open to the right if you keep opening them, so you may have a setup like this:
1 2 3 4
where 2 is the active tab, and you then open three more links from 2 and end up with:
1 2 7 6 5 3 4
The advantage of this approach is that similar pages stay together. The disadvantage is that the opening of new tabs is more jarring, since you do an insertion in many cases rather than an append.
A disadvantage is that you have to read the pages from right to left in order to preserve the original order. Because of this, when you *close* tabs, this model dictates that you move to the left.
You do have the advantage that when you finish with the child links, you conveniently end up back at the original document as you close up tabs.
The second model, and the one I favor (used in Phoenix, Chimera, and Mozilla now) is to always open new tabs on the far right. Usability testing at AOL showed that this was far and away what users expected to happen, and it lends a smoothness to the tab opening process, since you never move any other tabs.
You also get to read links from left to right instead of right to left, e.g., the previous example would result in:
1 2 3 4 5 6 7
In this model, in order to be able to browse the links you open effectively, when tabs are closed you need to move to the right. Note that when you finish with child links, you don't end up back at the previous page in this case, but in the common case, you do. Note that by far the common case is to simply have:
1
and that you'll open a few links, end up with:
1 2 3 4
and still end up back at 1 once you close up. The ability to easily read left to right, and to not shuffle the tabs around on the tab strip when you open new links more than makes up for the edge case where you may not end up back at the parent tab.
Close Boxes
I actually prefer Galeon's behavior here. Phoenix and Mozilla offer close boxes for the tab strip, but this UI frankly stinks, because the user expectation is that clicking on the X will actually close up the entire tab strip. In effect, the X should map to the "Close Other Tabs" command, but instead it maps to "Close Selected Tab." This is utterly confusing, and at least Chimera avoids the problem by not having a close box at all.
The right way IMO to do this is to have a close box for closing up the tab strip itself in the same place Phoenix and Mozilla have it, but to also have close boxes on the tabs themselves (the way Galeon does it). With this model, it's clear what the different close metaphors are, and you don't end up with user (even power user) confusion.
Background vs. Foreground
Despite the inconsistency with opening links in new windows, I strongly support the default in Phoenix, which is to open links in new tabs in the background by default. This option should be overridable with a modifier key (SHIFT in Phoenix) and also the default should be controllable via a pref. Phoenix, Moz and Chimera all have the same pref and modifier key, but only Phoenix defaults to background loading by default.
It's really interesting just how many different choices have been made by tabbed browsing implementers. Pick the browser that implements the system you like best I guess. :)
If you're interested in how to use Konfabulator for OS X, check out Scott Collins' tutorial here. It's currently under construction, and he's soliciting feedback, so go check it out.
I am completely addicted. Hooked. Enthralled even. Sleep is for the weak. Must... finish... game...