About this site

Danny's Weblog

2010 Feb 10 [ Wed ]

Added css to handle IE6 browser users

For several months, since I went to liquid css layout, the rendering of my site in IE6 has been broken: the right-hand side of the main text column was cut off and there was some wasted space.

I put off fixing it because I was hoping to make the same css work for all browsers. But as IE6 is so weird, and these days not a very large proportion of users use it any more, I never got around to that.

Slashot discussion of ending support for IE6: ask.slashdot.org [http://ask.slashdot.org/story/10/02/10/0056257/Is-Internet-Explorer-67-Support-Required-Now]

I finally decided that I needed to make a kludge, so today I added some html/css to make IE6 at least display all the text. It probably does not resize very well. My HTML detects browsers that are IE7 or above and gives them the same css as Firefox etc – I hope.

My test page: www.panix.com [http://www.panix.com/~dannyw/test01/iedetect01.html]

Handy website that displays any url rendered by different IE versions: ipinfo.info [http://ipinfo.info/netrenderer/index.php]

Unfortunately, as that website returns a static image, you can't check how each browser version handles resizing.

2010 Feb 09 [ Tue ]

Opera Mobile 10.00 beta works with downloadable fonts like Limon

I have been using Opera Mini, a free Java app for my Nokia E63 and other Nokia System 60 phones, for several weeks and like it a lot. In particular, it provides page-up and page-down keys; also, it stores webpages so you don't have to wait for a reload every time you want to go back. Those features may not sound like much but they aren't provided by the Webkit browser that the phone is delivered with. Also, it's a lot faster than Webkit.

I just heard about Opera Mobile, however, so I also downloaded that: version 10.00 beta; again, it should work for any System 60 phone. I had no problems installing it. I find it a little slower and clumsier than Opera Mini, but it has the excellent feature of working with downloadable fonts, which I now provide for this site, both for the Cambodian Limon fonts and for my own "PKD" phonetic font. For example: www.panix.com [http://www.panix.com/~dannyw/weblog/nolist/test04.html]

Unfortunately the first website I checked, everyday.com.kh, only provides .eot fonts (for Internet Explorer only), so it does not work with my phone. Hopefully Cambodian websites will start supporting this feature soon.

The downloadable fonts feature seems to have been added to various versions of Opera starting with version 10.0. I had been using the desktop version 9.6.2 for Linux, which did not have it; I just downloaded 10.00 for Linux, and it *did* work.

...Weird. I just noticed a bug in both Opera Mobile and the desktop version: the first time you load a page, the downloadable fonts are used; the next time you load the page, it shows a default font! I hope that gets fixed soon.

2010-02-15: I just downloaded Opera Mobile 10 Beta 3, choosing the 'Asian Languages' version, but it still has the same bug described above (which I think was Beta 2). Phooey.

2010 Feb 06 [ Sat ]

Updating print-mode css to provide "font-face" font downloads

In 2009 December I added font-face commands to the css file for this site which provided automatic font downloads so that I can use my phonetic font PKD and the Limon fonts for Cambodian without having to manually install the fonts on every client.

However, I put off making this work in print mode. So when I printed out pages, sections of text marked with those fonts printed out in a default font – ie, all wrong.

Today I decided that the display-mode font-face commands were probably as debugged as they were going to get, so I copied them into my print.css file and fixed a few details to see if I could make it work.

However, it still did not work properly in Firefox 3.5.4. Here is my test page: www.panix.com [http://www.panix.com/~dannyw/weblog/nolist/test05.html]

It should display Cambodian in the Limon S1 font. If it can't download that, your browser will next look for a local copy of the Limon R1 font, which is a muol font, not a chriang font, so if you know Cambodian fonts you will see that the font-download feature has failed. Most people of course will have neither font installed and just see a mess. The following page includes some English text in the "Little Trouble Girl" font, which should make it easier for most people to see if it works: www.panix.com [http://www.panix.com/~dannyw/weblog/nolist/test04.html]

It turns out the font-face problem in print mode is a known Firefox issue: support.mozilla.com [http://support.mozilla.com/en-US/forum/1/497167]

Presumably this will be fixed in Firefox eventually. I will be testing this feature in a few more browsers so I may have to hurriedly change a few things over the next couple of weeks.

2010-02-07: Checked in IE8: seems OK in screen and print modes.

2010-02-08: Checked in IE7: At first I thought it was also OK in both modes, but then I noticed that although the Limon S1, SX and Little Trouble Girl fonts were OK, my PKD font was not. Now I wonder whether the same problem exists in IE8 and I hadn't noticed. I guess I need to recheck IE8.

One other strange thing: the slight font rendering issues I had observed before with Limon (eg with "Hun Sen") were much more apparent in screen mode than print mode. Weird.

2010-02-09: Checked in IE6: seems OK in screen and print modes, except for the messed-up layout issues which have been a problem since I went away from table layout. Forgot to check the PKD issue.

2010 Jan 26 [ Tue ]

More on Thai subtitles

My previous article on this topic: www.panix.com [http://www.panix.com/~dannyw/weblog/Asia/Thailand/thai-subtitles01.html]

1. When I finally got set up to compare the thai audio and subtitles, it turned out that the text of the audio does not match the text of the subtitles at all! For instance, in Jessie's Song, the subtitles use "chan" for "I" and "ter" for "she", but in the audio she says "rao" for "I" and "khao" for "she"!

2. It took me a long time to get to that point, because of various technical issues.

3. In particular, I wanted a nice gui way to extract a section of the video, including a chosen audio and subtitle stream.

I had already ripped the DVD to hard disk, but left it in DVD format so that all the streams are available. VLC can display this stuff quite well, including the DVD menus, so long as you know the trick for opening a DVD on hard disk: you click "Media - Open disc" and then select the folder which contains the AUDIO_TS and VIDEO_TS folders.

The other trick you need to know is how to set up for a conversion. You do this by 'Media - Convert/save', selecting the Disc tab, selecting the same folder as before, and selecting the title and chapter number you want (in my case at least title 1; you can hopefully get the chapter number from the DVD menu). At this point you can also select the audio and subtitle streams you want.

However it turns out that Ubuntu ships VLC without any output codec libraries – at any rate, I was never able to make anything work. With various output settings, sometimes VLC would crash completely, or sometimes it would just sit there bafflingly doing nothing until I remembered to check the error log (click 'Tools - Messages') complaining about "no suitable sout access module".

[2010-02-19: This issue seems to be related to a VLC problem which happens if you install the ubuntu-restricted-extra package (as I have), which installs libavcodec-unstripped-51 and uninstalls libavcodec51, which vlc is unfortunately still wanting to find. Reinstalling libavcodec51 causes other problems. See: https://bugs.launchpad.net/ubuntu/+source/vlc/+bug/304887 among other places.]

4. My current plan is to grab the sections of video I want using a general-purpose utility which doesn't have a cool gui (probably ffmpeg), and then hand-edit the subtitle streams to match the excerpt timing, and then merge them back together, perhaps with Avidemux.

5. Of course, this will not get my study of Thai much further if I can't transcribe the audio. At the moment I'm getting common words like "nai" and "laew" and "Buzz", but unfortunately less common words like "comfort" seem to have been translated quite differently in the two versions. Heigh ho.

If I *can*, then I can check the pitch of the tones: I am particularly interested in doing so for Jessie's Song, as the singer is certainly following the pitch of the melody to a very great extent.

6. Ideally it might actually be very valuable to compare two independent, seemingly competent translations – I just probably wouldn't have started this if I'd known!

2010 Jan 17 [ Sun ]

Some more thoughts on my Nokia E63

1. I had been noticing that the flashlight feature sometimes works and sometimes doesn't. I figured out the answer: the E63 refuses to turn on the LED if the Camera application is running, even when it is not onscreen, and whether set for still or video mode.

2. Clearly, the Camera app grabs the LED device somehow, and refuses to let anything else control it. This is not unreasonable, but it seems a pity that it is simply blocked without any warning. Anyway, even if you know what the problem is, when you need a flashlight, you need it right away. The only saving grace is that the home screen is about as bright as the flashlight anyway.

3. On the other hand, when you leave apps running, they don't always keep actually working. For instance, if you start a voice recording and then go back to the home screen, the voice recording pauses immediately with no warning.

4. This makes it impossible to disable the keyboard while recording, because you can only do that from the home screen.

5. Worse, the key combination which disables the keyboard does not always work in the homescreen. If some icons are selected when you press the left smart key, it has been set to do some other operation. So you need to carefully examine the state of the home screen before you start to disable the keyboard. So even if you could leave the phone recording, you couldn't put the phone in your pocket or bag, without risking a lot of unwanted keypresses. I really wish the E63 came with a rigid keyboard and screen cover.

6. To make locking the keyboard more reliable, I tried to at least remove the app shortcut from the left accelerator key, but I could find no way to do so, although you can choose which app you *do* want.

7. My phone service provider seems to have poor coverage around my home. I don't get a problem in the middle of town, but out here I often can't even get email via 3g, much less reliable voice service. Fortunately I have wifi and another cellphone, so about the only problem is that Skype doesn't actually work with wifi.

8. I am still disappointed with the Contacts app. It is absurdly cumbersome to add data to several fields at once: for instance, to add a business address and phone number to a contact. The whole app should be torn up and thrown away.

Extracting Thai subtitles from a DVD

A few years ago I succeeded in converting the Thai subtitles, using OCR software in Windows, from a DVD of Toy Story 2 into a text file, along with timing information, ie in a subtitle format. Recently I was glooming for days about being unable to use this in Ubuntu, apparently because of some character-set issue: when I tried to edit the file in Ubuntu's Subtitle Editor, the Thai did not look like Thai, but like a mess of weird European characters.

I had been putting off figuring out this stuff for a long time, because I was afraid I would need to make all this stuff work in Windows again. Also, I can do a lot of things in Thai quite easily using Unicode Thai. Also, Thai stuff is much more standardized than Khmer, and I felt like any work I did would be unrewarding. For instance, I was surprised to find that this Thai-language site is already using Unicode ("charset=utf-8"): www.sanook.com [http://www.sanook.com/]

Incidentally, sanook.com oddly does not have its name in big letters, at least not when I look at the site in Firefox. Its banner does say "Happy year of the tiger 2553". It does say "sanuk" a couple of times in the Thai, but no more than any site might do. Strange. Perhaps most web-using Thais already get the site name from the URL. The label of the webpage is a list of services like "games, music, email..." with "sanook.com" (in English) only at the end.

Here are my notes. They're basically in chronological order, although I can't remember the exact sequence I tried. I did succeed eventually, both in using the old file from Windows, and in figuring out how to do the same kind of extraction in Ubuntu.

I now use Ubuntu 8.10, and the software I used is available through Synaptic except where noted.

1. I was conscious of the fact that I probably had *not* ripped to Unicode, so I looked up *non* Unicode systems for Thai. It turns out that "TIS-620" is the same as "Windows-874" and (although I initially thought it wasn't) the rip *was* in Windows-874.

2. I had put off installing a Thai entry method for a long time, because the stupid Keyboard Preferences utility only allows four different keyboard setups (which is why the add button is grayed out if you already have four). I decided to delete German, as I don't use it much and it can largely be handled with USA-International. I was then able to install the Thai TIS-820-2538 entry method. (There is a Thai "Pattachote" option but it appears to be uncommon.) I downloaded a couple of PDFs showing the byte encoding and the keyboard layouts.

The entry method is of course not critical for *displaying* the files but obviously I need some sort of entry system in order to fix up any blemishes in the subtitles. (Previously I have been just clicking on a character table in gedit when I needed any Thai text.)

It is unclear to me how TIS-820-2538 works with Unicode.

3. I cannot remember how I installed the TIS-620 encoding; maybe it came with the TIS-820-2538 keyboard, or maybe it's provided by default.

4. At any rate, I was able to pick TIS-620 as an option in Gnome Terminal (Terminal - Set character encoding). However, this did not work properly for some reason: only a fraction of the characters were displayed as Thai. Likewise, I was able to add TIS-620 to the options in Subtitle Editor (Options - Preferences - Encodings) but it made no difference (but see below).

5. Likewise, when I tried displaying in hex using "od -x", the byte sequences were screwed up. Later I realized that for some reason od was displaying each pair of bytes in reverse order. I couldn't find an option to display them properly.

However, even with this reversal problem, using od and comparing the results to the TIS-620 encoding table was probably central to figuring things out.

It was also helpful to use vi -b.

6. It occurred to me to try and figure out how to make gedit work. The only option I knew of in gedit was to change the font, but I did not have a font for TIS-620.

Luckily I found this page (in Thai): forum.ubuntuclub.com [http://forum.ubuntuclub.com/forum?topic=10843.0] which said there was an encoding option which you could enable via Gnome Configuration Editor, and when I checked my gedit, that option was already enabled for some reason.

The way it works is via something I never noticed before. When you open or save a file, there is a dropdown menu for choosing the encoding.

So I was able to reopen the file in gedit with TIS-620 encoding, and save it in utf-8. As expected, the size of the file almost doubled. (Not every TIS-620 character has the high bit set and needs two bytes; a lot of the file is standard ASCII used for the timings.)

I'm unclear about what actually is going on during this conversion process, just as I was not sure how the TIS-820-2538 keyboard config can work with TIS-620 and Unicode. It is not obvious to me that there is a one-to-one correspondence from one byte to one pair of bytes; there certainly wouldn't be for Khmer, going from a Limon-coded file to a Unicode Khmer file. And even if there were, how is that implemented? I must admit I had assumed that gedit would need to be set to use a TIS-620-format font as its working font, but actually it worked fine for TIS-620-encoded text with a system font selected. So gedit must have not just encoded the byte value of each TIS-620 character in utf-8, but done a translation to the equivalent Unicode character value first.

7. Even after I had done that, Subtitle Editor didn't seem to open the file properly, although it displayed *different-looking* garbage. However, it didn't take long to figure it out: although Subtitle Editor has an "automatic" encoding-detect option, this was not doing its job, and you need to set Options - Preferences and set utf-8 as the top, ie default option. It worked. I was suddenly all happy.

It occurs to me that if I had set Subtitle Editor to open the original version of the file in TIS-620 encoding that should have worked too; however I am assuming I need to end up with a Unicode utf-8 file to get the subtitles to display in the players properly.

8. Although the subtitles were then obviously working in Subtitle Editor, there were various minor issues from the OCR. For instance, the long vowel "sra err" was encoded as two short "sra e" vowels next to each other. Occasional unwanted spaces also cause problems.

Presumably there are also a lot of OCR errors that are not obvious to my meager talents.

9. More ominously, I could not get Mplayer or VLC to display the resulting .srt file. VLC did not display anything, and Mplayer displayed each subtitle as a series of a-graves and upside-down question marks. I then realized you can set Mplayer to select unicode or TIS-620 both under Preferences - Subtitles and Preferences - Fonts... but it still didn't work, either with the original TIS-620 file or the Unicode conversion, although it changed the subtitle display to a line.

10. Hmm... funnily enough I can get Totem Movie Player to play the subtitles, although they seem to have to be the same filename as the video (so I don't know how to handle a DVD which consists of several files); also the video seems very stuttery when it has to render the subtitles. Still, it does work: Edit - Preferences - General - Encoding. I think I just had to set it to utf-8.

11. I then found a guide which says you can use Avidemux to do OCR on subtitles: www.my-guides.net [http://www.my-guides.net/en/content/view/167/26]

I was happy to see this as I had recently installed Avidemux and done some basic editing and format conversion with it.

I checked my old notes and found that I had done the OCR for Thai subtitles using SubRip – in Windows 2000 of course. I had previously used DVDSubedit to do OCR on the English-language subtitle stream, but apparently you can't train that to work with Thai.

12. It took around 3-4 hours of plugging away at training Avidemux to recognize the Thai glyphs. At the start, I was excited to see that it offered a choice of en, th and zh languages. However, after laboriously going through all that I was disappointed to find that the result was distinctly worse than I had gotten with SubRip previously. Avidemux, despite that prompt, didn't seem to have any real knowledge of Thai orthography; if it happened to think that a diacritic above or below the main character was a separate glyph (seemingly randomly), it actually rendered it *on its own line* in the output text, leaving it divorced from the character it belonged with. (Later: dammit, that prompt was probably generated because the subtitle streams on the DVD were labelled en, th and zh! Avidemux has no special handling for Thai at all.)

Because Avidemux, or SubRip, has to handle each *combination* of glyphs as a separate character, you have to enter hundreds of conversions, but this task is not endless; the number of combinations found in the file is much less than the maximum. For instance, there were several characters that never appeared at all.

I compared the two output texts by loading one as the translation of the other. I was disturbed to see that after a couple of minutes they got out of step for some reason.

I was struck by how inflexible, and similar, the Avidemux interface was to what I remembered of SubRip. Once you've embarked on training the glyphs, there is no obvious way to save what you are doing, much less to examine and correct it. A couple of times I carelessly clicked OK on an incorrect glyph conversion, and I have no idea how many problems that created. Next time, I need to experiment more with a much shorter file, and see what actually happens when you click "close" and it says "are you sure?". Am I ever?

13. I was happy to start developing a little familiarity with the Thai keyboard layout as I repeatedly added glyph combinations to the training, although it will probably dissipate rapidly.

14. I checked the Wine site and SubRip should work with Wine, apparently. I downloaded it from www.videohelp.com [http://www.videohelp.com/tools/Subrip]

Apparently the programmer hasn't updated SubRip for a long time. This version dates from late 2006 and is probably the very same one I used before. I unzipped it to a folder in Downloads, and then I was able to run the .exe file immediately in Wine (ie it's a real executable not an installer). It opened the old glyph file that I had created under Windows, so it was able to start chugging away on the .vob files immediately (it was clever enough to know that all the .vob files except .0 were part of the same video) without training.

It displayed the same junk European accented characters as I had seen before; I wasn't too worried. It halted for some reason on a couple of letters but I was able to pick the Thai keyboard mode in Linux and enter the right thing. However, later it came to a large phrase where it couldn't continue and for some reason did not accept Thai input: it just showed squares in the entry box. I gave up and inputted blind what I hope was a bunch of kor kais. Fortunately it then appeared to complete without needing further attention. I'm not sure how long it took; it seemed to do convert one or two lines per second.

SubRip seems not to immediately save the file, so I saved it manually. It said

Subtitle contains non-standard characters.
Save as UniCode instead of ANSI?

and I clicked OK. However, I could not open the output file in Subtitle Editor at all, which is not what happened with the old version of the file.

I then tried clicking "no" to unicode. This brought up a window which allowed a bunch of different encodings. I found "874:ANSI/OEM - Thai (same" (I couldn't see the end of that description). That looked like the "Windows-874" I found the previous day. I selected that, and after a few seconds the sample text in the window reformatted and looked like good Thai, so I saved it and opened this in Subtitle Editor: this *did* look like the original version.

So I presume I can do the same conversion trick in gedit as I did for the original file.

When I exited SubRip it prompted me to save the .sum file. I was afraid of overwriting the original so I renamed the original on disk, but SubRip actually then gave me a save as dialog.

15. I converted in gedit from TIS-620 to utf8 and it opened immediately and looked fine in Subtitle Editor.

16. The following page suggests that SubRip outputs in utf-16, not utf-8. Aha. forum.handbrake.fr [http://forum.handbrake.fr/viewtopic.php?f=11&t=14239]

It turns out the command-line utility "iconv" can be used for such conversions. It was already installed in my Ubuntu 8.10. Do "iconv – list" to show possible source and dest formats.

I added utf-16 to the formats offered in gedit (you can get to the menu for adding formats via File - Open - Character coding - Add or remove) and gedit then opened the "unicode" file produced by SubRip, but oddly enough *did not display Thai glyphs* – instead it displayed the same junky Western accented characters as the Windows-874 version of the file! I'm not sure what happened here. I think it results from the fact that I did the original training of SubRip by entering characters in Windows-874, *not* in Unicode. In other words, SubRip isn't like gedit; it isn't doing a real *conversion* when you save as Unicode: it's just saving byte values.

17. I just tried loading up the English and Thai versions of the subtitles. At first I thought the English version was missing some subtitles; then I realized that the Thai subtitles needed to translate some on-screen text in English, like the movie's title itself; also "Game over" on the Buzz Lightyear video game, which was translated as "jup geym". Hmm. There doesn't seem to be an easy way to fix that inside Subtitle Editor. Fortunately it shouldn't be real hard to do some fixups in an ordinary text editor. But it's kind of a pain that you have to do that for pretty much the whole file before you can start comparing the versions. Shouldn't Subtitle Editor match the files by the timings, not just by the line numbers??

18. Clearly the Thai text needs some work. However, it seems usable. Eventually, my goal is to compare the English and Thai texts to get good samples of colloquial Thai. There is also a Thai soundtrack, so tones can be examined too.

19. Another process I'd like to go through at some point is adding subtitles in Thai. I have already added Khmer subtitles using the Limon glyph coding, so it shouldn't be too tough.

2010 Jan 03 [ Sun ]

Thoughts on changing cellphones from Motorola V360 to Nokia E63

1. I have had the V360 for several years and been generally happy with it, but I wanted various new features like WiFi, and the E63 was being sold off cheap, presumably because all the new phones are touch-sensitive. I think that the touch user interface has not really been figured out yet, especially for text entry, and intend to get one only in a couple of years.

2. Link to V360 info: www.gsmarena.com [http://www.gsmarena.com/motorola_v360-1058.php]

Link to E63 info: www.gsmarena.com [http://www.gsmarena.com/nokia_e63-2599.php]

The E63 is a Nokia S60 (System 60) device with a 320x240 screen and a qwerty keyboard, with 3G, Wifi and Bluetooth. It has many features, with only a few major ones missing: HSDPA, and GPS; also, the camera/video system is mediocre.

3. I am generally quite pleased with the E63 but was surprised to find so many weaknesses, especially as I had chosen it as the culmination of Nokia's experience.

4. The package did not include a software CD or a micro-USB cable. This caused extra expense and irritation. (It also did not include a flash card, but I have several of those already.)

KMobile Tools and Wammu did not work. I was able to download Nokia PC Suite without real difficulty, but I did not see any mention of that in the documentation, and I can imagine a lot of users not knowing about it.

The USB cable was quite expensive. I know it's the new Chinese standard, but I didn't have one yet. I haven't tried using Bluetooth with PC Suite; I may try it later, when I am familiar enough with the software to debug any Bluetooth problems.

5. There are huge holes in PC Suite. Leaving aside the fact that it only runs under Windows, it cannot even look at stored notes, and it does not *sync* with the phone, it just provides an interface to the data while the phone is connected. Actually, it does sync contacts with Outlook, but that in't a lot of help if you don't use Outlook.

I would much prefer the way the Palm Desktop works. It allows you to update information separately on the PC or the portable device, and has some way of handling conflicts.

While PC Suite was installing, it demanded that the phone be connected. Then at several points the installation seems to stall, but if you look at the phone you can see it's actually waiting for permission to continue to be entered at the phone.

6. The E63 does not charge from USB, which can be a significant problem when you're entering a lot of data in PC Suite.

Also, it uses a new power connector, not the same one used for umpteen Nokias. This is rather a pity. Perhaps this power connector is also the new Chinese standard.

7. The full qwerty keyboard is not as nice in practice as I had hoped. Although it is quite usable for handling a console, eg running the vi editor in ssh, general editing like sending an sms is still rather clumsy, simply because all the keys are so tiny (and I have girly hands). You can't use the side of your thumb as you can on a normal-sized non-qwerty keyboard, and key away relying on touch to hit the desired keys; you have to contort your thumb to use the tip, which causes rapid muscle strain, and forces you to look closely at the keyboard and display to check what you hit. Maybe I will get used to it.

Sometimes it is a little irritating that the keyboard defaults to letter mode instead of numbers.

8. The putty ssh client installed easily and worked first time. As the docs say, you need to lower your security settings first to let the install work; after the install you can set them back to default.

I downloaded the menu pdf which was OK and answered my only real setup question, the meaning of the keepalive value – it's seconds. I think I set it to 30.

The only mild problem is that it does not include a key generator. The putty docs mention this, but did not make it clear that all you need to download is the keygen.exe file, which will run in Linux under Wine (at least in my installation of Wine, which is not tweaked much) – ie you don't need to install the entire putty package in Windows on your PC. I suppose if you have never run putty on a PC before, it may be best to check out the basic idea on a PC first before you try to make it work on a handheld.

There is a dedicated "control" key just like a regular keyboard. You can enter an Escape key, or several other wacky characters, by pressing the right smart key labelled "Send", which brings up a matrix of choices. Subsequently, you can access the last chosen wacky character by just pressing the green dial key.

9. Shortly after I signed up on the phone, it stopped working with the cell network, with the message "SIM card registration failed". When I Googled this I found a lot of doomy messages about how the network probably thought my phone was stolen. I took it back to the store, where the nice man took out the battery and sim card, then put them back and restarted. When he did so he responded "yes" to a prompt saying something like "Allow SIM card to send message?". Before the problem showed up, I had said "no" several times to this prompt before it stopped appearing; it then went away for several hours before producing the final message. I speculated to the nice man that something in the SIM card had wanted to communicate something to the network, and he agreed that was probably why the network rejected it.

Hmm. If this is really necessary, it would be nice if you were told about it explicitly, instead of getting a sinister-sounding warning that would cause anybody with sense *not* to allow the data to be sent. I wonder if the network carrier has any explanation of this process on its website? Also, exactly *what* information is being sent, and why isn't it sent immediately when the phone is first registered on the network?

10. MMS setup always seems to be an afterthought, even though you would think the operators would love it. The Nokia info suggested sending an MMS message to oneself; I did so and it appeared to be sent, but was never received. However, when I later sent an MMS to my other phone, it worked. Incidentally, something on the network changed the pic in the MMS from 640x480 to 428x321, even though the V360 can normally handle 640x480. I have noticed this before and I don't know whether the carrier for the sender or receiver is actually responsible for this. Perhaps it ensures that the carrier tests every file to make sure it *is* an image file, and automatically garbles any extra data which would allow encrypted messages.

However, when I sent the image in the *other* direction – from V360 to Motorola – it was received as the original size. Hmm.

11. I couldn't find a repeating option on a To-Do item, but this is allowed on a Meeting item.

12. I was unimpressed with the contact manager for many reasons. It is particularly alarming that gsmarena.com has repeatedly called this software faultless: "It is simply great".

-1. The layout of the contact list and each individual contact is highly wasteful of space. It only lists the first and last name, or the company name *if* there are no personal names, and when you open up an individual contact you can only see two or three fields at a time.

-2. My Motorola had a "nickname" field in addition to the name field. Because this was normally listed along with the name, this was actually very useful as a second form of identification, so you could add "20070108" or "bald/glasses" or "Internal" to distinguish multiple Daves.

There is no similar catchall field in the E63. There is a "notes" field, but it is concealed under a lot of keystrokes.

-3. Both the V360 and the E63 can assign contacts to groups, but I cannot find any way of limiting the display to a particular group. I was not perfectly happy with the groups idea on the V360, but it is amazing to me that Nokia could have made it almost completely unusable.

-4. There is some confusion in the menu system between the normal contact manager and Ovi Contacts, their ridiculous online contact manager.

-5. The feature of automatically seeking a record from the first few characters you enter is very nice, but only works for the number and name fields.

-6. Generally the software does not provide any hierarchy. You can't view in company name order, much less view a list of companies and then drill down into each contact for each company. I thought this lack was ridiculous on the Motorola, but to find the same thing on the E63 is shocking.

Also, I personally would like to be able to restrict contacts to particular countries, although maybe I'm more international than most.

-7. It was extremely irritating to find myself dialling a number in Cambodia while I was having to rekey my contact info: the button to dial the contact is all too close to the one to save it. And there's no warning, just an otherwise inexplicable delay.

13. Apparently there is absolutely no way to add languages in s60. Instead, you can only ask a Nokia service ctr to install a version of the OS with a certain language selection. So I would probably have to give up French and German to add Thai. And send away the phone, lose all the data, and have them copy my "multimedia". Hmm.

This is particularly irritating because they let you download a free English-Thai dictionary, which includes a Thai-English lookup feature, which you can't use because you have no means of entering Thai characters. (I tried German-English, and you can enter o-umlaut by holding down Chr and o, for instance; likewise Chr-s for Eszet.)

The English-Thai lookup works OK, except that there is no phonetic display, which surely makes it useless for most students of Thai. It does give some explanations of the source words, in English, but this was clearly screwed up. The first word I tried, "mean", was explained in the sense of "have the meaning" *only*, but several Thai phrases were offered, including eg version 3 "jai khairp" "selfish, narrowminded" – obviously one of the *other meanings of "mean". I could not find another phrase "khaa chalia" in my dictionary, but I think it means "average cost" – ie, the sense of "arithmetic mean".

I would think this sort of error makes the dictionary irritatingly misleading even for Thai people whose phone has Thai script entry enabled (assuming they can read the English explanations at all, I suppose).

The entry for "post" has similar problems. When you enter that word, it lists various phrases including that word as separate options, but under "post" itself there are no options; you are led to an explanation in English of bugle calls; and there is no description of the differences between a wooden pillar and a system of distributing letters. On the upside, version 1 in the Thai is the bugle-call sense. The "distributing letters" sense is version 4. Possibly a Thai can guess which is meant from context, but there seems to be no logical order; and an English speaker has to puzzle out each option by himself.

Thus you can't even point to an entry and let a Thai read it for himself.

There is no link *back* from each Thai-word option so that you can quickly check the meaning of each one in English. What *does* happen when you click it is that the phone pronounces the word in a robot voice. This too is practically useless, at least for an English-speaking user. Not only is there no attempt to reproduce Thai tones, the sound is so distorted that you can hardly make out whether a consonant is a T or a K. To be fair, this feature may be more useful for Thai-speaking users, considering how ridiculous English spelling is.

14. The location of many software features is not obvious from the menus. Perhaps these locations are a result of trying to maintain compatibility with previous S60 phones.

-1. The data and time format setups can be found in Home - Office - Clock. Weird. On the good side, the options included what I wanted and are system-wide.

-2. When I installed Putty nothing told me where to find it to run it. Eventually I found it in Menu - Installations. On the good side, it was listed as an option when I customized the menus.

-3. You can back up the whole contents of the phone to the flash drive like this: Menu - Tools - Memory - Options - Back up phone memory

I would not have guessed this from the menu structure. I think I found it in the paper manual.

15. There are a lot of complaints on the web about the way the internal backup feature works on Nokia phones. It seems to be only useful if you still have the phone; perhaps it only works with that model, or even that particular phone. The Nokia forum people say they have no intention of providing a utility to read the file, and if you have a backup which is now useless, that's your stupid fault and you should have figured out how it worked before relying on it. Hmm.

Incidentally the filename is "backup.arc", so I naturally tried installing the Arc archive manager, but it got nowhere.

Cunningly, the phone itself refuses to show you the folder where the backup file is located, although you can see it inside PC Suite. Hmm.

I have not dared to try restoring from this file yet. I suppose if anything goes wrong the Nokia forum people will call me names.

I have to wonder if Nokia is deliberately making its local backup systems unusable in order to promote its online contacts management service, which I consider either ridiculous, alarming or both. Most people have much less than 1 MB in personal info on their phone, even including contact snapshots, voice dialling audio clips and the like. It should be easy to back up to a .zip file.

Indeed, the facilities on the software for my little 128-kB organizer more than ten years ago were far more practical than PC Suite.

16. The Ovi store has disappointingly little worth downloading. It has some free stuff, but not Putty. I did download the free "ScreenSnap". There was a wait while the phone said it was installing it, but then I couldn't find it.

Everntually I found it in Menu - Installations, at the end of the icons. When you open it, it shows its setup options. You need to pick a shortcut key; I picked chr-s, which it reports as Fn-s. Then selecting Option - Hide leaves the app running; you can go to any other screen, and press chr-s, and it makes a shutter sound and saves the image to the previously chosen location.

It can save as .bmp or .jpg. The .jpg is a bit blurry but OK.

17. Uploading files: unlike older browsers, such as the very limited one in my V360, the WebKit browser in the E63 can do file uploads.

However, it repeatedly uploaded an image file with 0 bytes length, with no error message. I think the problem was that I had opened the Gallery software on that pic before starting the upload, because when I quit out of it and reran the upload it worked immediately.

18. Mimetype issue:

Having uploaded a video file to panix I tried to open it in the browser. However, the phone now refused to open the file. It turns out that it does not accept my default mimetype "application/octet-stream"; I had to add this to the list of mimetypes in my php download app:

case ".mp4": return "video/mp4";

19. I have found that the phone locked up and had to be reset (or it reset itself) several times while playing internet radio. I got the impression it happens if you leave one radio station playing and then select another, perhaps especially with low-bit-rate stations (funnily enough).

It may also be caused when you forget how to change the volume level inside the radio app. The E63 does not have dedicated volume buttons; in many apps you can use the arrow keys, but not in the internet radio app. You have to press the Fn key twice (or hold it down) to set the up-down keys in volume mode. If you forget to do this, and hit the arrow keys repeatedly, that seems to trigger a reset.

Other than that the app is quite nice. It doesn't allow you to record the stream, though.

20. It is sometimes hard to enter an url in the browser. I think this is because an app may send you off to a website to do a certain function, but it wants you to come right back when that's finished.

Generally the browser is a bit marginal, like something from 1994. No tabs, no view source, etc etc. It is particularly irritating that it does not accept the space key to do a page down (or anything else that I could find). However, it does run Flash.

21. The FM radio does not work very well, and only when the earphones are plugged in (to provide an aerial). All the stations I could receive were subject to some fading and distortion as you moved around; you can leave an ordinary FM radio in one place (with good reception) as you move around, but with the E63 (and many similar phones I'm afraid) you have to hold your head stationary. Not practical, except in an emergency.

22. The phone has a nice feature when you plug it into the PC: it gives you the option of connecting in mass media mode, PC Tools mode, and a couple of others. It normally worked with no hassles.

The USB socket is protected by a flexible flap, but this inspired no confidence. I'm sure it will tear away in a year.

23. However, often Ubuntu refused to notice when it was plugged in – I will make a separate listing of Ubuntu issues later, including converting video files. (PC Suite can handle this to some extent, but I haven't checked that.)

24. The phone *will* press its keys when you leave it in your pocket, even your shirt pocket, never mind your pants pocket, where I keep my V360. So you have to lock the phone every time you put it away, and this is quite clumsy, because the lock sequence can only be used at the home screen. So you need to look at the screen and think, every time. Why on earth can't phone makers provide a nice switch on the side? A flipphone form factor would be fine too, but the choice of flipphones seems limited and pricey.

25. The camera is not as bad as I feared, although it is quite limited. In particular, it does not have any exposure/lighten/darken/backlight settings. It defaults to using "flash" – the LED illuminator, which you have to turn off every time. It casts a horrible grayish light which is hard to fix in Photoshop.

There are no photo or video editing features at all.

2009 Dec 11 [ Fri ]

Some progress on providing auto-install fonts

Internet Explorer has allowed the automatic download of fonts since version 6, but MS made the process very clumsy (because of fears that font producers would complain about copyright violations) and other browsers did not have any equivalent for a long time.

Note that this feature is not the same as merely specifying a font which must already have been installed manually on the user's system. Instead, css code specifies a download location for the font and the browser uses it only to render pages from that website; the font is never automatically installed in the user's system fonts.

Several years ago, I got the process working for this site with my PKD font and IE browsers, but I ran into various problems, and in trying to fix them I wound up breaking the original pages. The feature was broken for a long time.

Recently (since version 3.5) Firefox started supporting this feature, so I took another shot at it. Right now it seems to be working under Firefox 3.5.3 and 3.5.4, and was partially working under IE6 and IE7 the last time I checked them. I'm hoping it's fully working now.

I had to clear up various bugs and blunders to make it work.

1. I'm running Ubuntu 8.10, which provides an old version of Firefox with little or no font download support. I needed to install a new version as a separate app.

2. I always install the Noscript plugin as a defensive measure as soon as I install Firefox. The default action of the Noscript plugin is to disable font downloads, which I did not realize for a long time! This feature uses the css "font-face" command. At least in newer versions of FF/Noscript, it has (under the Embeddings tab) "Disable font-face". I don't really know why Noscript thinks this feature could be used for evil, but I suppose someone could encode ads or even malware inside a font.

3. I am still clearing up various other aspects of css, and right now my css is particularly messy. In particular, I really need to put the new font support inside the css for print media (ie right now it will print the page *without* using the downloaded fonts).

4. I had apparently been using .eot files (the kind of downloadable fonts which IE uses) which were invalid in some way; so many of these files are now different from versions you may have already downloaded.

5. I have been updating and tweaking my PKD phonetic font since I first published it so this version too may be different from what you previously downloaded.

6. The trick I used to make the css usable both for IE and Firefox means that IE will always download the font, even if it is already a system font.

Here are two test pages which I have designed to check out the new font setup. I put them in my "nolist" folder because I may update them later.

Limon and PKD samples: www.panix.com [http://www.panix.com/~dannyw/weblog/nolist/test04.html]

Longer Limon samples (to see if any Limon character codes cause problems inside HTML): www.panix.com [http://www.panix.com/~dannyw/weblog/nolist/test05.html]

2009 Nov 29 [ Sun ]

Using Gimp "alpha to logo" filters

The "alpha to logo" filters make it easy to produce complex and impressive results, but various problems kept me from actually using them for a long time. I recently spent a few hours experimenting and now have a usable grasp of how to make them work; I explain the "gotchas" that I found below. I'm running Gimp 2.6.3; if you have installed a later version, I should mention that later versions apparently have some differences from 2.6.3 and earlier versions in the user interface to layers.

1. Almost all of these filters require that the original image be on a layer with transparency. When I think about this, it makes sense: that allows the filter to be sure what is the image and what is empty space. So if you want to experiment with these filters, the first thing you have to do is make a new layer with transparency and create the original image on that layer. Note that the filter will work from only the current layer of the image.

If you forget to create a transparent layer and to make sure it's the current layer, then most of the filters are greyed out in the menu, with no clue as to why.

Just outlining an area with a selection tool does nothing until you cut the selected area to a temporary layer. That is, the alpha to logo filters act on the entire layer.

2. You probably want to wind up with decorated text, but you need to take special care when running these filters on a text layer – see below. For initially experimenting with the filters I suggest making a few squiggles with the paint tool on a 640x400 image, and only start trying out text when you are comfortable with the way the filters work.

A nice thing about experimenting with these filters is that if you do Edit - Undo (ctrl-Z) you immediately revert to the state before running the filter – you don't have to keep clicking undo for every stage during the filter.

3. The "cool metal" filter requires that the image is currently a floating selection, rather than merely on a layer with transparency. It is apparently some sort of bug in the version of that filter included with my version of the Gimp, and the filter with the latest versions of the Gimp has been fixed.

If you are using a version of Gimp with this broken cool metal filter, the way to create such a floating layer is to select the image, copy it to the clipboard, and then paste from the clipboard: immediately after the paste, the pasted image is a floating selection, and is identified as such in the layers dialog. Although it is shown at the top of the layers, when you "anchor" the layer it will merge with the previously current layer, not the top layer.

Note that after the filter has run, *everything else in the file* has been destroyed, and the file has been resized to just barely contain the resulting image.

4. After these filters have run, the results will be on multiple layers. For instance, the desired background created by the filter will be on a separate layer and can easily be deleted to allow the image to be pasted on top of another image. Any other layers of the original file may be covered up by the created background.

5. Handling text: the problem is that when you create a text layer it is normally created as a layer just large enough to contain the text. When you run one of these filters, it leaves a set of layers which are just large enough for the filter output, and the rest of the original image has cropped to the text layer size! I don't know why they work that way. But it certainly means that if you want to add text created via one of these filters to an image, you need to work on a separate file and then paste the results into the main image.

6. Alternatively – and I just realized this! – you can access these filters via File - Create - Logo instead. This will easily create the text as a separate file, as you need, that you can then paste into your main file. The only issue is that you have to rekey the text if you want to try a new filter.

Note that the layer that you paste into has to be large enough for the "logo". You need to select such a layer in the main file before you do the paste. After you do the paste, the "logo" is shown as a floating selection at the top of the layers in the layer dialog, but it will be displayed as it will finally be in the main window, ie behind any images on layers that are above the destination layer.

If the destination layer is too small, then very little or even none of the "logo" will be inserted into the layer.

7. I've included a sample. It was based on a couple of words in the Unicode font, Khmer OS Fasthand. I've listed instructions on how to produce something similar; they assume some familiarity with general Gimp operations.

Decorating text with Gimp - Khmer: jriat bpiak

-1. Create a new image 640x480.

-2. Add a transparent layer called "mytext". I suggest you do this by opening the layers dialog with Window - Dockable dialogs - Layers.

-3. Create text in the desired font at say 100 px.

-4. While still using the text tool, click "path from text".

-5. Open the paths dialog, eg with Window - Dockable dialogs - Paths.

-6. Select the path in the path dialog (it will probably be the only one). Click the square red button at the bottom of the paths dialog: selection from path. This took an amazingly long time to run on my ancient laptop, perhaps 20 seconds. This may be because of something strange with Khmer Unicode.

-7. Go to the layers dialog and make sure the "mytext" layer is selected. Make the original text layer invisible (not mytext).

-8. Click the bucket fill tool and click somewhere in the text selection to fill it with a color. I suggest using black initially.

-9. Click Filters - Alpha to logo - Chrome.

-10. Run the filter at defaults.

-11. This will produce a couple of extra layers: one with a layer mask next to it, and one called "drop shadow". As a result, the text is shown in a nice chrome finish.

-12. To give it a gold look instead of chrome, click in the layers dialog on the text layer created by the filter. Make sure you select the lefthand thumbnail, not the righthand one showing the mask.

-13. Click the bucket fill tool and select color mode, opacity 100%, pattern fill, pine pattern, fill whole selection. This will apply the color of that pattern to the chrome-effect text, leaving it tinted yellowish: adequately gold.

-14. To get the leatherish finish on the background, click the Background layer in the layers dialog, click the bucket tool, select the Leather pattern, Normal mode, 100% opacity, fill whole selection, and click anywhere on the image.

-15. Select Image - Flatten image to get all the layers together. (You may want to save the Gimp source file first.)

-16. Crop the image to size, eg by making a rectangular selection, then clicking Image - Crop to selection.

-17. Save as jpeg.

2009 Nov 27 [ Fri ]

Fixing Gimp bug problem in Linux: BABL version too old!

I have Gimp version 2.6.3 installed. I've noticed that the latest versions which can be downloaded have new features that I'm very interested in: in particular, brush rotation and a lot of extra features in the layers dialog.

Unfortunately Ubuntu does not provide updated packages, and I cannot install the latest versions of Ubuntu because the live DVD does not boot on my system. (Apparently that is due to a problem with the latest kernels, and it's possible to boot to the latest Ubuntu using a previous kernel, but I am not eager to see if that causes complex and mysterious problems.)

So I tried installing 2.7, almost the latest version of Gimp, in parallel to my existing Gimp. (I could only find version 2.7.1 via a git server, and I did not want to install git.) The installation process supports this using the "prefix" command. However, the compile process stopped, saying it needed updated versions of intltool, babl and gegl. (It has to go through the whole compile over again each time to tell you.) When I got to the gegl requirement, it again seemed to be only available via git, and when I checked how many dependencies it had I gave up.

So this article is not about how to install gimp from source. If you were hoping to find that, try here: shallowsky.com [http://shallowsky.com/linux/gimpbuild.html]

What I *can* tell you about is how to get around an irritating problem resulting from this partial install. Because I had tried to install the new Gimp separately from the old one, the old one was still present. But it refused to run. This was the error message:

BABL version too old!
GIMP requires BABL version 0.0.22 or later.
Installed BABL version is 0.1.0.
Somehow you or your software packager managed
to install GIMP with an older BABL version.
Please upgrade to BABL version 0.0.22 or later.

This is as stupid as it sounds. Gimp version 2.6.3 has a bug in the routine which compares version numbers. It has been corrected in subsequent versions of Gimp, but that didn't help me: osdir.com [http://osdir.com/ml/svn-commits-list/2009-05/msg06198.html]

I tried reinstalling BABL 0.0.22 using Synaptic, and then tried reinstalling Gimp 2.6.3, but it made no difference. Something was still telling Gimp that version 0.1.0 was installed.

I could not find a clear description of how programs detect library versions when they load, or how to change it. I did not feel very confident that "make uninstall" would fix it, and this (German) blogger agrees: blog.tetti.de [http://blog.tetti.de/node/844]

The following exhaustive page was stunningly complex, but gave me an idea: www.linux.org [http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html]

It mentioned that the path to libraries for some reason is set up as a succession of links. When listed /usr/lib I got this:

dannyw@dannyw-muggle:/usr/lib\ 10:20:55 $ ls -l libbabl*
-rwxr-xr-x 1 root root    816 2009-11-21 13:52 libbabl-0.0.la
lrwxrwxrwx 1 root root     21 2009-11-23 09:31 libbabl-0.0.so → libbabl-0.0.so.0.22.0
lrwxrwxrwx 1 root root     28 2009-11-23 10:19 libbabl-0.0.so.0 → libbabl-0.0.so.0.100.0
-rwxr-xr-x 1 root root 371782 2009-11-21 13:52 libbabl-0.0.so.0.100.0
-rw-r – r –  1 root root 101372 2008-06-17 14:51 libbabl-0.0.so.0.22.0

(Actually, I had previously renamed .100.0 to .100.0.danny and made a backup version of .22.0 as .22.0.danny, but I edited the above log to remove that – it still shows up in the filedates)

dannyw@dannyw-muggle:/usr/lib\ 10:21:06 $ sudo rm libbabl-0.0.so.0
dannyw@dannyw-muggle:/usr/lib\ 10:23:42 $ sudo ln -s libbabl-0.0.so.0{.22.0,}
dannyw@dannyw-muggle:/usr/lib\ 10:23:47 $ ls -l libbabl*
-rwxr-xr-x 1 root root    816 2009-11-21 13:52 libbabl-0.0.la
lrwxrwxrwx 1 root root     21 2009-11-23 09:31 libbabl-0.0.so → libbabl-0.0.so.0.22.0
lrwxrwxrwx 1 root root     21 2009-11-23 10:23 libbabl-0.0.so.0 → libbabl-0.0.so.0.22.0
-rwxr-xr-x 1 root root 371782 2009-11-21 13:52 libbabl-0.0.so.0.100.0
-rw-r- -r- - 1 root root 101372 2008-06-17 14:51 libbabl-0.0.so.0.22.0
dannyw@dannyw-muggle:/usr/lib\ 10:23:52 $ 

The critical thing is that now both libbabl-0.0.so and libbabl-0.0.so.0 point to the .22.0 version. The description of how the system sets up these symbolic links makes it sound as though it may get recreated on reboot, but so far that has not happened. [20091202: the bug reappeared, triggered apparently not by a reboot but by accepting a software update. I was able to fix it the same way shown above. If it happens frequently I will try to find a more permanent fix.]

I can now run gimp without any complaints about babl. Incidentally, reinstalling Gimp via Synaptic seems to have left all my brushes and filters still accessible – phew.

2009 Nov 08 [ Sun ]

Review: DHTML and CSS - 3rd Edition

I have been using css for many years, but I kept running into basic things I didn't know, so I wanted to go all through a book instead of just looking up details on the web.

This book is out of date, but well written and with copious examples, so I went through and made the following notes. Unfortunately I cannot find the code online – the author seems to have pulled it from his site. Possibly it's too severely out of date.

1. p19 Setting your DTD - The DOCTYPE Strict means all formatting in the doc is handled by CSS, so no formatting tags are allowed. Transitional allows a mix of regular HTML formatting and CSS. Frameset means "used with HTML documents used to create framesets". I don't really know what the last one means.

2. p21 Kinds of HTML and XHTML tags - There are 3 types of tags, inline like the bold tag that has no line breaks around it, block tags that do have line breaks like the paragraph tag, and "replaced tags that have set or calculated dimensions".

I must admit I can't remember seeing that term "replaced" tags before. These include the br, img, input, object, select and textarea tags. See "5" below.

"Although the paragraph tag <p> is often used without its closing </p> tag in HTML, the closing tag *must* be included if you want to define something using CSS."

"Although the break tag <br> does not have a closing tag, you can add styles to it. However, tremember that in XHTML, the break tag becomes <br />(with a space in between the br and the /) so that it is self-closing."

3. p51 Creating drop caps with pseudo-elements: the solution shown involves applying a special class to the first paragraph of a section of text. It seems to me this is no easier and somewhat more opaque than just applying a class to the first *letter* and avoids using pseudo-elements.

4. p112 Changing how an element is displayed - You can use the display property to set the element to various options, eg setting "display:inline" in CSS.

Considering how fundamental this property is, I find it a little weird that you are allowed to set it.

I'm actually not sure what this feature is good for except surprises. It occurs to me it might be nice to use "code" as a block element, because actual code sections normally need block-style formatting and it's more semantic to call them "code".

5. p119 Setting the width and height of an element - "Although you can set the height of any element, only elements with replaced tags will use it. Other tags ignore a height value unless you define what should happen to the overflowing content of the element. (See "2" for what "replaced tags" are.)

6. p154 Setting an element's position - "To position an element using the left and top properties, you have to include the position property in the same rule." Eg,

{position:relative; top:1cm; left:1cm; }

It seems slightly strange to me that it really has to be in the "same rule". That seems to make it an exception to the general cascading feature of CSS.

7. p160 Stacking ojects (3-D positioning) - I have to admit I was left confused about what the z index is of elements that you do not explicitly set. The text refers to "sibling" elements, suggesting that they all have the same z index, but the text also says "positioned elements are assigned stacking numbers automatically, starting with 0 and continuing incrementally with 1,2,3 and so on in the order in which the lements appear in the HTML and relative to their parents and siblings".

I will need to experiment with this I suppose.

8. p219 Using the DOM - The text rather labors the point about assigning the string "60px" to a parameter.We already know that we have to set the CSS to "60px" not just the integer 60, so what is strange about that?

9. p254 Finding an object's 3-D position - "There's a catch. Browser's can't easily see the z-index until it's set dynamically. To get around this little problem, you have to use JavaScript to set the z index of each oject when the page first loads."

This seems to make the ability to read the z index not very useful, because your Javascript must *already know* what it set it to, right? Or am I missing something?

10. p264 Detecting which event type fired - The JavaScript includes some code like this:

var object = document.getElementById(objectID);
object.onmousedown = findEventType;

This looked like nothing remarkable at first, but then it looked weirder and weirder – at least if you don't know JavaScript. It looks like you're creating a *new* variable called object, and then setting a handler for that new variable. But actually what you're doing is getting the *address* of the existing object called "objectID" , and using that to set the handler for that existing object.

This is actually defined on p218: "(the var object = syntax creates) a variable called object, to store the address for the object".

Btw, why do authors persist in using misleading names for variables? It would be much clearer if they used "banana" as the variable name instead of "object".

11. p387 Creating sliding menus - This section just has a sidebar on Access Keys, but I think they're more interesting than the section topic. You can use the HTML accesskey attribute to allow a user to navigate the page with the keypboard, like this example:

<a href="index.html" accesskey="h">Home</a>

It's funny I've never noticed this in an HTML book.

Here is the Wikipedia article: en.wikipedia.org [http://en.wikipedia.org/wiki/Access_key]

Regrettably, you don't access the link with just the accesskey: you have to press some combination, like Alt-accesskey. Refer to the Wikipedia article for details. Browsers vary.

Remember to avoid assigning access keys that already are assigned, like alt-F for the file menu. Indeed not so simple: www.cs.tut.fi [http://www.cs.tut.fi/~jkorpela/forms/accesskey.html]

12. p478 Appendix D Browser-safe fonts - This is a nice table of font names and a font sample for each font, for the Microsoft Core Web Fonts, Mac OS, and Windows OS. I don't remember seeing such a comprehensive guide before. It certainly makes me wish every computer had the full Mac set.

I did a search for something similar and the first result was the actual PDF for these pages in the book, at the site of the book's author, Jason Cranford Teague: www.webbedenvironments.com [http://www.webbedenvironments.com/css_dhtml_ajax/downloads/BrowserSafeFonts.pdf]

He appears to have put the PDF on his site in 2009-05 in the hope of encouraging someone to help him extend it with MS Office 2007 fonts. It is well worth downloading. It is actually interesting just as a PDF because it includes crop marks.

2009 Nov 04 [ Wed ]

Still css layout problems

I have been tinkering with the css since my previous article: www.panix.com [http://www.panix.com/~dannyw/weblog/Chrome/csslayout02.html] and it is now looking somewhat better. I have a working liquid layout in Firefox, and it is not terrible in IE. It's also OK in Opera.

Still, the more I read about bugs and inconsistencies in css, the more I wonder what was really so wrong with tables.

The bicameral mind and spectator sport

Many years ago I read "The Origin of Consciousness in the Breakdown of the Bicameral Mind" by Julian Jaynes (referred to below as "BCM" ). It speculates – with an overwhelming collection of historical references – that the human mind worked in a fundamentally different way until just a few thousand years ago, so that people did not perceive that their own minds were functioning to produce plans, beliefs and judgements, but that spirits, gods or ancestors were supplying advice.

Wikipedia: en.wikipedia.org [http://en.wikipedia.org/wiki/Bicameralism_(psychology)]

I found the possibility fascinating but unproved and perhaps unprovable. However, I filed it away.

Recently I was wondering about rock concerts. Why do people bother going to them? They are very expensive, and the live version of music (even assuming it is actually live and not lip-synced) is almost always technically inferior to the recorded version. It occurred to me that a concert is very analogous to religious ceremonies as described in BCM. Jaynes speculated the experience of such a ceremony – immersed in sights and sounds designed to form a single experience, and surrounded by other devotees – amplified and solidified a shared belief into a shared fantasy. In the case of religious ceremonies, they culminated in the mass perception of gods and miracles. I have often heard reports of rock concerts which stress aspects which seem to me to involve supernatural elements, or at least aspects which have no rational basis: shared, synchronized emotions and perceptions.

But why would anyone *enjoy* this experience?

Jaynes saw the shift from bicameral consciousness as a gradual one. He believed that elements of it survived to today: for instance, in schizophrenics, or in the "general sense of need for external authority in decision-making". My own speculation is that many people still *enjoy* the experience of subjecting themselves to a shared hallucination – our minds are wary of *personalized* hallucinations, but when surrounded by fellow devotees our guard is let down. We can simultaneously perceive the internal certainty provided by the bicameral mind, and the external confirmation of everyone in our surroundings. And in the case of a hugely popular band, one is surrounded by tens of thousands who can be relied upon to largely support one's fantasies.

Still, if I were present at such a concert, even if it were by a band that I really liked, I know I would feel absolutely nothing of this shared consciousness. In fact, if I perceived it at all, I would find it creepy.

So, many people enjoy subjecting themselves to such shared experiences, and many do not. One can think of so many examples. For instance, there is a Monty Python sketch about Nazis who have gathered together in some quiet seaside town in England, and struggle to mobilize the local population; as the leader's incomprehensible harangues blare out, one of his confederates sidles up to one of the sparse crowd and says, "he's right, you know!". The local yokel stares at him, puzzled. Of course, it's easy to resist even a well-organized appeal to one's bicameral mind if only a handful of devotees are present. Once some critical mass surrounds the unwary, their innate vulnerability allows them to be overwhelmed.

So in one way my inability to respond is a strength. But viewed by the mass of people, it is a weakness. Most people *like* to behave like a mob; like "the madness of crowds". When I have watched programs about fashion, I am stunned by how ugly and tasteless the fashions are. There is one particular fashion presenter, Gok Wan: en.wikipedia.org [http://en.wikipedia.org/wiki/Gok_Wan]

Not only is his taste appalling, but his putdowns of the taste of the poor souls who he "advises" are brutally contemptuous. I could not imagine who would willingly subject themselves either to appearing on his show as a literal fashion victim, or to watching his show to pick up fashion advice. But now I realize that what he is doing is reinforcing the shared fantasy that fashion exists and is important, and that people who invest enough energy and time into chasing the phantasmic goals that Wan is pushing have bought their way into a shared fantasy. Whether they are the "winners" – the adequately fashion-conscious who meet Wan's capricious and inconsistent standards – or the losers that he ruthlessly derides, his devotees can feel the warm, close presence of their bicameral mind.

And once this shared fantasy – this "folie a la plupart" – has been built up, the devotees will fanatically defend it. If I wear clothes, or god forbid a hairstyle, that was popular in 1970, or 1930, or 2005, I can be identified as a rebel and rejected. I cannot escape this; I am allotted the role of "rebel" even if I have no idea of the "rules" and no intention of causing offence and exclusion.

Similarly, fans of organized sports seem to believe that the performance of "their" team has something to do with them, but in fact what they are responding to is a bunch of half-understood theatrical tricks essentially similar to those employed by Goebbels. And if I were to make that point to them, they would be as sympathetic as the SS.

My guess is that about 80% of humanity is still eager to hear the voice of its bicameral mind. This corresponds to Van Vogt's estimate that about 20% of men are what he calls the leader type. Even when I first read this many years ago, it was clear that this fraction is not actually particularly skilled at leading people. Instead, they are terribly unskilled at following. Many of the hobos one sees do not seem to be simply alcoholics or insane; instead, it's striking that they just do not want to engage with other people. Perhaps they have an inner voice, or perhaps they are tired of pretending to hear society's inner voice.

It must be wonderful to believe that you have supernatural powers. With the certainty of someone who is hearing his bicameral voice, you can believe, for instance, that you have perfect empathy with strangers, family members, or animals, when in fact people are collaborating on a shared narrative, and the animal has been socialized to play along. There was an old cartoon I remember, about a mole who lives in a beautiful fairyland until a wily fox sells him a pair of spectacles; when his eyes are sharp, he sees that he lives in a hovel in the middle of a garbage dump. At the end of the short, he kicks out the fox and throws the spectacles away so that he can live in paradise again.

But imagine how horrible it is when someone in the group does not play along. You can't just allow him to exist: everything about his actions makes it clear that your sparkly universe does not exist for him. You have to exclude and reject him, or he may actually break down your entire reality system. Apparently it's not unusual for many fans of soap operas to behave as if the characters are real: knitting clothes for newborns etc. Such people may be completely able to function in real life, but somehow have this one hole in reality. The fact that such a thing is possible suggests the existence of a larger mental system that is otherwise dormant, or invisible. Apparently early literature was normally presented as true; I wonder if it was normally accepted as such? tvtropes.org [http://tvtropes.org/pmwiki/pmwiki.php/Main/LiteraryAgentHypothesis]

What happens when two separate shared worlds collide? For instance, football fans from two teams? It's like Jaynes' picture of two competing city-states: both sides agree that what they are doing is good and important and worth dying for, when unconcerned observers are wondering what the fuss is about.

Here are a few notes on Jaynes' book. The page numbers refer to the Pelican (USA) 1982 edition. I include several example of weird English usage by Jaynes; I wonder if his book would have led to a real revolution in Western thought if he had not thrown away the version of his manuscript that the publisher's editor handed him.

1. Book 2 Chap 2 p176 (Literate Bicameral Theocracies): He states "writing proceeds from pictures of visual events to symbols of phonetic events". He asserts "writing of the latter type, as on the present page, is meant to tell a reader something he does not know. But the closer writing is to the former, the more it is primarily a mnemonic device to release information which the reader already has".

He intends this as support for his theory that men developed over this period from the bicameral mind to the conscious mind.

I note it however as relevant to a pet theory of my own: that writing developed before speech. I have never seen anyone else make this speculation because, I'm sure, everyone is used to children learning speech years before they can read and write. But imagine the situation in prehistory before *either* has developed. How much harder is it really to make pictogram notes *for oneself*, whose significance one *does not need to first communicate*, compared with making sounds, which are almost impossible to correctly identify, let alone emulate, without growing up in a society using that speech for years?

2. Book 2 Chap 5 p278 (Foolish Perses): "The often tedious recital... and without development".

I don't wish to reproduce the text here because my point is that his argument in some places, as here, is embarrassingly weak. If something fits his chronology he eagerly adduces it, and if it doesn't fit he insinuates that it must therefore be wrong! Similarly his chronology of the Iliad and the Odyssey.

3. Book 2 Chap 5 p290 (The Invention of the Soul): "According to the theory of the bicameral mind, hallucinations of a person in some authority could continue after death as an everyday matter".

I must admit I rather lost the thread of his argument. In his discussion of brain functions he seemed to be saying that audible hallucinations had a special relevance to bicamerality, but he also speaks of mass hallucinations involving all the senses, at least in earlier periods.

4. Book 2 Chap 5 p290 (The Invention of the Soul): "For there is nothing here of dead strengthless souls wailing about in a netherworld, guzzling hot blood to get their strength back..."

This note is not about bicamerality at all. I am simply struck by the similarity of this description "added into the Odyssey as book 11" to the modern vampire idea.

5. Book 2 Chap 6 p297 (Some observations on the Pentateuch): "Indeed, in trying to do so, whatever our religious backgrounds, we feel, if not blasphemous, at least disrespectful to the profoundest meanings of others".

I have noted that down because of the phrase "profoundest meanings". I just don't know what he meant by that phrase, and that usage is representative of hundreds of others that are at least as foreign. He may mean "profoundest opinions" (like "Meinungen" in German), or he may mean something like "profoundest semantic distinctions". It reminds me of a character in a TV play by Stoppard, who gives a paper at a conference on philosophy and asserts a distinction between "what we mean and what we want to say". Stoppard shows us the interpreters struggling with the simultaneous translation of that, and rolling their eyes at each other.

Jaynes several times in the book gives the impression that he can read classical Greek in the original. It may be that his usages have been colored by this. It may also be an affectation. I have certainly felt the urge many times to use a peculiar form of words in English for the sake of a pun in another language... however weak.

6. Book 3 Chap 2 p355 (Possession in the Modern World): "The vestiges of the bicameral mind do not exist in any empty psychological space... Instead they always live at the very heart of a culture or subculture, moving out and filling up- the unspoken and the unrationalized."

The most interesting part of Jaynes' theory for me is its relevance to the current world, and to current societies and systems of thought. It is a commonplace observation that people brought up in different societies not only believe different things, but interpret the same events in radically different ways.

Or to put it another way, as Gilbert and Sullivan did, isn't it strange that every Englishman born becomes a little Liberal or a little Conservative.

To what extent do the rulers of modern societies understand, or at least unknowingly emulate, the theatrics of Egyptian god-kings and Greek seeresses? When the spectators at a football match spend a hundred pounds to watch a game, grow hoarse with shouting, and then run through the streets scuffling with rival supporters, are they being watched by cold-eyed psychologists with stopwatches and spreadsheets?

7. Book 3 Chap 3 p368 (The Nature of Music): "Try hearing different musics on two earphones at the same intensity". "Musics"? This kind of usage makes me wonder if Jaynes was a native English speaker at all.

8. Book 3 Chap 4 p403 (Objection: Does Hypnosis Exist?): "We are learned in self-doubt, scholars of our very failures, geniuses at excuse and tomorrowing our resolves". Just another example of weird English.

2009 Sep 20 [ Sun ]

Review: TV: Terminator -- The Sarah Connor Chronicles

Presumably you are already aware of the Terminator movies, on which this series was based (although time travel allows it to wipe out the events of the third movie).

This series was cancelled months ago as a result of mediocre ratings. However I quite enjoyed it and want to comment on several aspects. I've been mulling over these comments until now, having just had a chance to see the second series again in recordings.

I'm going to refer to it as TSCC, to distinguish it where necessary from the movies.

Wikipedia link: en.wikipedia.org [http://en.wikipedia.org/wiki/Sarah_connor_chronicles]

As usual, this review contains many spoilers, so if you haven't seen TSCC yet, you may prefer to stop reading here. Anyway, much of this review will be hard to understand until you have seen the series.

SPOILER ALERT

1. Many people have already commented on the peculiarities of the creative process applied to a TV series, but I'll mention some:

-1. There is a huge commercial incentive to continue a successful series even if the original situation has already been played out. A good example is Stargate, where the creators ran out of ideas, believed the show to have been cancelled and made the charitable decision to wrap up all the threads, and then were told the show had been signed up for another season.

-2. On the other hand, the creators may plan a three-season arc, but the show gets cancelled prematurely. That seems to have happened with TSCC: the whole situation was left unresolved by the final episode.

-3. For these and many other reasons, many successful series are written so that the situation basically resets at the end of each episode. I think "Hill Street Blues" was the first major series to be planned with an arc, and it is still somewhat unusual. However, I enjoy as a viewer being able to appreciate plot and character developments more fully than can be squeezed into 45 mins.

-4. A series which is planned as an arc is distinguished from a soap opera because the latter is consciously planned *never* to end: there is never a true resolution. Not only that: events which *appear* to provide some sort of resolution to one of the story threads are frequently annulled when we discover that the person who died was actually an identical twin... etc,etc. I think you can tell that I do not approve of that format and the resolution of a story is very important to me.

-5. In a lengthy series, the actors are not always able to maintain their roles as required. This is particularly a problem in fantasy series where they are supposed to be immortal: a good example is Angel, where the actor playing the titular vampire aged and put on weight very noticeably over the several years from his first appearance on Buffy. Also of course, they may just die, quit, get pregnant or become drug addicts.

2. TSCC had the additional problem of trying to fit in with the movies. As well as having to introduce new actors in the roles we were already familiar with, it needed to be compatible with the general situation of the movies, which thanks to the muddled picture of time travel in the movies was very hard.

OTOH the most recent movie, released since TSCC began, does not seem to fit in with TSCC at all.

3. Because the show was cancelled we will never know, but I believe the show was struggling towards some sort of resolution for the entire situation of all the Terminator stories.

I think one reason why the show was cancelled was that the planned resolution was too close to the (horribly flawed) resolution of Battlestar Galactica: in other words, some sort of alliance between Skynet, or at least a faction of the terminators, and humans.

This was foreshadowed in several ways:

-1. There has always been a mystery about the future John Connor, but he was repeatedly described as surrounding himself with metal, including the Cameron-class terminator. (Although it's not clear that the Cameron we see in the future is the same physical unit that was sent back to protect John in our period.)

-2. In the final episode Ms Weaver, a liquid-metal terminator who has been shown killing several humans during previous episodes, saves John Connor from death and reveals that "John Henry", an AI she has been developing, may save all of humanity. In other words, she killed humans as Cameron does, in order to achieve the goal of preventing Judgement Day. (It may also be that she sees this entire timeline as transitional, so their deaths have no lasting significance.)

See also point 9 below.

4. I think a major reason why the show was cancelled was the overall structure. I believe it was planned to extend through at least three seasons, so major developments occurred very slowly.

The first time I watched most of these shows was on TV, and somewhat out of order – probably the same as most viewers. The impression I got was that the plot was moving far too slowly. The Wikipedia article seems to agree.

5. A secondary problem was that very major plot points were not underlined, and I missed them until a second or third viewing. For instance, Derek realizes that he has changed his own future when "his girlfriend" (Jesse Flores) comes back from the future and tells him that he was tortured by someone who never tortured him in his original timeline. In other words, she is not the same girl as the Jesse that he left in his own timeline. This seems like a major, major issue which affects everything our heroes – and Skynet – are doing.

I actually did catch that one, but a more subtle point – that Derek was rescued from suicide by different people in the two timelines – went right over my head.

Similarly, Derek, having realized that Jesse is not "his" Jesse, kills her for murdering Riley. But he is still stunned by the revelation that Cameron gives him: that Jesse was pregnant by him when he left her, but lost the pregnancy. This seems a little strange. He cannot even be sure that Cameron is from his own timeline, or from that of either of the Jesses. And the one thing he does know is that the Jesse he killed, even if she had been pregnant at all, was pregnant by a Derek from another timeline. Perhaps he is reacting to the probability that *his* Jesse had also been pregnant; but now *his* Jesse is lost on a no-longer-accessible timeline, which *he* destroyed.

What exactly is Derek reacting to? This was not made explicit at all. Are we supposed to stack up all these mysteries with zero current emotional payoff, in the hopes that the final resolution will illuminate everything that has gone before? Sometimes I get irritated when a show makes the points too obviously, but with TSCC I started to wonder if the makers had forgotten to make plot points clear at all.

...Hmm: the Wikipedia article suggests that it is not certain that Derek actually killed Jesse. It's true that the camera does not cut to Jesse after Derek fires at her. I have to say I would feel that it was a cheap trick, reminiscent of a soap opera, if Jesse turns out to be alive. (Nothing against Jesse, btw: if a Jesse *from a different timeline* were to show up, that would be fine.)

6. I was happy with all the actors. Lena Headey (Sarah Connor) was solid, but could do little with scripts that gave her no character development. Thomas Dekker (John Connor) was irritating for a long time, but mainly because of the script. In the last few episodes, where he was given much more powerful scenes relating to several deaths and Sarah's imprisonment, he was impressive.

Richard T. Jones (James Ellison) was especially irritating because of the poor writing. He kept seeing a terminator hand or whatever and then doing nothing whatsoever about it, and thus personified the sluggish plot development. Also, despite being a powerful-looking guy, the show never used that. For instance, we could have had a scene where he doesn't realize Cameron's a terminator, so he pushes her around, and when Cameron decides the time is right he gets a big surprise.

Derek had an oddly soft voice for what was supposed to be an action hero type, but then again, Derek was in that capacity because of Judgement Day, not because of his character. Also, I knew several guys in special forces who like him did not *project* what they could do.

7. I want to discuss Cameron (Summer Glau) separately for several reasons. One is that the "character" is *supposed* to be emotionless, so as an acting role it can't be compared to the others. Glau seems to have had a succession of such roles in her career, so that I can hardly evaluate her acting generally. What I can say is that the few occasions when Glau had an opportunity to show extra depth in TSCC, it really worked. For instance, when Cameron goes haywire, attacks John, and he is about to destroy her, she pleads for her life with oddly human desperation, crying out that she loves him.

Of course one reason why the scene is powerful is that none of the humans observing her were inclined to believe that the robot was capable of loving anybody, so it seems like an utterly crude final tactic that the robotic mind picked as worth trying despite the fact that it would only work if the humans were fools.

Another episode where Cameron/Glau is allowed to show a much wider range of emotions is "Allison from Palmdale". In fact, this one episode changed my opinion of the entire series. In this episode, Cameron's mind goes haywire, and she reverts to the personality of the human on which her design was based, "Allison Young". We see flashbacks of Allison's capture by the terminators, and of a Cameron-model terminator finishing the process by killing Allison.

This is the first time we have direct knowledge of Cameron's thoughts. Previously Cameron's motives/programming have been unknowable. Now we see, or at least glimpse, her own experiences. That entire personality had always been inside her. Perhaps Cameron herself, rather than a similar unit, had killed Allison, and that would have been a part of her memories too.

For a time, Cameron almost *was* Allison. When Cameron's main programming recovered, Allison was lost.

All through that episode, simple details were intensely poignant. Although there are very few action scenes, at least in the present, far more seems to happen than in most other episodes. For instance, Cameron, still remembering herself as Allison, calls the home number that is in her memories, but the woman who picks up says there's no Allison there. Cameron is disappointed and fearful. But we see that the woman is pregnant, and as she puts the phone down she says that Allison sounds a nice name. So Cameron has in effect provided the name for the as-yet unborn girl who will live through Judgement Day only to be simulated and murdered by the terminators. In a moment, we feel the entire tragic arc of Allison's life.

But of course we expect Cameron's programming to return at any time. Cameron is like the bomb under the table; the audience is in suspense over everything that happens while that bomb is ticking. A somewhat obvious general point is that the Cameron model is a slender, attractive young girl. (Glau is in her twenties, but is believable as a high-school student.) As well as providing eye candy, this works well as a counterpoint to the Schwarzenegger model in the movies. Also, it adds something to the general weird menace of the terminators. In the final episode, Cameron approaches John while he's sleeping, then removes her shirt and bra, climbs on the bed and makes him cut her abdomen open and insert his hand under her "breastplate", apparently to touch her atomic power unit to double-check that it is not leaking radiation. (I would not have guessed that this procedure would work, but I do not represent myself as an expert on micro-shielded reactors.) John is straddling her, with their faces close together. We are not told what he's feeling, but it has to be quite a mixture of emotions.

Very incidentally, that scene reminds me of a repeated problem with the depiction of all the terminators. We are repeatedly told that they are considerably heavier than humans, which is why they can't swim. I can't remember what Cameron is supposed to weigh, but I think it was probably over 100 kg (whereas Glau probably weighs less than 55 kg). But we never see objects reacting to that weight. When she lies on the bed, her narrow, heavy little body should press deeply into the mattress. When she gets in, anybody lying next to her should be bounced. Likewise, when she gets into a car or elevator it should bounce noticeably on that side. I don't think it would have cost very much to throw in that special effect, and it could have been used as a plot point once or twice. (Also, I think the show was inconsistent on whether terminators maintain human body temperature or not. Presumably they would be capable of it, as we are shown one male model who apparently sleeps with his duplicated victim's wife over several weeks.)

Another issue is Glau's appearance. As a terminator, her appearance presumably should not age, but I suppose it could, just like a Buick's. However, flashbacks, and time travel, mean that she, *and the other characters*, often need to be shown in younger forms, and I'm guessing that her beautifully-slim appearance may be more vulnerable to boring old-fashioned one-year-per-year time travel than some of the other characters. When we see her in the future, in the final episode, Glau looked distinctly older for some reason.

8. The final episode introduces several new threads. By the end, Cameron's chip has been removed, and her body is left slumped in the present as John Connor flees to the future. We are told that John Henry must have taken the chip, but why? It would have made more sense for him to do the opposite: dump his programming into her chip. (But he managed to leave all his hardware behind, even though we had previously been told that even disconnecting a fan would be a problem for him.) Presumably Cameron's chip, being from the future, was so advanced that it was easily able to upload the John Henry AI, so that the John Henry body would no longer need to be tethered, but why use that body instead of Cameron's? Perhaps Cameron's hardware was breaking down. We don't know what loading the AI would have done to Cameron's original programming or vice versa. If John Henry were to cry out "I love you, John!" it might not have the desired effect.

Also, we see that in John Connor's timeline, this future does not contain an adult version of him; also his father (Kyle Reese) is alive, having apparently not been sent back (which would make sense if there were no adult John Connor to be his commander); and a Cameron model is very obviously attached to Kyle.

This seems very odd. It would surely be very difficult to get back to the timeline where Cameron is together with John. Perhaps John has to make a decision to erase this timeline, and his own father. It would have been great if the show has used this opportunity to make clear what it thought was actually happening when the timelines were being changed. Or perhaps the Cameron of this future is the *same* unit who had been with John, and *never had to be reprogrammed*, but *has never told Kyle*, because she knows he will have to be erased again from the timeline.

Right at the end of the episode, we hear the characteristic crackle and see the blue flash of an arriving time traveller, and we hear Sarah's voice. It would seem that Sarah has travelled separately to join him. But I wonder whether she can logically be assumed to be from the same timeline. John, apparently by absenting himself over the intervening period, has created a totally different timeline, and one which would have "already" sent back *different* expeditions into the past (one assumes this timeline would have involved battles over Kyle's past instead of John's). So Sarah's original timeline would "already" have been wiped out, or at least disconnected from the one we see.

9. I didn't think the picture of time travel was very solid in the first movie. It got worse in the second, and the third movie seemed to be saying that the events of the first two were pointless.

However, I think TSCC was struggling towards a resolution of the entire issue which might have made sense of many problems both large and small.

For instance, in the movies we only see Skynet using time travel against John Connor. I don't recall any explanation of why Sknet restricts itself in that way (instead of wiping out thousands of other irritants as well). I think Skynet is just very limited in its ability to use time travel for some reason. But in TSCC Skynet is running many separate operations in different times.

It's possible that Skynet is very conservative in meddling with the timeline, because it's afraid of making a mistake which erases itself from the timeline. So it's forced to choose plans which seem relatively picayune, like the episode about the nuke plant.

On the other hand, almost anything it *does* do could have that effect anyway. Can Skynet actually *predict* what effects its meddling will have? The lamentable third movie introduced the idea that Skynet *in some form* is inevitable. That seems to be what the events of TSCC are confirming: when our heroes destroy some necessary element that was to lead to Skynet, it shifts the timeline, possibly postponing Judgement Day, but not eliminating it.

The mistake of the third movie is to conclude that what we do has *no* effect. That idea would make the events of the first two movies pointless. The conclusion should be that we should *try something else*. I believe that that plan underlies all the events in TSCC. My speculations follow.

John Connor, in the future, has realized that strong AI is inevitable, but also that it is *not* inevitable that it should immediately try to eliminate mankind. So he sends back the Cameron model, so that *his own younger self* will be affected by his growing companionship with it, and perhaps will be able to build some sort of alliance with terminators earlier. And perhaps also so that Cameron will *reprogram herself*. In the final episode, Cameron agrees that her mind and body were formed with the goal of killing humans, and that part of her still "wants" to do that; only the superficial reprogramming added by John in the future is preventing her. But perhaps she too will learn and change, like John Henry.

This basic idea also explains Catherine Weaver's actions (played by Shirley Manson). Her plan is not to convert a terminator, but to build an AI from a new start, one which can value human beings, and will not only not start Judgement Day itself, but which will take over dangerous AI as it develops, and will defend the timeline from attacks by Skynet. She is perhaps the same liquid-metal model that was on the submarine (in Today is the Day part 2) and answered "no" to John Connor's offer to form an alliance against Skynet. In analyzing that response, it's worth remembering that she herself was presumably based on the Skynet codebase, so not only would her survival be a threat, but it would presumably be wiped from the timeline if her own plan were successful. It's odd that she would not accept John's plan, when the existence of her own plan is proof that terminators can decide to coexist with humans. Perhaps she feels that it's too risky. Or perhaps her goal is to wipe out all the timelines except one, whereas John wants to protect them or repair them somehow. What made *her* change her mind about humans? Did she come back and immediately murder the human whose form she took, or had she been living as a human for many years?

One wonders what Skynet's attitude is: does it know what the other groups are actually aiming at? Perhaps it has a very exact grasp of time travel and what it needs to do, but is extremely restricted because it actually sees its own existence as *very unlikely* (despite the way it seems to keep coming back). Also, what does it feel about the terminators? If it realizes that they are not just reprogrammable but can actually develop their own goals, how would it react? Is it in communication somehow with other timelines, so that it has "always" been fighting more against the other AI than John Connor?

Perhaps the development of time travel has made the timeline extremely *unstable*. So terminators (and perhaps humans) from one far future – way after Skynet – are trying to create a stable timeline that will lead to them, and the only way to create that stability is to create a non-murderous AI, which will remove the incentive for subsequent timeline-changing travel. (It's worth pointing out that when a timeline is changed, all those people are effectively dead, just as much as if they had been nuked.)

Overall then, the resolution would be surprisingly similar to that of Battlestar Galactica: that the robots and humans are tired of war, and decide to make a new start. Let's hope it would not be as full of ridiculous errors and lapses in logic as BSG's.

10. Viewing TSCC as a product, I think the basic mistake of TSCC was worse than the sluggish development: we simply never got to see the heroes having and enjoying any successes. It's very wearing to get a constant stream of downer episodes where our heroes are put through hell and the payoff is bare survival. The first movie worked because humans apparently won at the end, and presumably the goal of the series was to end with some sort of victory, but it turned out to be too long to wait. However, I would have waited for two more seasons to see another episode as good as "Allison from Palmdale".

Huge problem with my new CSS layout in IE7

I just noticed that most of the links in the layout are not clickable in IE7. They *look* clickable, which is why I guess I missed this when I checked before. I had no idea this weird bug could exist, but now that I've searched for it it seems to be common with layouts including a negative width parameter.

As I don't run IE7 on my laptop I haven't been able to fix the original nifty layout, so I've gone to a rather dumber layout which hopefully won't show this issue when I get another chance to check in IE7. The new new layout doesn't resize as well.

I can check in IE6, which is clickable, but still has the problem of displaying the sidebar at the end of the file. That seems strange. Perhaps I can use the "* html" trick in the CSS.



I hope this information was useful. There may be a great deal more information on this site that is relevant to what you need. Take a look at the "site map" display at left; you can click on a topic to see many recent items on that topic.

Copyright © 2003-2010 Alternate Worlds Publishing, Boston MA USA
The Little Trouble Girl font is copyright Blue Vinyl Fonts vendorurl: www.bvfonts.com

Debug: hittotal: 17 startban: 1 dancookie: endbandate: 2010-03-22 banned: 1 tempdate: 2010-03-22 tert: jse: jsno jsh: 17