Archive for April, 2006

Retrieving binary data with XMLHttpRequest

Using XMLHttpRequest to fetch binary data from a HTTP source is “problematic”, as you can find with a simple websearch.

But what exactly means “problematic” in this context?

I gave it a try with Firefox and found out that every byte above 0x7f is translated into 0xfd. In other words: Plain old ASCII is left alone, everything above it results in a fixed value of 0xfd. Guess this has to do with the stream being interpreted as UTF-8 text…

A hex dump of a binary range [00 .. ff], retrieved through XMLHttpRequest:

joe$ od -t x1 -v xhrsweep.bin
0000000    00  01  02  03  04  05  06  07  08  09  0a  0b  0c  0d  0e  0f
0000020    10  11  12  13  14  15  16  17  18  19  1a  1b  1c  1d  1e  1f
0000040    20  21  22  23  24  25  26  27  28  29  2a  2b  2c  2d  2e  2f
0000060    30  31  32  33  34  35  36  37  38  39  3a  3b  3c  3d  3e  3f
0000100    40  41  42  43  44  45  46  47  48  49  4a  4b  4c  4d  4e  4f
0000120    50  51  52  53  54  55  56  57  58  59  5a  5b  5c  5d  5e  5f
0000140    60  61  62  63  64  65  66  67  68  69  6a  6b  6c  6d  6e  6f
0000160    70  71  72  73  74  75  76  77  78  79  7a  7b  7c  7d  7e  7f
0000200    fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd
0000220    fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd
0000240    fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd
0000260    fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd
0000300    fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd
0000320    fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd
0000340    fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd
0000360    fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd  fd
0000400

Popularity: 42%

Post to Twitter Tweet This Post to Delicious Delicious Post to Reddit Reddit This Post Post to StumbleUpon Stumble This Post

Tags: ,
Comments (1)

Photoshop alternative: GimpShop

Way back I used to work with Adobe Photoshop (yes, way back, when version 4.0 was current). Nowadays, the GIMP (The GNU Image Manipulation Program) is a perfect free alternative. It even has slightly more functionality than Photoshop 4.0, so the leap shouldn’t be too big for me.

However, somehow all those Photoshop menus and keyboard shortcuts are stored into my permanent memory and make working with the GIMP more challenging than needed. I just discovered the solution for this: Gimpshop!

This is a repackaged version of the GIMP, built for OS-X. You really should give it a try if you are familiar with Photoshop but want to give the GIMP a decent chance.

Oh yes, and I found an excellent plugin for working with RAW camera images as well: UFRaw Gimpshop.app Plugin – just download the Point and Click installer, which installs the plugin for Gimpshop.

Popularity: 16%

Post to Twitter Tweet This Post to Delicious Delicious Post to Reddit Reddit This Post Post to StumbleUpon Stumble This Post

Tags:
Comments off

Apple: Boot Camp released!

For those who have slept under a stone for the last 48 hours or so: Apple just released a beta version of their Apple Boot Camp software. This comprises an easy installer for Windows XP on Intel based Mac hardware, turning your Mac in a dual bootable Mac/WinXP machine.

I can hardly wait for upcoming intel iBook versions, so I can finally do away with that crappy Windoze box I keep for running just one single accounting program…

You definitely should read Daring Fireball: Windows: The New Classic: “And this points to the rather delicious conclusion that Apple is casting Windows, including Vista, as the new Classic”

Even better on the short term: Parallels releases a beta of their Virtualization Solution for Intel-powered Macs - which promises running any windows, without the dual booting penalty.

Popularity: 12%

Post to Twitter Tweet This Post to Delicious Delicious Post to Reddit Reddit This Post Post to StumbleUpon Stumble This Post

Tags: , , , ,
Comments off

CSS Naked Day is over…

So Annual CSS Naked Day is over.

It has attracted some 750 participants and stirred some good discussions among web designers, geeks and web standards advocates. I like the points made in Monday by Noon: “But it validates”

My web styles are back to regular, but I kept the empty CSS Naked Day stylesheet as an alternate style:

<link rel="stylesheet alternate" type="text/css"
	title="CSS Naked Day" href="css/naked-css-day.css"/>

It has been fun, let’s see how much traction this event gets next year (if any)!

Update: Dustin’s comments Alright, now somebody hand me a towel

Popularity: 18%

Post to Twitter Tweet This Post to Delicious Delicious Post to Reddit Reddit This Post Post to StumbleUpon Stumble This Post

Tags: , , ,
Comments off

April 5th: CSS Naked Day

Tomorrow, April 5th, is acclaimed Annual CSS Naked Day by Webdeveloper Dustin Diaz of Yahoo!

Funny to see all those nicely designed websites start to look like the old days of HTML 1.0 and the Mosaic web browser.

Strange that most of us need to do our utmost best to live up to this challenge, to make our well designed sites look at least reasonable without any style applied. For me, it is good to experience that following web standards pays off, even in this weird challenge.

In my case I already had positioned my navigation and other non-content stuff absolutely. Now I had a good reason to move this below the page content in the HTML source.
Not only makes this the CSS Naked look neat (relatively spoken), but it also benefits the loading time before the actual content is readable, with CSS applied.

I just replaced my CSS stylesheet by an empty one to accommodate the Aussies’ time zone.
Take a look for yourself and experience the clean look of what the web was like, some 15 years ago…

By tomorrow night all will be back to normal (with slightly improved loading time!).

BTW, there’s some leftovers of in-line style, e.g. for the relative size of links in my tag cloud.

For Firefox, the inline styles can be overridden with this simple Javascript function:

<script type="text/javascript">

window.onload = function() {
	var l = document.getElementsByTagName('*');
	for (var i in l) {
		try {
			if (l[i].style.cssText) l[i].style.cssText = "";
		} catch (e) { }
	}
}
</script>

Notes:

  • Untested on MSIE/Windows.
  • This trick does not work for Safari/OS-X.

Update: made resetting style conditional:
if (l[i].style.cssText) l[i].style.cssText = "";

Popularity: 17%

Post to Twitter Tweet This Post to Delicious Delicious Post to Reddit Reddit This Post Post to StumbleUpon Stumble This Post

Tags: , , , ,
Comments (1)

Born vs Downloaded

Test test test

Popularity: 15%

Post to Twitter Tweet This Post to Delicious Delicious Post to Reddit Reddit This Post Post to StumbleUpon Stumble This Post

Comments off

« Previous entries Next Page » Next Page »

Twitter links powered by Tweet This v1.6.1, a WordPress plugin for Twitter.