He's coming.
This matters. This is important. Why did you say six months?
Why did you say five minutes?
Friday, August 10
Trying out some new AJAXy stuff here on my blog.
Works perfectly in Firefox.
Works perfectly in Opera.
Works perfectly in Safari.
Burns down, falls over, and sinks into the swamp in IE7.
It's not a simple matter of the page being misformatted. IE bleeps, throws up an error telling you the server can't be reached, blanks out what it's shown of the page so far, and locks up.
Now I'll admit that I'm running the latest versions of Firefox, Opera and Safari, and my IE7 is a bit out of date. But there's a damn good reason for that. Firefox, Opera and Safari are quick and painless to update. To update IE7, I first had to spend 15 minutes updating the updater. Now I'm waiting for 287MB of patches to install. And given what Automatic Update has done to me in the past, there's no way in hell I'm going to turn it back on.
If you're using IE, really, get a better browser. Firefox. Opera. Safari. Seamonkey. Netscape 3. Anything. Think of the web designers. Won't someone please think of the web designers?
Update: AHA! Known bug. No patch.
But the workaround works, which is a lot better than forcing every mee.nu user to update their browser.
Still, everyone but Microsoft gets this right. Bleh.
Update: Here's a post about the same freakin' problem... From 2003. Way to go, Team Microsoft.
Posted by: Pixy Misa at
05:55 PM
| Comments (1)
| Add Comment
| Trackbacks (Suck)
Post contains 237 words, total size 2 kb.
Thursday, August 09
Those vegemite sandwiches?
While they didn't come back up, they didn't exactly hang around being sociable either.
Posted by: Pixy Misa at
02:30 PM
| Comments (2)
| Add Comment
| Trackbacks (Suck)
Post contains 19 words, total size 1 kb.
Here's a sample with an ad, the mee.nu logo, and the menus overlaid. It's a little busy at this size; making the main banner section larger helps with that.

You can choose from white or black text for the system menus. Other colours maybe later.

Posted by: Pixy Misa at
01:26 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 48 words, total size 1 kb.
Showing off some of the more advanced text styling features:



Since I don't have time to produce an extensive library of text effects, I've just added a feature to create the text from an image. The Morning Coffee example actually uses the kitten image for its text - and vice versa.
If you use an image for your text, the system can't (yet) automatically defringe shadowed text. Manually setting the background colour to orange did the trick for the Hothouse example.
As usual, click for biggie-size.
Posted by: Pixy Misa at
11:05 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 89 words, total size 1 kb.
IT WORKS!!!
Now admittedly I've spent most of today yesterday on subpixel optimisations, because that's what I do (and because at typical monitor resolutions, subpixel optimisation matters). It's so cool when you nudge this to the left by exactly half a pixel and that little artifact just POP and disappears.
I still have to finish putting together the page that lets users access this, and note that I did spend a minute or two cropping these images rather than letting the system do it automatically. But all the effects are applied by the system with a single function call.
Typical generation time is 300 to 400ms on the test system.
The final two problems were both related to drop shadows: Removing the fringes on shadowed text without affecting anything else, and removing artifacts from the shadows on the rounded corners, which were generated by overlapping shadow sublayers. That one was an example of a half-pixel nudge.
There are a lot of subtleties that aren't immediately apparent. The text has a dropshadow. The shadow isn't just gray; it actually darkens the pixels underneath. It has to precisely follow the contours of the text, but never show through the text, even though the text itself is partly transparent. (Technically this is wrong; the opacity of the shadow should be multiplied by the opacity of the text and the resulting fainter shadow should show through. In practice though, this looks terrible.) The text has to be anti-aliased with the background and with the shadow, and the outer edge of the shadow has to be anti-aliased against the background as well. And because the shadow is composited with the background using itself as a mask, you have to actually use the square root of the desired opacity when drawing the shadow.
Little things like that, but you know when you've got them right:




