IBM patents web transcoding proxies

Web: I link-blogged this, but it’s generated some email already, so it deserves a proper posting.

One thing you quickly learn about IBM where software patents are concerned, is that if IBM Research is making noise about a new software technique, they’ve probably patented it already. A few years ago, IBM was keen on HTTP transcoding — rewriting web content in a proxy, to be more suitable for display and access from less-capable devices, like PDAs and mobile phones.

So I probably should not have been surprised today when I came across USPTO patent 6,886,013, which is an IBM patent on a ‘HTTP caching proxy to filter and control display of data in a web browser’. It was applied for on Sep 11 1997, and finally granted on Apr 26 of this year.

The first claim covers:

  1. A method of controlling presentation on a client of a Web document formatted according to a markup language and supported on a server, the client including a browser and connectable to the server via a computer network, the method comprising the steps of:

    as the Web document is received on the client, parsing the Web document to identify formatting information;

    altering the formatting information to modify at least one display characteristic of the Web document; and

    passing the Web document to the browser for display.

Notice that there’s actually no mention of a HTTP proxy there — in other words, an in-browser rewriting element, such as Greasemonkey or Trixie may be covered by that claim. However, the claim does indicate that the document is passed from the ‘client’ to the ‘browser’, so perhaps having the ‘client’ inside the ‘browser’ evades that.

It appears this really wasn’t original research even when the patent was applied for — there’s probable prior art, even if the patent itself doesn’t cite it. For example, WWW4 in 1995 included Application-Specific Proxy Servers as HTTP Stream Transducers, which discusses ‘transduction’ of the HTTP traffic and gives an example of ‘A “rewriting” OreO (transducer element) that encapsulates each anchor inside the Netscape Blink extension, making anchors easier to spot on monochrome displays’. On top of that, Craig Hughes notes that his ’senior project at Stanford in 1992 was an implementation of a content-modifying HTTP proxy. It re-worked HTML in http streams to add some markup to enable full navigability through touch screen or voice control, for screen-only kiosks.’

Add this to the ever-growing list of over-broad software patents.

Tags: , , , , , , , , ,

Comments

One Really Stupid Feature

Usability: So, I’ve just found out about a useless feature of my microwave oven the hard way. The microwave’s manual notes:

Demo Mode

The Demo Mode is ideal for learning how to use the microwave oven. When set, functions can be entered without actually turning on the magnetron. The microwave oven light will come on, the fan will run and, if on, the turntable will rotate.

To Turn On/Off: The microwave oven and Timer must be off. Touch and hold TIMER SET.OFF for 5 seconds until 2 tones sound and ‘d’ appears on the display. Repeat to turn off and remove ‘d’ from the display.

Great! How useful! What a friendly UI! A tiny ‘d’ that indicates that, although your microwave looks like it’s cooking away, it’s actually doing nothing.

If you ever want to prank a friend with a Whirlpool oven, I’d recommend this one ;)

Tags: , , , , , , , , , ,

Comments

Shortest URL evah

Comments (1)

GMail Usability

Web: Check out GMail’s ‘thread history’ built into the message display, dubbed ‘collapsable history’ and ‘cards’. Very, very nice email usability!

More at Kevin Fox’ weblog, fury.com.

Tags: , , , , , , , , , ,

Comments

Exploding Monitors pt. II

Hardware: This weblog is jinxed!!

That’s the only explanation I can come up with. The day before yesterday, I blogged about exploding monitors and various halt-and-catch-fire software instructions. Last night, my monitor made a popping noise, emitted a faint burning-plastic smell, and shrank the display into a thin stripe down the middle of the screen.

Great. It’s dead as a doornail — I’m working from Catherine’s iBook for now. Quite a step down from the lovely 21-inch CRT. Argh :(

BTW, needless to say, I wasn’t running any scary apps — not even Freedom: First Resistance — the only possible display-hosing culprits were Firebird, KDE, ExMH or gvim ;)

Tags: , , , , , , , , , ,

Comments

Sitescooper and RSS

I did this a while ago, but I’ve been very busy in work and haven’t had time to mention it. But it’s worth doing some preliminary pointing at Sitescooper RSS.

Basically, I’ve added RSS output to Sitescooper, the venerable HTML-scraping script that can disassemble a news/blog/reading-material website efficiently, use a cache, log in, cope with redirects, figure out when stuff is new and when it’s old, perform diffs, confuse you with copious regular expressions, etc. etc.