(Click for biggie size.)
The menu text, ad and logo are overlaid by the browser, so they don't show in these samples.
These don't showcase all the features yet; I'll work up some more examples once I have the user interface up and running.
Posted by: Pixy Misa at
01:24 AM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
Post contains 361 words, total size 3 kb.
I need an α' channel, dammit!
Posted by: Pixy Misa at
12:20 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 11 words, total size 1 kb.
Wednesday, August 08
So if I'm compositing drop shadows, I have to draw the shadows on a dark (but transparent) background, otherwise the antialiasing produces light fringes on the shadows when I composite the shadow layer. But if I use a dark background, when I punch out the text the antialiasing produces a dark fringe on the text when I composite that layer. (This is because the antialiasing antialiases the alpha channel as well as the colours.)
So what I need to do is apply a transparent copy of the text in the text colour over the shadow using an opaque mask. Which I can't do just using the styletext function, because the underlying library only gives you one alpha channel for drawing operators, and I need two.
Darn.
Posted by: Pixy Misa at
06:31 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 128 words, total size 1 kb.
This:

Is the Gigabyte GA-MA69GM-S2H.
It supports up to 16GB of memory (ECC optional), four SATA 3Gb/s drives (with RAID 0, 1 and 10), 2 IDE drives, gigabit ethernet, ten USB 2.0 ports and three Firewire ports; 7.1+2 sound and optical and coax S/PDIF in and out (with optional bracket); VGA, DVI-D, HDMI, component, S-Video, and composite video outputs (though you can only run one digital and one analog output simultaneously); PCIe x16 and x4 slots and two PCI slots. And serial, parallel, floppy, keyboard and mouse, though you need to get optional brackets for the serial and parallel ports.
Apparently it performs well and has good overclocking features too.
What's not to like?
Well, the 690G northbridge provides 24 PCIe lanes, but four of those are used to connect the southbridge, so only 20 are left. The southbridge doesn't integrate either ethernet or Firewire, so if you want a x16 slot and a x4 slot, those have to go on PCI. And clearly you can't have any more PCIe slots either. (The S2H's big brother, the GA-MA69G-S3H, has three PCIe x1 slots in addition to the x16 and x4. Since this is impossible, I'm not sure exactly how they did it.)
Onboard video might be up to playing something like Sims 2, but nothing beyond that. It's about equal to my old 9600XT (4 pixel shaders, 4 ROPs), except that AMD have pulled out the vertex pipelines and left that to the CPU.
Only four SATA ports and no e-SATA. If I add a 2+2 SATA/e-SATA card, that's the PCIe x4 slot gone.
Apart from those minor issues, it's an amazing little board. I want one two.
Posted by: Pixy Misa at
03:39 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 281 words, total size 2 kb.
Okay, the real problem is probably that Firefox is single-threaded, but the immediate problem was Firebug. Ever since I installed it I've been getting these random pauses while using Firefox.
Turn it off and the delays are gone, but so of course is Firebug.
Posted by: Pixy Misa at
12:17 AM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
Post contains 46 words, total size 1 kb.
Tuesday, August 07
Hang on. Transparent shadowed text isn't working properly any more.
Poke poke.
Hey! The compositing code for multi-effect text is missing! Who stole the compositing code?! It's right here in the test program, but it's not in the library, just as if the person who compiled the library hadn't actually... uh.
Never mind.
Note to self: overlay.paste(textlayer,(0,0),mask) works because the opacity in the mask controls how the textlayer is composited with the overlay, including the opacity values of the textlayer. Where the mask opacity is 100%, the textlayer colour and opacity replace those in the underlying overlay, allowing the translucency of the text to punch through the translucency of the shadow and/or outline.*
Note to everyone else: Brain has been kind of fuzzy lately, and the text effect compositing process has exactly one too many steps for my working stack.** Particularly at 2AM. Thank the Babylonians for written language. Programming would be really hard if I couldn't write anything down...
* Note to self regarding note to self: And that's why you only have to draw the text twice, not three times.***
** Specifically, the use of the mask alpha channel to control the compositing of the other two alpha channels. My stack seems to be fine with using alpha channels on colours, just not with this particular trick.
*** For values of two not larger than nine, except where overridden by the user.
Posted by: Pixy Misa at
07:59 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 237 words, total size 2 kb.
54 queries taking 0.2307 seconds, 385 records returned.
Powered by Minx 1.1.6c-pink.