Sitescooper was originally oriented entirely towards display on a Palm; then new PDAs came out that could do good text or HTML display, so they’re now supported too; and now, I’m no longer commuting and using an RSS aggregator instead for that kind of daily reading, so RSS is the natural next step.

Basically, what this means is that those annoying blogs that don’t include the full text in the item block, or those websites you like that don’t have an RSS feed — make a site file, and scrape them into your aggregator yourself!

This code is present in the current Sitescooper CVS version; the only doco is really what’s in that RSS directory on sitescooper.org.

If your interest is piqued, take a look…

Tags: , , , , , , , , ,

Comments

Unicode

Oops! Looks like 2-byte Unicode — UCS-2, aka Unicode 1.0 – will be running into trouble shortly; according to this and this on debian-i18n from back in 2000, several Asian charsets will shortly require 4-byte Unicode characters, which means using either UTF-8 or UCS-4. In particular, correct display of proper nouns in Japanese apparently requires use of the 4-byte planes.

Unicode 1.0 is used widely, in MS products and Java. Expect ‘flag days’ galore when this has to change.

Unicode 2.0 introduced a concept called a ’surrogate pair’ to fix this; it’s basically introducing multibyte characters into the supposedly fixed-width character-based UCS-2; so all those ‘length == nchars’ assumptions will break — again. Argh.

Now I know why the Linux vendors are going for UTF-8 instead…

Tags: , , , , , , , , ,

Comments

Using VNC For Your Main Desktop

I’ve just fixed my desktop machine (had to buy a new CPU, unfortunately, after the old one died during shipping).

I then upgraded to Red Hat 9 (woo, very nice), switched to KDE for my desktop, and took a look at software suspend (because the machine is too noisy to leave on permanently in the corner of the living room).

However, the latter won’t work with my video card; instead, the machine reboots continually when resuming from suspend. Problem.

A bit of thinking about the problem came up with a nifty solution… I’d heard of folks using a VNC server for their main desktop, in order to connect to it from any machine they found themselves near, and not be ‘tethered’ to one particular desktop machine. The same system also means I can run my desktop with a virtual display, and just ‘connect’ to this from the real one. Then, when I want to suspend, I can just kill off the X server, suspend, and start up a new one after resume.

If you’re curious about how to do this, read on

From: Justin Mason
Subject: setting up a VNC desktop

Software suspend won’t work with my video card; instead, the machine reboots continually when resuming from suspend. Problem.

A bit of thinking about the problem came up with a nifty solution… I’d heard of folks using a VNC server for their main desktop, in order to connect to it from any machine they found themselves near, and not be ‘tethered’ to one particular desktop machine. The same system also means I can run my desktop with a virtual display, and just ‘connect’ to this from the real one. Then, when I want to suspend, I can just kill off the ‘hardware’ X server, suspend, and start up a new one after resume.

First, install xf4vnc. This gives you a VNC server that can use the ‘Render’ extension, and therefore display anti-aliased text efficiently. Installation of this is a bit of a manual job, unfortunately, since the author hasn’t actually packaged it in any way. Not too hard though; just 3 copy commands; I don’t think you actually need any files apart from the two in the xf4vnc-linux-i386 group.

Create a file called ~/.xserverrc containing:

:: /usr/local/bin/Xvnc-xf4vnc -depth 16 -geometry 1152×864 -deferupdate 10 :0

Best to make the depth and geometry match your current display.

Next, create a script called ~/bin/x containing:

:: #!/bin/sh
:: X :1 &
:: sleep 4
:: vncviewer -compresslevel 0 -quality 9 -fullscreen -display :1 localhost:0

(ie. start an X display on :1, then display vncviewer to that display.) Don’t forget to make it executable with chmod.

Now, close your current X desktop, return to the console, and run startx to start a new one. This won’t display; instead, it’ll run GNOME/KDE/whatever using a virtual framebuffer. CTRL-Z and bg that process.

Run the x script. It’ll connect to your virtual desktop. That’s it!

You can now hit CTRL-ALT-Backspace to your heart’s content. When your display is killed, the applications and desktop remain untouched. When you rerun the x script, it’ll reconnect and nothing will have changed apart from the mouse pointer position. In fact, I just restarted my X server halfway through that sentence ;)

Have fun!

Tags: , , , , , , , , ,

Comments