Postings are provided as is with no warranties, and confer no rights. Opinions expressed here are my own delusions; my employers at best shake their heads and sigh, at worst repudiate the content with extreme prejudice, whenever it manages to appear on their radar.
This blog is unsuitable for overly sensitive persons with low self-esteem and/or no sense of humour. Proceed at your own risk. Use as directed. Do not spray directly into eyes. Caution: filling may be hot. Do not give to children under 60 years of age. Not labeled for individual sale. Do not read 'natas teews ym' backwards. Objects in mirror are closer than they appear. Chew before swallowing. Do not bend, fold, spindle or mutilate. Do not take orally unless directed by a physician. Remove baby before folding stroller. Not for use on unexplained calf pain.
A nice FLAIR (FLuid Attenuated Inversion Recovery) view from the not-too-distant past. Every abnormality you can see on this scan (and there is more than one!) is asymptomatic at present. Alongside is a picture of me walking the walls at Fremont Studios, a sign of a damaged brain.
Just a little update on the spam situation here at SiaO.
I am overriding the default site spam scores with the score for flagging comments for moderation at 5 and the score for automatically deleting comments suspected to be spam at 12. These two settings lead to probably a 12-15 possible spam comments/pingbacks to review (with about a 1% overall false positive rate) and between approximately 2450 and 5050 comments flagged as spam (after a one week review period of every single one of them, I have stopped reviewing those flagged as actual spam with the solitary exception of trackbacks I know of because they come from other posts of mine).
Currently most pingback splog spam is filtered out, except for a few core splog crap sites that for now I simply delete by hand when I see them.
As of midnight (seven hours and one minute before this blog went live), the active filtered spam count was 3587, with approximately 64% single word comments with links to spam sites and 36% with links within the comment text as well.
Initial investigation, attempting to categorize the nature of the spam (pornography vs. male enhancement vs. female enhancement vs. erectile dysfunction pharmaceuticals vs.other pharmaceuticals vs. Rolexes vs. other random crap and so on was abandoned due to moral despair.
With my upcoming trip I guess what will suffer most is:
So sorry in advance for the troubles there. Though with as much spam being caught, I think readers are able to avoid the bulk of the real worries (if it bothers you, consider registering on the site!).
This spam weather report brought to you by ☔ (U+2614, aka UMBRELLA WITH RAIN DROPS)
I have it on good authority that The Poor Man has gone off the air, for good this time. Some truly sad news, as anyone here who read them would readily attest to.
In memoriam, I am going to repost a bit of my favorite post of theirs, the post that described the Wanker-Wingnut continuum, for readers to enjoy.
The Poor Man will be missed by many, including me....
Wed 23 Nov 2005 The Wanker-Wingnut continuumPosted by The Editors under golden winger[74] Comments A reader asks: Darling, Every week you give out a “Weekly Wanker” award for the biggest wanker of the week. But the trophy for the Weekly Wanker is the “Golden Winger”, which implies that it’s really an award for wingnuttery. So I’m confused. Is it an award for wanking, or wingnuttery? Still Craving Your Body,Julia Stiles The answer to this question requires that we turn to SCIENCE. “But The Editors,” you implore, “what is this SCIENCE of which you speak? It sounds terribly frightening and dangerous!” God, you are such babies. SCIENCE is nothing to be afraid of - it is merely a method of inquiry which makes use of empirical data about the world and fits it into an abstract, predictive model. For example, suppose you ask me the question: “what is the volume of an average human being?” This is a very stupid and pointless question, exactly the sort of question I would expect someone like you would ask. Why do you care? If I refuse to answer your question, you may become violent, so I will attempt to do so, quickly, by making a few simplifying approximations. First, in order to make the math simpler, I will assume that the average person is a uniform sphere, 3 feet in diameter. Why, when I look at the problem that way, it turns out that I’m really quite extraordinarily tall and svelte! Indeed, I’m far too attractive a physical specimen to have to answer your damn fool questions, so I roll you out the door like a beachball full of cottage cheese and have the chicks from “Coyote Ugly” over for a week-long orgy. All thanks to SCIENCE! Using these same powerful analytic tools, we can begin our investigation. First, we abstract the the concepts of “wankery” and “wingnuttery”, and represent them as the perpendicular x and y axes of a graph, respectively. We define our zero of wingnuttery as Charles Darwin’s classic “The Origin of Species”, and our zero of wankery as Steve McQueen, the only man to live through the 1960’s without ever having a stupid haircut. Moving upwards from our axis of wingnuttery we pass through lines of increasing wingnuttiness, while moving to the right from our zero-wankery line implies ever higher degrees of wankitude, until, after many, many sheets of graph paper, we find ourselves at the Burning Man festival. With this as our guide, we can objectively plot the wingnut and wanker ratings of any individual, and determine what relationship exists between these two seemingly unrelated characteristics. Figure 1: Wingnuttery vs. Wankery(Click for larger image.) Firstly, we note that Paul Krugman, Frank Rich, Nicholas Kristof and David Brooks all lie on a single line which exactly bisects our graph. This is no coincidence: this line of equal wankery and wingnuttery is used by the NY Times to determine who gets a regular spot the editorial page. (Note that by projecting this “Line O’ The Times” out, we discover that Assrocket will soon have a regular gig at the Grey Lady.) We also observe that people may evolve over time along lines of constant wankery, although only in the direction of increasing wingnuttery, which, like entropy, can only be created, never destroyed. Finally, we note that the quadrant of high wingnuttery and low wanking is completely empty. You can have wanking without the wingnuttery, but not wingnuttery without wanking. So, Ms. Stiles, the answer to your question is: both! When determining each week’s Golden Winger, we at The Poor Man use our own patented technology and proprietary analysis techniques to find out who achieved the maximum distance from the (0,0) point of sanity and dignity.
Wed 23 Nov 2005
A reader asks:
Darling, Every week you give out a “Weekly Wanker” award for the biggest wanker of the week. But the trophy for the Weekly Wanker is the “Golden Winger”, which implies that it’s really an award for wingnuttery. So I’m confused. Is it an award for wanking, or wingnuttery? Still Craving Your Body,Julia Stiles
Darling,
Every week you give out a “Weekly Wanker” award for the biggest wanker of the week. But the trophy for the Weekly Wanker is the “Golden Winger”, which implies that it’s really an award for wingnuttery. So I’m confused. Is it an award for wanking, or wingnuttery?
Still Craving Your Body,Julia Stiles
The answer to this question requires that we turn to SCIENCE.
“But The Editors,” you implore, “what is this SCIENCE of which you speak? It sounds terribly frightening and dangerous!”
God, you are such babies. SCIENCE is nothing to be afraid of - it is merely a method of inquiry which makes use of empirical data about the world and fits it into an abstract, predictive model. For example, suppose you ask me the question: “what is the volume of an average human being?” This is a very stupid and pointless question, exactly the sort of question I would expect someone like you would ask. Why do you care? If I refuse to answer your question, you may become violent, so I will attempt to do so, quickly, by making a few simplifying approximations. First, in order to make the math simpler, I will assume that the average person is a uniform sphere, 3 feet in diameter. Why, when I look at the problem that way, it turns out that I’m really quite extraordinarily tall and svelte! Indeed, I’m far too attractive a physical specimen to have to answer your damn fool questions, so I roll you out the door like a beachball full of cottage cheese and have the chicks from “Coyote Ugly” over for a week-long orgy. All thanks to SCIENCE!
Using these same powerful analytic tools, we can begin our investigation. First, we abstract the the concepts of “wankery” and “wingnuttery”, and represent them as the perpendicular x and y axes of a graph, respectively. We define our zero of wingnuttery as Charles Darwin’s classic “The Origin of Species”, and our zero of wankery as Steve McQueen, the only man to live through the 1960’s without ever having a stupid haircut. Moving upwards from our axis of wingnuttery we pass through lines of increasing wingnuttiness, while moving to the right from our zero-wankery line implies ever higher degrees of wankitude, until, after many, many sheets of graph paper, we find ourselves at the Burning Man festival. With this as our guide, we can objectively plot the wingnut and wanker ratings of any individual, and determine what relationship exists between these two seemingly unrelated characteristics.
Firstly, we note that Paul Krugman, Frank Rich, Nicholas Kristof and David Brooks all lie on a single line which exactly bisects our graph. This is no coincidence: this line of equal wankery and wingnuttery is used by the NY Times to determine who gets a regular spot the editorial page. (Note that by projecting this “Line O’ The Times” out, we discover that Assrocket will soon have a regular gig at the Grey Lady.) We also observe that people may evolve over time along lines of constant wankery, although only in the direction of increasing wingnuttery, which, like entropy, can only be created, never destroyed. Finally, we note that the quadrant of high wingnuttery and low wanking is completely empty. You can have wanking without the wingnuttery, but not wingnuttery without wanking.
So, Ms. Stiles, the answer to your question is: both! When determining each week’s Golden Winger, we at The Poor Man use our own patented technology and proprietary analysis techniques to find out who achieved the maximum distance from the (0,0) point of sanity and dignity.
Although I suppose the Internet Archive will carry that content forever, the fact that I thought The Poor Man would be up forever has shaken my confidence on this point so this one bit is something i wanted to have captured, just in case.... :-)
This post brought to you by ꆑ (U+a191, aka YI SYLLABLE NUT)
This is the first blog in a series that will talk about the table driven text service, a new feature added in Vista which, among other things, deals as decisively as possible with two conflicting issues:
There are just so many different input methods that are too complex for one but do not require the intense complexity of the other....
And thus was born TableTextService.dll, a file that looks for a specifically formatted text file to drive it and does its own work to sit atop the Text Services Framework.
Yeah!
Here is some basic info about it:
OverviewTable Driven Text Service is possible to define and customize your own Text Input Processor (TIP) on Text Services Framework for easier way. You prepare one text file which defines system, some configuration information, and mapping table of keystroke to text, mapping table of text to phrase. We called it as dictionary file. Some dictionary files are already included on Vista product.You could find below the keyboard layouts from the General tab, Add… push button in the Text Services and Input Languages portion of the Regional and Language Options control panel applet, Keyboards and Languages tab, Change keyboards… push button: Chinese (Taiwan) – Chinese Traditional Array (version 6.0) Chinese (Taiwan) – Chinese Traditional DaYi (version 6.0) Chinese (PRC) – Chinese Simplified QuanPin (version 6.0) Chinese (PRC) – Chinese Simplified ShuangPin (version 6.0) Chinese (PRC) – Chinese Simplified ZhengMa (version 6.0) Yi (PRC) – Yi Input Method (version 1.0) Amharic (Ethiopia) – Amharic Input Method (version 1.0) This picture shows adding above seven keyboard layouts.
OverviewTable Driven Text Service is possible to define and customize your own Text Input Processor (TIP) on Text Services Framework for easier way. You prepare one text file which defines system, some configuration information, and mapping table of keystroke to text, mapping table of text to phrase. We called it as dictionary file.
Some dictionary files are already included on Vista product.You could find below the keyboard layouts from the General tab, Add… push button in the Text Services and Input Languages portion of the Regional and Language Options control panel applet, Keyboards and Languages tab, Change keyboards… push button:
This picture shows adding above seven keyboard layouts.
Upcoming posts in the series will talk about the text file format and the features it exposes, as well as how you would create your own text files.
And I have mentioned some of own forays into this area myself, in prior blogs:
And I will be (in addition to some of these examples) using additional examples to show more about the text files and how they work.
I also hope it will be a lot of fun....
So if everyone could make sure their seatbacks are in an upright and locked position and that all of their carry ons are stowed, this flight will be taking off, right now!
This post brought to you by ✈ (U+2708, aka AIRPLANE)
Written several days ago...
You may recall when I posted I guess we're not exporting the Zune just yet. It was a bit over a year ago....
In it, I pointed how that despite the Zune's clearly implied Unicode/CE roots that the full text display of large parts of Unicode was not there due to the lack of font support. And that furthermore, unlike the CE/Windows Mobile world the ability to add one's own fonts was not there.
I even took a picture of my Zune device while displaying an album with letters in the song titles outside of the fonts being used (click the link above to see it).
Anyway, then I did more recently blog Hats off to you, you naughty people...., which talks about a report that showed a successful Zune hacking job to get additional fonts on the device.
That post I linked to did not give instructions, but many people found instructions -- e.g. posts like How to: Zune Non-US Character Hack - Do It Yourself -- about which I'll just say that there is I believe a violation of one's license here since having these fonts on your desktop machine is not license to copy them to other places (or devices)....
Now in the meantime they have released Zune 2.0 and even made the software update available downlevel (incidentally and quite ironically also fixing one of the bugs that led to this decision, which was done in part for other potential applications that were not being updated), but to get back on topic the device side of the update includes an updated font that includes the same coverage as many of the core fonts in Windows for scripts like Latin, Greek, and Cyrillic!
Now I had no music in languages like Greek or Russian, so luckily Sergey was able to get a Zune showing off language support and I brought in my camera to take a pctures of it:
And what is even more fun s thst I brought my new 80gb Zune in, turned on wireless, and officially became part of the social by getting a song on my device. You can see it in these two pictures, with my Zune sitting on top of a very dusty dell Latitude D800 keyboard:
This is very exciting news, though I really am still unhappy that they are not finding a way to allow customers to add fonts.
By which I mean a supported way....
Because even ignoring the font licensing rules and the tortuous nature of the steps in How to: Zune Non-US Character Hack - Do It Yourself, this is the kind of feature that could really enable a much more globally satisfactory experience, even beyond target markets.
If you live in one of those markets beyond the target, I would definitely encourage you to let them know! :-)
Oh, before I forget -- Goldie, there is a poster of Aimee Mann in my office, it has been there both times you were in meetings in my offce. Since I had the camera out I took a picture of it:
I suppose there is a lot going on if you take in the whole shelf, perhaps that Spies & Mango Pies bird on the right distracted you, or maybe it was the three cows....
:-)
This post brought to you by ಢ (U+0ca2, aka KANNADA LETTER DDHA)
I have been neglecting the Suggestion Box as of late, so I figured I should cover something over there. This one comes from Gé van Gasteren:
My problem is caused by two circumstances:1. In the Netherlands, most keyboards have US-style keytops with one extra key (and a smaller left Shift key). The Windows keyboard layout for Dutch doesn't match these keytops, and doesn't allow easy typing of accent characters, so most people use the US International keyboard.2. Dutch has sequences like: ’t ’n ’s-Gravenhage ’98which should be written with a single curly close quote (U+2019).The problem is that these sequences usually come out with a single curly open quote (U+2018) because of some smart-quote routine.To try and avoid this behaviour, I have tried (with MSKLC) to make the quote key on the US-International layout produce a proper close quote, but then that key stops working as a dead key, and produces two close quotes every time it's typed!This error does not occur when I put the acute accent on the quote key -- maybe because it's in the ASCII range?A work-around I came up with was to include the necessary sequences in the dead-key table, but multiple code units aren't allowed there, as documented amply in your blogs...If there is a way to create a proper keyboard layout, I would publicize it and try to get some language sites promote its use. I already got one supporter: a Nobel-prize laureate with last name: ’t Hooft, who receives lots of letters with his name containing the meanwhile very annoying close quote. Actually, he indicated to me that he has tried to convince Microsoft to change the Windows keyboard layout for Dutch, but without success. That would be a better solution of course, if possible.All help in this matter is greatly appreciated!
The first issue is entirely by design and Windows has noted the market preference for the US International keyboard layout in the Netherlands for quite some time. So there is not much to fix there with that one (well, ignoring bugs like the problem I noted here).
The second issue is an interesting one -- in part due to an issue that I have talked about before in posts like this one and this other one but will not discuss further as I have been told that there are people who think I am "unreliable" and " don't get along well with others" because of my diatribes about the "features" just because they cause problems in "uncommon scenarios".
Whatever.
If you don't like Office's "brilliant quotes" feature here then turn it off (I do in every Office application, every version I run).
Or alternately, feel free to call product support and suggest that better handling within languages like Dutch might help me shut up more often, which I am sure the feature team would appreciate getting hints about. :-)
The other half that I can blog about without pissing off random people is technically user error, but to be perfectly honest it is a case that (were I still the development owner of MSKLC) I would want to see handled in MSKLC directly rather than requiring the user to do the extra work here....
Let me explain.
First let's put up the keyboard layout so everyone knows what we're talking about:
That is the key in question, also -- notice the nice tooltip listing all of the dead key pairs....
Oh and before I forget, I have a friend who claims that she skims most of the blog posts but skips the keyboard ones entirely. To test this theory, I'll say Hi Goldie! here and since she skips these "boring" keyboard posts she'll never see that I said hello.
Back to the post....
Okay, so let's right click on that key:
We have a nice set of options here, and we will go to the view for all shift states. It brings up this handy dialog
which we can easily change the dead letter from U+0027 to U+2019 as Ge would like....
Okay, so we're done now, right?
Let's go back to the main dialog and take a look:
Do you see the problem here?
We did change the dead letter properly, but let's look at the MSKLC help file warnings on dead keys in validation, which include this text:
Last entry in a dead key table should use a space as its base character
Now the convention is actually supposed to get a bit further beyond this -- the last key should include a spacing version of the dead key letter.
Do you see it now?
That last entry was not updated!
That reminds me, I have another regular reader who clams to read every post. She knows her name and who she is so I'll just tell her Hi! and leave it at that. We'll see if she finds this without the name to search by :-)
Where was I?
Oh yeah?
So, let's go back and update it now:
There we go.
Let's look at the tooltip again now:
That is more like it!
Now to get the U+2019 you do have to hit the space bar after typing the dead key, but that is the way dead keys work when you want to make them live and have them show the character.
But notice how MSKLC did not change the last entry (which by convention is supposed to be either the same character or (if the original dead key is non spacing) a spacing version of it) to match this convention?
Think of how much trouble MSKLC could solve in keyboard maintenance if it would do little usability tricks like this, or failing that at least validation could put in a warning when the convention is not followed?
(I'd prefer to change it automatically, personally -- but any change would be better than the current confusion....
This post brought to you by ’ (U+2019, aka
Yesterday was a fairly exciting day....
I had to fly down to San Francisco to get my visa for that trip to India I mentioned.
You have to be at the Indian Consulate before 11am and then be there between 5:30pm-6pm to pick up your visa, if you want it all done in one day....
And you must be at the one on Mission, not the one on Arguello -- I had to tell the cab driver he was mistaken on this one and he actually refused to let me pay after he realized he was trying to take me to the wrong place -- he called it double or nothing on the fare and was a very honorable man who I offered to pay anyway....
I have to say (and this was a shocker to me!) that this is an experience that I would highly recommend to anyone who has the time and who is making such a trip!
Why?
Well, the truth is that every person who needs a visa in a hurry has a story. And most of them didn't mind telling their story while they are waiting.
And I can guarantee you one thing, a thing that several people there agreed with me on -- at least half of the people there have story that is more interesting than yours! :-)
These are stories toed up with culture here in the USA, culture in India, technical issues. religious issues, visa and immigration issues, and at the very end of the day a room filled with what looked like hundreds of people, all eagerly waiting for their visa.
Oh, here is mine (with my passport number and the visa number X'ed out:
It is nicely taking the space on page 17 of my passport now. It was going to be a 12 month business visa with multiple re-entry but since my letter was from the people in India inviting me to the meeting rather than my employer, the folks who had to submit the paperwork were worried that even though the application was filled out properly (my employer was listed but it stated that my employer was not sponsoring the visa), that it would be turned down and I would have to either stay overnight in San Francisco or fly back the next day.
And they truly did not want that -- we are talking about a dedicated group of people who know that every person waiting there for a visa does have a story and an interesting one to boot.
I mentioned that it wasn't technically a conference but they assured me that the visa would cover whatever I did in the way of meetings or presentations or being a tourist or whatever. They were truly amazing.
Having nowhere else to really go (and having an implicit fear of the hills of San Francisco with the scooter), they even let me stay while they closed down for lunch, and several people were interested in the presentation I was perhaps going to be doing at Anna University while I am there (suggested by Soma and few others) about Indic and Unicode, with some bits on the very real problems in the conflict between passion about language and passion about technical issues.
"And you will be the bridge between these rival groups?" one person asked me.
"No, I am not quite that important," I admitted, "but I'll talk about the need for more people to properly respect both sides of the argument and in effect become the bridges, by example. Maybe some of the people at one of India's largest engineering universities will learn about it enough become inspired enough to begin to make progress in helping others understand."
That answer caused many to smile, and one person pointed out that was the motto of the university -- Progress Through Knowledge.
I could not tell whether the smiles were due to what was perceived as naive optimism or what was recognized as earnestness if purpose, but either way seeing them look at examples and understand what I wanted to communicate made me realize that the message was one worth getting out.
I will be blogging more about it while I am there, as well as about my interactions and conversations with people.
After a very exhausting but rewarding day in San Francisco I find myself quite fired up about my trip! :-)
This post brought to you by த (U+0ba4, aka TAMIL LETTER TA)
Nothing technical, though at least some explanation of what I have been up to for the last few days for people who were (a) interested, (b) concerned, or (c) both....
The beginning of the story isn't too terribly interesting: an old friend comes in from out of town and tells me she wants to get really drunk all weekend. As regular readers here know, I had no plans. And this is somebody I have gotten drunk with a few times over the years. But that part of the story is pretty ordinary, so I'm going to start the telling of the story in the middle. After getting monumentally drunk twice without ever leaving the house, with the person who has to be one of my bestest friends over the years -- a PNL (Perfectly Normal Liz), the secret inspiration for normaliz.dll in Windows. My friend Liz....
Turns out that she is dying -- in the middle of the end game of a Grade 3 astrocytoma with poor differentiation. She just mentioned it, after we wake up on Monday morning. Late Monday morning.
How'd she manage to go two days without mentioning that she expects she might have only weeks, I tell her I may never understand.
Talk about burying the lead!
I am reading to her. Amit Chaudhuri (by request, she read my previous posts talking about him). The words seem to soothe her, even when (or maybe because) one of themes is death. She wants me to read the intro to Afternoon Raag again (fourth time for her now):
...The music teacher is listless today.He does not respond.My mother is just a little irritated as she sings, but she is afraid, too, of something she does not understand.The music teacher has merged with the sofa behind him, momentarily indistinguishable from the soft, indifferent contours of the furniture.with the disturbing patience and resignation of furniture.His wife, his widowed mother, his brother, his brother-in-law, his sister, his four children,the jewelled constellation that appeared at his birth,are moving away from him. He is alone, sitting on the carpet, leaning his back against the sofa.Behind this moment of serenity in this small, calm room,with its clear, cool space flowing in and out of a listlessness,is something liquid and grieving, something that cannot tolerate its own shimmering presence,but melts away from itself all the time, like the giant walls of rain, or tears, or something else.The music teacher is dying.He does not know it, but he will be dead in less than a year's time.He will not see the rain again.He does not know it. His ignorance of death surrounds him like a halo, an intimacy with God.My mother does not know it.The rain does not know it.The world is being washed clean by the rain, Something in us, human but one with the season,is also being washed clean, tear after tear, cloudburst in silence....
Something about the image of the music teacher singing with the young man's mother, and this special American Beautyesque status of someone who the voiceover is explaining will be dying. I'd take Liz over Kevin Spacey any day, not just due to my glandular bias....
The alternate title of this blog is a play on words on part of the last sentence in the intro ("the moment perfected not by art but by mortality") -- THAT is the line she wanted to hear again and again.
Her eyes are now closed, but her chest is rising and falling.
It is not in my nature to stare at Liz's chest, and it has never been so in all of these years. But I am afraid that she could actually die right here before the weekend is over. So I am watching for those signs of life very carefully. I feel ashamed to be thinking that way, though I admit the shame comes from the fact that it may be true. Momentarily I have confused myself - would the thought somehow be appropriate were the stench of inevitability not hanging over the situation, daring me to breathe in? Of course not! Then it would just be weird. So why is the increased likelihood a reason for the thought to inspire shame in me?
Am I afraid that if it happens it will be me who wished it somehow? I'm not superstitious. Hell, I'm a Libra, and Libras are not superstitious at all.
I have continued reading the story, while I think all of these unworthy thoughts.
But I stop, because I think she has fallen asleep. Instead I just look at her, remembering the other times I had seen her fall asleep in the past -- maybe two dozen times since the early 90's. How could she not live forever?
She opens her eyes and smiles sadly, I think she is echoing the sad look on my face. Strikingly beautiful, she whispers softly to me:
Dear, if you take a picture of me like this, you'll be in the afterlife before me.
She has already hidden both batteries for the camera so I'm not sure what she's worried about here.
There is no way to tell her she is going to be fine here. She has weeks left (or maybe months? I know that she is not planning more treatment and she is both further and farther into this then is healthy for her -- but how to judge that in such circumstances?), at best. She knows reassurances would not be true, and so would I. And I am a sucky liar anyway.
Wasting three days of her remaining time with me, drinking alcohol and eating lousy food? I feel unworthy.
If I had only that short of a time left, I would not waste three days on me -- I wouldn't have given me past that earlier talk in the airport.
Perhaps her judgment is suffering.
I feel like I have been bloated with self importance about my MS. Writing expository text like "multiple sclerosis isn't a death sentence, its a life sentence...." that ignores the fact that my friend is looking at a death sentence. And wasting 3+ days of it with me. She has said goodbye to her family/friends in Alaska, and now she is saying goodbye to me. She actually has a plan, an itinerary to say goodbye to people -- who and when. One she intends to follow, in order of "importance" to her, 'til the end.
There is no way I rate the spot she gave me.
The look on her face, in her eyes, is curiosity -- barely restrained. I prompt her to ask me her questions,whatever they are. We have no time left to "wait until next time" since there will be no next time.
"I'll tell you later, Michael," she says quietly. "Read some more, please?"
She looks up at me with the same eyes she probably had as an eight-year-old. There are almost tears in my eyes, suddenly. I manage to hold them back, albeit just barely. She smiles at me, guiltily, and says:
I'm sorry, but I noticed you were logged into your blog as yourself on that computer you let me use and I wrote a post in your blog. You aren't supposed to leave yourself signed into your blog if you are going to let someone who you know reads your blog use the computer. Think of this as an important lesson in feeling violated in the cyber sense....
She pauses, and I am momentarily angry -- but not about the blog. I'm angry that she did not tell me she was dying for the first two days she was here. There is no way we would have gone through as much alcohol as we did, I tell her. There is simply no way I would have wasted the time getting drunk and sleeping it off.
"Michael, that's why I didn't tell you!" she tells me, with some force, and continues -- "There's never time to teach everything, so the important things must take precedence. And example works quickest. Do you know the proverb: if you do not wish a thing to be read--"
"Don't blog it," I finish the sentence.
She knows I recognize the quote she stole from a John M. Ford book, smiling not only that I recognized it, but that she knew I would (I'm such a fucking geek. Luckily, she is too).
"You had to learn that lesson, you really did," she suggests.
Time to change tacks. I offer to take a leave of absence and go with her, to stay with her until the end. She is after all kind of my soul mate after all. Well, a platonic version of a soul mate. No games, no lies, no matter how long we'd be out of touch we'd always managed hook up again. Anyway we could walk the earth, like Kwai Chang Caine from Kung Fu, only doubles style. Of course we aren't Chinese, but neither is David Carradine. I keep rushing on conversationally and I realize she has already decided to say no but is too polite to interrupt my blather, so I stop, kind of run out of steam.
"That's sweet, Michael. But some of the people I want to see really don't want to see you and some of the others, you don't want to see them. A few are both. That's the kind of thing you never paid much attention to, I know..."
"How do you mean?" I ask, curious.
"Well, you know how I never managed to be visiting all that much when your ex-fiancé was around?"
"Yes?" I say. Funny, I never had noticed that before. Though we did still talk on the phone then, I don't think I remember seeing her even once during that time.
"I didn't like her, I thought she was trouble for you, just by your description, from the very beginning when you were just friends."
Okay, now I was mad. "If that's true, why didn't you tell me? Could have saved me a lot of trouble!"
"No way," she countered, shaking her head. "Some mistakes, you have to actually make on your own or you'll never learn the lessons. You wouldn't have heard me anyway."
Suddenly I feel exhausted, too. I actually do have a few tears now, which I wipe away impatiently. Something must have gotten in my eyes. You know, there is something so unfair about all of this. I think it was just in the last few weeks that I said I wanted to spend New Year's Eve alone since the people I had been spending it with previously always seemed to disappear before the next year was up. I definitely didn't need such a literal interpretation of my words to pop up!
"Whatever happened to Jackie?" she asks, completely changing the topic.
Confusion sets in now. "You've got to be kidding, right? I never went out with Jackie, we just hung out some around OSU for a bit. She lived with Gary and his girlfriend."
"You should find her and ask her out. I think she liked you."
I shake my head at that. "You only think that because you met her -- like how Luke guessed that his sister must be Leia, not a hard feat since there were no other women in his life so of course if he had a sister she'd be the one."
"Leave it to you to come up with a Star Wars metaphor, dear. How about Amy? She came all the way from Connecticut to visit you, I believe??
"Yes, that's true. Because she wanted to see if we could be more than friends. We decided we couldn't," I pointed out.
"How about Maryann? or Renae? or Melissa? or Tina?"
Boy she was dredging up the past. "Okay, in order -- was dating my best friend from high school and is last I heard sorta seeing her ex-husband who she has a child with, kissed once and that's it but no sparks, broke up with to move to Seattle -- prototypical location relation[ship], briefly considered a relationship but thought it would interfere with work so we mutually decided not to go there."
I needed to get us off this line of attack, quickly -- otherwise she was going to be naming every woman I even met in Columbus a decade and a half ago, and then move on to Seattle! "On the whole, trying to fix oneself up with past not-so-much-flames and almost flames and never flames and the flameless is not an effective dating strategy."
"That's probably true," she allows. Suddenly she seems sad about me not dating any of these people who it either didn't work out with or didn't ever happen with at all.
I decide to change the topic yet again. "What does it mean to start a new year in such a.... well... negative kind of way?" I ask her.
"It means there is nowhere to go but up, assuming you decide to live your life at some point."
"Fair enough," I offer, "but that is the opposite of like every superstition that exists for New Year's Eve."
"I thought you said Libras aren't superstitious."
No way to win this argument, I decide. "Maybe it will be good to have something genuinely tragic to clear out all of the self-involved crap...."
"Michael, it's eight hours to midnight. You may as well talk about that stuff on your mind now, while we can."
She has already ruled out the parties available to us at Showbox and Trinity and my neighbors' apartments. A quiet night is all she wants -- no sense celebrating a year you know you can't finish, or the previous year (when you found out), she says.
I tell her we will talk. So we do. It doesn't take too long. I think I proved my hypothesis about paying attention to what's important -- most of what days ago consumed me now seems kind of not worth bothering with. Afterward, we talk about other things, like how her family feels about this itinerary of hers (they don't like it, either). Something we have in common.
I look at the clock, it's only three hours to midnight. I get up to grab some food from the kitchen.
"There are some practical matters we can talk about," I suggested. "Travel on January 1st is hardly stress-free. Did you want to put it off a day?"
"Sorry, Michael -- no time. I have to go see Bob tomorrow. Unless you plan to say goodbye the way he will, I don't want to put him off any longer."
Bob and Liz were legion, at least in volume if nothing else. She claims he is the only one she completely let herself be with, no filters and no pillows to muffle sound -- she claims she was unable to have an orgasm until she met Bob. The point is clear, and I have no energy for crossing those lines, even jokingly. Already at this rate we'll be asleep before midnight. "You win," I allow.
"Advice for you, Michael -- when you turn a woman down, she never feels like she won...."
The chuckle slips out of me. "I know you don't mean it. Anyway, remembering how you described Bob, you'll need to save up all your energy if you're gonna visit him, hon."
She suggests "Can you dance to a song or two, at least?"
"Of course! Well, at least until I fall over. If I get to pick the music, I mean." No sense being too eager here, I realize -- she used to love Journey, if memory serves.
I lasted a lot longer than I thought I would -- I don't collapse until we hit song number nine, and the line of the Jimi Hendrix song where I collapsed ("And so castles made of sand, fall in the sea eventually.") may have had more to do with that then actual exhaustion. That song was her idea, not mine, by the way....
We don't fall asleep until after midnight but we did not do the New Year's countdown, and we're both up and awake to head for the airport in the morning.
"Do you want company at the gate?" I ask, reminding her how easy it is to do that.
"No," she says, "I'm okay. You get home and write this weekend up. I want every word you blog to be true -- don't spare my feelings, it may be my last appearance I'll be able to read about later."
I kiss her, for real -- possibly the first real kiss we've ever shared -- and tell her "I'll do my best -- so help me blog."
"That was really nice," she shivers. "Trying to make me regret no staying another day or having you come with me, are you?"
"Not at all," I respond, smiling, "I'm just trying to punctuate the departure."
She smiles, a little sadly. "I was about to say that kiss was inappropriate, but I changed my mind. You know, that must be the first time you didn't see me as dying since I told you I was, if you know what I mean."
Shaking my head, I respond, "I've had good teachers. But I wasn't thinking about you dying when we were dancing either, until the end. Though I was a bit distracted about remaining upright."
"Do me a favor, Michael. If you ever do manage to open up that cynical shell and get involved with someone again, make sure they enjoy cuddling and dancing and kissing -- those are like some of the only times you can be consistently real other then occasionally. Otherwise its unpredictable and random, in conversation or blogs. Women want those things reliably, you know?"
With that, she leaves, smiling and crying simultaneously. As I watch her walk to the security checkpoint, it suddenly hits me that I'll never see her alive again. Funny how a guy who hasn't cried for years can find himself tearing up so many times over a weekend.
Damn I need a drink. I'll skip it since drinking alone in the afternoon on New Year's day sounds awful and is probably even worse than that.
Everyone leaves, eventually, I suppose.
Farewell, Liz. You are one of a kind. Thank you for giving me a moment perfected not by art, but by mortality.
(For Liz)
This post brought to you by 爱 and 愛 (U+7231 and U+611b, simplified and traditional forms of a CJK UNIFIED IDEOGRAPH)
(Starting tomorrow I'll have a back log of technical posts that I put off for a few days, but I expect that I might end up taking another break after those run out -- I am feeling very empty and uninspired at the moment, from an authoring point of view)
Prior posts in the series:
To work with this file, you will want to right-click on the link and save if to a text file, the name should be MSDN_TableTextService_Simple.txt.
Of course you can change the name, but the file actually contain entries that point to the name so be sure to edit the entries if you edit the name.
This dictionary is defined to convert digit characters (1 to 9) to Roman numerals (Ⅰ to Ⅸ) or dingbat circled sans-serif digits (① to ⑨).
Note that result of conversion is not the combination of Latin alphabet characters for making Roman numerals such as double or triple "I" characters, or combination of the "I" and "X" characters. This mapping particular table uses the Unicode Roman numerals which are located at U+2160 to U+2168.
Note that you can actually define them any way you like -- even including the Roman numerals and the Latin script equivalents as different candidates!
The conversion table is one you can see yourself if you open the file and is defined as follows (in part, of course);
[Text]"1" = "Ⅰ""1" = "ⅰ""1" = "①""2" = "Ⅱ""2" = "ⅱ""2" = "②""3" = "Ⅲ""3" = "ⅲ""3" = "③"
To add the file to your own Vista or later machine, here are the directions:
1) Use an elevated command prompt!1
2) Copy MSDN_TableTextService_Simple.txt dictionary file to the "%ProgramFiles%\MSDN Sample TIP" directory.
3) Execute the below command (note that the third parameter "RegisterProfile" should be case sensitive).
Rundll32 "%ProgramFiles%\Windows NT\TableTextService\TableTextService.dll" RegisterProfile MSDN_TableTextService_Simple.txt
4) You will see the below confirmation message box, to which you should press "OK":
Okay, now it is available in Vista!
The next thing to do is to enable “MSDN Sample TableTextService (simple)” on your desktop.
Simple steps:
1) Log in to any user account.
2) Check "MSDN Sample TableTextService (simple)" from English (United States) – Keyboard tree in General tab, Add… push button in the Text Services and Input Languages portion of the Regional and Language Options control panel applet, Keyboards and Languages tab, Change keyboards… push button.
And press OK. You will now see it added to your list of Input Languages:
And you will see that you now have the option in your Language Bar under English (United States), and you can choose either one of them:
Now of course the Language Bar contains the locale names there fore me because I have those other input languages installed; if you fon't then you will just see the Language Bar without the locale name there.
I'll set things up that way for the next few screenshots so you can see things both ways....
Now, let's use the "MSDN Sample TableTextService (simple)" IME in application.
1) Run any application. In this case, I'm going to use notepad.
2) Click the Keyboard Layout button on the Language Bar. You can see the pull down menu listing two keyboard layouts:
3) Select the second one which is "MSDN Sample TableTextService (simple)" from the pull down menu. The Language Bar should be changed as below:
4) Press "1" or "2" or any numerical number in notepad. You could see a small window under the caret in notepad with added your typed numerical number. For example, type "1":
5) Press the "Space" key which means to convert your typed character. You will now see a candidate list corresponding to your typed character. In this case, after typing "1" and "Space":
6) For the actual character injection into the application to get your prefered character to notepad, you can move the highlight by up/down arrow keys and press "Enter" key or you can press the left mouse button on your preferred character on candidate list window.
Unfortunately, you can also select a candidate by typing the number on the left. I say unfortunately given the strange interaction between typing numbers and also typing the number used to identify items in a list. We'll talk about how to not have that eb an issue in a future post!
For example, you can type some numerals 1, 2, and 3, then select some Roman numerals and dingbat circled sans-serif digits:
Okay, next up I'll talk about the three kinds of conversion -- and we'll start getting into these files!
1 - Please do not skip this step. I have had over two dozen complaints about various TDTS text files failing, and almost every failure was caused by not running the install line from an elevated command prompt.
This post brought to you by ① (U+2460, aka CIRCLED DIGIT ONE)
I used to work across the hall from Shawn.
His office, in addition to the large cardboard cutout of Mr. Spock:
there are numerous pieces of Star Wars in the office -- a Sand-crawler, a Star Destroyer, a Death Star, an R2-D2, a TIE Fighter, a Darth Vader.
These various pieces all had one thing in common, something they shared with the big Mr. Spock.
They all had no real scale in common such that you could ever expect to see them fit inside each other or next to each other and be appropriately proportioned.
Luckily they had not been designed to sit alongside each other, which explains the situation so much more plausibly than poor depth perception at the Lego design facility!
And so, inevitably, I once again find myself with Douglas Adams on my mind, in this case from a bit of The Restaurant at the End of the Universe:
The Total Perspective Vortex derives its picture of the whole Universe on the principle of extrapolated matter analyses. To explain--since every piece of matter in the Universe is in some way affected by every other piece of matter in the Universe, it is in theory possible to extrapolate the whole of creation--every sun, every planet, their orbits, their composition, and their economic and social history from, say, one small piece of fairy cake.The man who invented the Total Perspective Vortex did so basically in order to annoy his wife. Trin Tragula--for that was his name--was a dreamer, a thinker, a speculative philosopher or, as his wife would have it, an idiot.And she would nag him incessantly about the utterly inordinate amount of time he spent staring out into space, or mulling over the mechanics of safety pins, or doing spectrographic analyses of pieces of fairy cake."Have some sense of proportion!" she would say, sometimes as often as thirty-eight times in a single day.And so he built the Total Perspective Vortex--just to show her.And into one end, he plugged the whole of reality as extrapolated from a piece of fairy cake, and into the other, he plugged his wife: so that when he turned it on she saw in one instant the whole infinity of creation and herself in relation to it.To Trin Tragula's horror, the shock completely annihilated her brain, but to his satisfaction he realized that he had proved conclusively that if life is going to exist in a Universe of this size, then one thing it cannot afford to have is a sense of proportion.
And what does this all have in common with anything one would reasonably expect to read about here?
Well, over on the Microsoft Volt Users Community, the question from Khmerme was:
I hope that anyone who works for Microsoft sees this message and can provide some help. People who use Khmer Unicode are very excited that Windows Vista has included this Khmer language standard in the OS. However, this excitement is dampened by the fact that the script is so tiny that no one can read it. For example, go to www.google.com.kh on a Vista computer and see for yourself. However, other developers working with Unicode long before Vista, such as www.khmeros.info, have produced fonts that appear at a normal size. How did Vista get this wrong, and how can we fix it? An automatic update would be nice. Currently, other developers provide fixes, but they are difficult to install. Plus, it's very hard to promote the use of a "standard" when the standard comes defective. From a business perspective, this also hurts Microsoft. This is the main reason that I have not yet updated to Vista. Please advise.
Chris Fynn answered this cry for assistance with some of the explanation:
Hi "Khmerme"Can't you use your old Khmer Unicode fonts in Vista applications without the fonts becoming small?The same problem exists with "Microsoft Himalaya" the Tibetan script font in Vista. I think these fonts were made 'small' so that they work as system/UI fonts in Windows menus, dialogue boxes, and things like Windows Explorer without causing problems. Other Unicode Tibetan script fonts display at better size in applications.There really need to be other (larger rendering) fonts as the default in text editors, web pages, office applications, etc.The problem with Tibetan - and I guess with Khmer - is that some combinations have a large vertical height/depth - and, in order to squeeze these into the same number of vertical units as a latin letters, Tibetan or Khmer glyphs at the same point size end up being tiny in comparison.Fonts can of course be made where the ascender to descender distance is greater than the font UPM so that at any nominal point size they will render at the same apparent visual size as Latin glyphs. Of course then the line spacing has to be greater than the nominal point size to prevent clipping or overlapping lines. I guess MS think this could cause problems for UI fonts used in situations where line space is fixed.However larger rendering fonts for Tibetan and Khmer seem to work OK as UI fonts in Linux (Gnome & KDE).In Windows you can increase the display size of UI fonts - Khmer and Tibetan then become readable but Latin is then too big.- Chris
The problem is that these are fonts that contain characters across more than one script which, to put it quite simply, are not designed to be viewed alongside each other.
And they end up looking about as well next to each other as the R2-D2 that was about the same height as the Sand-crawler, or the Mr. Spock that was bigger than anything in the office from the Star Wars universe, even the items designed to contain thousands of normally sized people.
Thus is kind of the same issue I mentioned in Mangal mangle?, with the argument about UI font compromises being the main reason for the strange scaling issues, though this seems to not be the full story here since several people have stated there are real problems using fonts like DahnPenh or Microsoft Himalaya from Vista as a user interface font because it would be increased in size so much to be reasonably visible.
So they become UI fonts that cannot be used for a UI language?
By the way, let me know if you spot the logical error in my examples below before you read about it toward the bottom of the post!
Of course the answer is that a UI font is meant for use anywhere in the UI, not just as the UI language. But do people find the use of these fonts in UI like Regional and Language Options to be particularly readable for Khmer:
(by the way, does anyone want to hazard a guess as to what the hell is going on with the digits in the Khmer summary view?)
or Tibetan:
or Mongolian:
all of them in UI seem kind of insufficient and scaled pretty poorly compared to the surrounding Latin script text.
I can't tell if it looks better or worse in Character Map:
I guess they get away with it by making the Latin script characters much bigger so they are just as ugly but you can't necessarily tell in isolation.
But shouldn't a "UI font" try to balance these things, so that they look good alongside each other?
Perhaps there would more of an excuse for the poor scaling in all of the Lego models in Shawn's office -- since each model was a separate Lego package, constructed separately from each other one. Similarly, if two different fonts did not scale too well together, then who cares? They are two different fonts, after all!
But in this case, the Latins exist in each of these fonts. So why shouldn't they be designed to fit together well?
By the way, did you spot the logical error? If not then read about it now....
Even if the Latins in these three fonts had been designed to scale properly with the other script the font contains, on my English Vista system those are not the Latins that are used -- my own UI language font choice is used. So the real solution to handle such cases would have to involve proper inter-font scaling.
Though to learn the lesson from Adams, if someone in computer typography ever does solve these scale problems completely, we might have to fear for the annihilation of their brain due to having such a fine sense of proportion. And we don't to lose any good typographers! :-)
This post brought to you by ៖ (U+17d6, aka KHMER SIGN CAMNUC PII KUUH)
Some prior stabs on this topic:
Now pay attention to that one in bold, it is the one I forgot about in my never-ending conversation with Stu about how even with AltGr working well in Word 2007, there is still something missing on the globalization side if CTRL+ALT doesn't work too....
I was reminded about it by Henry Skoglund, who commented yesterday:
BTW, thanks for the tip in your blog sometime last year, that pressing CTRL+ALT together is equivalent to pressing ALTGR. That saves a lot of time when you're trying to enter some keys like []{} inside a Virtual PC session (if you're happen to be using a Swedish keyboard) because Virtual PC's default hotkey is ALTGR.
So, just like with my MacBook Pro (which has no ALTGR key), Virtual PC may as well have no ALTGR key, since Virtual PC has other plans for that damn key.... :-)
Now I can hate that they do, since this is not something that everyone wants. But the simple fact is that there are two kinds of people who get good use out of CTRL+ALT in this scenario:
Now as I pointed out in this comment, Word 2007 is most of the way there; if you remove the shortcut, then CTRL+ALT works as if it were the ALTGR, just as Bob and Nature intended! :-)
I really need to sit down and do that Word add-in at some point -- because this particular set of en-to-end scenarios is almost delivered. We have the help of Windows, Word's add-in model, Word's keyboard shortcut support, and now I just have to get that last bit done (in my copious spare time, G knows I have tons of that!) to consider this set of scenarios delivered....
This post brought to you by ∵ (U+2235, a.k.a. BECAUSE)
The folks in Tamil Nadu really wanted more time to talk to people on the Unicode side -- a technical meeting of the UTC South Asia Subcommittee of the Unicode Consortium on issues relating to encoding of Tamil characters.
As a colleague stated in describing this meeting: "...to understand the practical problems that are encountered with Tamil (and other Indic scripts), and what the consortium can do to help with those problems. It is also to help the Tamil participants understand what the constraints on Unicode are, and the ways in which the Unicode encoding is used to deal with Tamil text."
So some people are traveling from the West coast of the United States to Chennai, to have that conversation, and together continue to determine how best to make sure that the needs of the script and of the language are met. It is never a bad idea to have smart people discuss problems. :-)
I am one of the people who was asked whether I could be there, in light of my past work [with|in|for|on] Tamil.
Interestingly, some of the reasons for the problem is more than a little to do with Microsoft's implementation of Tamil support (even when Unicode is blamed) -- in particular:
Now this trip to India is not being funded by Microsoft in any way whatsoever -- not for the plane ticket, not even for the hours spent (I am taking it as vacation time) as the meeting "doesn’t have enough business justifications to send over a person representing Microsoft... ...and it is [therefore] considered as a personal trip."
So despite Microsoft's implicit connection to some small part the problem, a trip to talk to the people tasked to investigate, understand, and solve the issues related to Tamil and Unicode is not considered part of the job.
And so it goes -- the sophistries of large corporations. :-(
Feh, I say. And Feh again....
But this trip is important, in my opinion. So I am going to go, and use a little of my vacation time.
Since I don't make it to India very often, and since I spent my last vacation sick at home, I am going to take some actual vacation while I am there (since it is being labeled personal time anyway!).
Perhaps this is also partially to make up for a trip I made to Malaysia several years ago right around the Windows XP ship date for a presentation at Tamil Internet 2001 -- where I spent more time in the air traveling to and from the conference than I did on the ground in Kuala Lumpur, all to help meet a ship date....
Plus while I am in TN perhaps lunch or dinner with long time INFITT colleagues and a few others. That is personal time, but worth the time, I think.
I don't think I'll make it to Calcutta this trip (something I have been wanting to do for a long time, in fact one of three places I have wanted to visit in that part of the world but have not managed to yet). I'll have to figure out how to get it done another time, on another visit....
This has got to be the best time of year for me to be in India, climate wise -- which is a very pleasant coincidence that I will do my best to enjoy. :-)
I will not take any time spent at various Microsoft spots giving presentations, etc. as vacation time, for obvious reasons. But that is worthwhile, too.
It could be worse; Microsoft really had trouble with that Malaysia trip in 2001 and it was only the fact that I was not a full-time employee at the time that kept them from requiring me to send my regrets to the conference organizers back then -- something I regret to this day considering that a mere 11 days later I was in LA a mere 14 days later 9/11 happened and the likelihood of a return trip was sharply curbed. amd a year later I became a full-time employee....
Though to make sure there are no misunderstandings, I have neither intent nor inclination to speak "for Microsoft" while I am there -- I am there as someone who wishes to be helpful seriously discussing Tamil.
If I had a Tamil Linux distro up and running on my MacBook Pro I could easily have planned to spend the trip doing comparative evaluations of Windows vs. Linux in Tamil and other Indic languages, which is definitely outside the charter of my work. This is personal time, after all! :-)
I'm heading out on the 21st of January and I'll probably be heading back to Redmond on the 1st of February. If you work for Microsoft and are in Chennai or Bangalore or Delhi or Hyderabad or a few other places than I may see you while I'm there (and if you want to increase the odds then be sure to send me email or use the Contact link!).
In the meantime, while I am gone you may see a lot of pre-recorded blog posts, including:
For the latter, what better could I do for people who care about the Tamil language than an attempt at a solution using built-in technologies in Vista that Microsoft could simply decide to put in-box in a future version of Windows or maybe even as an optional download before that? :-)
This post brought to you by ௧ (U+0be7, aka TAMIL DIGIT ONE)
From the recently pre-recorded blogs collection...
(Hat tip and apologies to the Goddess Aretha whose version of the Otis Redding song provided the title inspiration, which is much more appropriate and/or wholesome than a [misquoted ]P.T. Barnum reference would have been; although both are perhaps less amusing than a Joyce Botterill -- bka Judy Carne -- reference, the latter would have been to many the least recognizable of the three and I am not nearly as much of a TV snob as I am a music snob about these things!)
This post is a little bit related to another recent blog (Throwing a BRIC [with Diwali written on it] at Outlook, aka Attn. Outlook: There *is* an 'I' in BRIC) and more specifically a comment to it from Pavanaja U B:
FYI, Outlook 2003 Hindi version has the Hindu Saka calendar followed by Govt of India. It will show Hindu months in Hindi. I will send the screenshots, if you need.
Indeed it does, and the comment took me back....
I don't remember exactly when it was, but it was a long time ago.
Like maybe five years ago. It was before Office 2003 and Outlook 2003 had shipped, and way back when Vista was called Longhorn.
Cathy and I had a great idea a few months prior related to a way to stop having Windows and Office "surprise" each other with their respective features and bugs -- we would instead meet regularly to sync up on what we were both doing in the internationalization space. Technically I think it started as me grouching off about some particular mismatch and how embarrassing it was (I think it was our fault that time but both sides had been guilty at different times) and her suggesting we actually meet and communicate to keep lack of communication from being the problem, but the details are fuzzy. Eventually it led to a regular meeting that proved to be a really productive idea that was extended to other people on the team who were involved in stuff.
We also did the same thing with SQL Server as well, but that is unrelated to this post.
Anyway, fast forward a few months and the Office folks made a request of us to support the Saka era calendar for India. They were supporting it in Outlook.
But our schedule was full and our calendar support sucked overall in Windows (ref: Calendars on Win32 -- just there for show, Calendars on Win32 -- Not all there yet and others). Support for Indic would require a major overhaul that no one figured we had time for (not knowing at the time it would be over half a decade before LonghornVista saw the sunlight), so we pointed how any effort without that overhaul would just kind of suck from a customer standpoint and left it at that.
We didn't end up adding it to Vista, as they requested of us. But then, we did not do the Persian, Coptic, or Ethiopic calendars either. Lots of missing calendars, I'll talk about them another day. Well, on several different, other days.
Meanwhile the support is in Outlook, though a little hidden. You have to go to Tools|Options, hit the Calendar Options... button, and then look near the bottom of the dialog and choose the Enable alternate calendar: checkbox and choose Hindi/Saka Era:
Now what does this give you exactly?
At the very top of Calendar view, you will see something like this:
And that is really it.
The support is not exposed programatically, there is no other formatting support and no parsing support, either. It does not show up in the calendar control on new appointments, or any of the other myriad places one might expect it. The help content is just one topic with two paragraphs:
The date and time format used for each Indic language is determined by the calendar chosen. The list of calendars that you have available is determined by the languages you have enabled and by the operating system language setting you have selected in Windows Control Panel under Regional and Language Options for Windows XP or Regional Options for Windows 2000. Depending on the Indic language you have enabled, you can choose among these calendars: Saka Era (Hindi only), and Gregorian (all variants).When a Indic language is the installed (installed language: The base language used that governs how several language characteristics will behave, such as the language of the primary dictionary, and the direction and alignment of text (left-to-right or right-to-left).) language, the predominate Indic calendar for that language will be the default calendar used— for example, for Hindi, Western or Saka Era; for Indic, Western.
Now for me, I have all languages installed, and the only choice that was Indic in that first dropdown was Hindi and the only calender under Hindi was Saka Era.
This seems strange to me given my understanding of calendars in India. I'll quote from the Wikipedia article on the Hindu calendar a bit:
Regional variantsThe Indian Calendar Reform Committee, appointed in 1952 (shortly after Indian independence), identified more than thirty well-developed calendars, all variants of the Surya Siddhanta calendar outlined here, in systematic use across different parts of India. These include the widespread Vikrama and Shalivahana calendars and regional variations thereof. The Tamil calendar, a solar calendar, is used in Tamil Nadu and Kerala.Vikrama and Shalivahana calendarsThe two calendars most widely used in India today are the Vikrama calendar followed in Western and Northern India and Nepal, and the Shalivahana or Saka calendar which is followed in South India and Maharashtra.Both the Vikrama and the Shalivahana eras are lunisolar calendars, and feature annual cycles of twelve lunar months, each month divided into two phases: the 'bright half' (shukla) and the 'dark half' (bahula); these correspond respectively to the periods of the 'waxing' and the 'waning' of the moon. Thus, the period beginning from the first day after the new moon and ending on the full moon day constitutes the shukla paksha or 'bright half' of the month; the period beginning from the day after the full moon until and including the next new moon day constitutes the bahula paksha or 'dark half' of the month.The names of the 12 months, as also their sequence, are the same in both calendars; however, the new year is celebrated at separate points during the year and the "year zero" for the two calendars is different. In the Vikrama calendar, the zero year corresponds to 58 BCE, while in the Shalivahana calendar, it corresponds to 78 CE. The Vikrama calendar begins with the month of Baishakh (April). The Shalivahana calendar begins with the month of Chaitra (March) and the Ugadi/Gudi Padwa festivals mark the new year.Another little-known difference between the two calendars exists: while each month in the Shalivahana calendar begins with the 'bright half' and is followed by the 'dark half', the opposite obtains in the Vikrama calendar. Thus, each month of the Shalivahana calendar ends with the no-moon day and the new month begins on the day after that, while the full-moon day brings each month of the Vikrama calendar to a close.National calendars in South and South East AsiaA variant of the Shalivahana Calendar was reformed and standardized as the Indian National calendar in 1957. This official calendar follows the Shalivahana calendar in beginning from the month of Chaitra and counting years with 78 CE being year zero. It features a constant number of days in every month (with leap years).The Bengali Calendar, or Bangla calendar (introduced 1584), is widely used in eastern India in the state of West Bengal, Tripura and Assam. A reformation of this calendar was introduced in present-day Bangladesh in 1966, with constant days in each month and a leap year system; this serves as the national calendar for Bangladesh. Nepal follows the Bikram Sambat. Parallel months and roughly the same periods apply to a number of Hindu-influenced calendars in Burma, Cambodia, Laos, Sri Lanka and Thailand.
Now somehow if this a brief description of the modern calendar situation for (to use the term Office does) Indic, then having the Saka Era only and having it only there for Hindi appears to me to be more than a little bit incomplete. It seems like in the I within BRIC there are a whole bunch of potential work items -- not only for different calendars but also for different formatting, and maybe even for programmatic ways to extend the support, too.
Remember how I said earlier in this blog how an incomplete effort done by the NLS folks here would have really kind of suck? Well, Microsoft did one better than the subjunctive text here; they provided Outlook to prove that it would. And does....
And of course the underlying need, which fits in with the original request the Office folks made for Vista way back when it was Longhorn, is a better Indic calendar story from NLS and from the .NET Framework. So that applications like Outlook don't need to build incomplete hacks like this. Given how late the product ended up being, we really dropped the ball here, somewhat continuously. With calendars, we still seem to be doing so.
It's funny, I was having hot cocoa the other day with a former colleague from my past life in the Office world (someone who helps prove to me that the stars can also rise!). We were talking about the Y2K effort in Office way back when and the later DST2007 nightmare, and of course the connection to the lame calendar story came up in the conversation -- seems like there is always enough time to complain about calendars even if we lack the time to actually fix them!
As product/feature areas go, Calendars seem like one that we are pretty terrible in, and I hope that the investigation on what ought to be there happens so the work can in fact happen. Because the Outlook feature seems woefully inadequate for the whole market, just as the holiday support is for the whole world in general and for Indic in particular. It is an area long overdue for fixing, especially for all of the important markets that have no good coverage at all....
This post brought to you by শ (U+09b6, aka BENGALI LETTER SHA)
Last time I promised
Next up, I'll cover some of the other settings in the [Configuration] section, or I might cover the language settings. Whichever one I don't do next will be done the time after....
But who are we kidding here? Language settings are always gonna come first for me; we all know that, right?
Not that I like being so boring and predictable, mind you. I'll explain how I have been working on that another day.... :-)
Anyway, the language settings.
We start in the
[System]
section of the file, (by convention) right at the top of the file, and (again, by convention) the first line in the section will be
LangId = x
where x represents one of five different possible values. These possible values are:
1) One of the many LANG_* constants defined in winnt.h from the time that Vista shipped, like LANG_MACEDONIAN or LANG_BENGALI or LANG_TAMIL or whatever, e.g.
LangId = LANG_BENGALI
and yes those spaces are okay there. Let's do me a favor and not get me started on the spaces there....
This seems pretty straightforward, right?
I know the list is the Vista RTM one as at the time after I had just gotten that Amharic IME in (as previously mentioned in Hang on just a [Hansel]Minute! and We weren't Vista heroes, but I think we were kinda heroic), I looked to make sure that LANG_AMHARIC was there, and it wasn't. And most of the new Vista locales weren't either, so I added them. :-)
Then I worked with colleague Jennifer Shepherd to get an icon in for the Amharic input method....
The LANG_* constant works by calling GetLocaleInfo with that value, which means it will expand to LANG_*, SUBLANG_DEFAULT as GetLocaleInfo is wont to do. It will be called with the LOCALE_SABBREVLANGNAME lcype which will be used as described in LOCALE_SABBREVLANGNAME is more than just an ISO-639 code and LOCALE_SABBREVLANGNAME is so not an ISO-639 code.
2) One of the many LANG_* constants defined in winnt.h from the time that Vista shipped, like LANG_MACEDONIAN or LANG_BENGALI or LANG_TAMIL or whatever, followed by a comm a and a space, followed by one of the many SUBLANG_* constants defined in winnt.h from the time Vista shipped, like SUBLANG_DEFAULT or SUBLANG_BENGALI_INDIA or whatever, e,g,
LangId = LANG_BENGALI, SUBLANG_BENGALI_INDIA
Again working the same way via that GetLocaleInfo call, via a MAKELANGID macro to turn the two values into a number and the function will be called with the LOCALE_SABBREVLANGNAME lcype which will be used as described in LOCALE_SABBREVLANGNAME is more than just an ISO-639 code and LOCALE_SABBREVLANGNAME is so not an ISO-639 code.
3) A numeric value of any valid PRIMARYLANGID or LANGID, e.g.
LangId = 0x0409
which will see GetLocaleInfo be called with the LOCALE_SABBREVLANGNAME lcype which will be used as described in LOCALE_SABBREVLANGNAME is more than just an ISO-639 code and LOCALE_SABBREVLANGNAME is so not an ISO-639 code.
4) #2 with a LANG_* constant for the PRIMARYLANGID and 0xFFFF for the SUBLANGID, e.g.
LangId = LANG_BENGALI, 0xFFFF
This odd 0xFFFF value is something that TextTableService.dll thinks of as the neutral setting, and it will then add the input method as n option to all of the SUBLANGID values under that PRIMARYLANGID -- thus under Bengali (India) and Bengali (Bangladesh) in the above example.
5) #3 with the 0xFFFF value (or #2 with 0xFFFF for both PRIMARYLANGID and SUBLANGID values, e.g. either of the following:
LangId = 0xFFFFLangId = 0xFFFF, 0xFFFF
Either of these values will cause the input method to be included as an option under all languages.
Anyhow....
At this point you may be wondering one or both of the two things I was wondering about:
The answer to both questions will likely not be the one you are looking for (they were not the ones I wanted to hear!).
Not supported.
But just to round out the [System] section information, here are some more entries (these ones pulled from the Yi IME -- you would fill in your own info):
GuidProfile={<fill in your own unique curly-brace delimited GUID value, please!}Description="Yi Input Method"Display Description="@%programFiles%\Windows NT\TableTextService\TableTextService.dll,-16"
Note the MUI-friendly string -- you can fill in your own DLL name and string index, obviously....
I'll cover the rest of the settings like icon info in an upcoming post.
This post brought to you by ⑤ (U+2464, aka CIRCLED DIGIT FIVE)
Nothing technical here, sorry!
You may recall a couple of years back when I first mentioned the iBOT, the improvement over powered wheelchairs and scooters that lets you:
If you saw the post before the Viacom lawsuit took all those videos off of YouTube or the Colbert Report episode with the Dean Kamen interview, you'd even get to see Stephen drive it around a bit....
I recently went through the assessment for the iBOT, for a whole bunch of reasons involving lots of real world examples where the above four points translated into limitations that a scooter simply would not overcome. It really is (euphemistically speaking) the difference between walking with a limp and running a marathon in so many different circumstances that ah honest assessment changed it in my eyes from being a luxury to being a real necessity.
Anyway, Premera Blue Cross turned me down, claiming that it is
...not medically necessary. This system is a specialized mobility system with extra cost convenience features such as stair climbing ability and elevation ability which are excluded by contract....If you decide to receive this service, you will have to pay for it yourself. Our decision is for payment purposes only. All decisions about actual treatment are between patients and their doctors.
The funny part is that there is no such information in any contract that I have access to (the actual information on assistive devices is intentionally vague and refuses to spell out the kind of details that would help a person understand what the criteria are), so I assume this must be something to do with either a contract between Blue Cross and Microsoft or between two different parts of Blue Cross.
I guess it is also a little funny that that they bat around phrases like not medically necessary even though they claim that All decisions about actual treatment are between patients and their doctors. If they are limiting themselves to payment then aren't they supposed to limit themselves to things like too expensive and such? Especially without a contract they hand patients that actually defines the criteria with any kind of certainty or rigor?
I have been told by several people who have dealt with Blue Cross (both inside and outside of Microsoft) that it is harder for an out-of-network provider to be considered to be providing medically necessary services, in addition to the fact that out-of-network pays 80% of the "reasonable costs" once they determine what is reasonable....
The appeal process will get a small workout and perhaps eventually I'll have an iBOT somewhere between the first and second appeals.
In a way it makes sense to me that as a company Blue Cross might choose to consider the iBOT to be not medically necessary, since me not having the iBOT protects them from having to look me in the eye when they deliver the news. This has the same logic as the issue I mentioned in Get off my freaking key! where the location of the @ sign some one of the layouts mske it more difficult for people to send mail to complain....
I'll keep you posted as I go through the process....
This post brought to you by @ (U+0040, a.k.a. COMMERCIAL AT)
That previous post introduced the MSDN_TableTextService_Simple.txt text file (right click on it and sve it somewhere if you want to use it).
And it showed one conversion technique.
So now I thought I'd cover all three techniques, and explain them a bit further....
The three types are known as Simple Conversion, Incremental Conversion, and Explicit Conversion. Each of them is described below:
Simple Conversion:
Inputted composition character shows in the small window which called "Reading Window". The Candidate Window is shown by press the conversion key (the "Space" key) which list items that match the inputted composition character.
This is what was previously shown in Part 1.
Incremental Conversion:
Inputted composition character shows in the small window which called "Reading Window". The Candidate Window is shown immediately when the user inputs a composition character. List items should match inputted composition character, and also “Incremental Conversion” shows list items for result of wild card search by inputted composition character.
Here is a nice sample, named MSDN_TableTextServiceIncremental.txt (right click and save it to your machine).
This sample profile has below conversion table;
[Text]"1" = "Ⅰ""1" = "ⅰ""1" = "①""10" = "Ⅹ""10" = "ⅹ""10" = "⑩""11" = "Ⅺ""11" = "ⅺ""11" = "⑪""12" = "Ⅻ""12" = "ⅻ""12" = "⑫"
When we input "1" as a composition character, then "Incremental Conversion" shows list items for match as "1" and also shows list items match as "11" and "12" because there are result of wild card search as "1*". After listed item 4, the items are result of a wild card search. According to a wild card search, candidate list items should show combination string where the left side is a match as the inputted composition character, and right side is next expected composition character for wild card search character.
Explicit Conversion:
Inputted composition character shows up in the small window which called the "Reading Window". The Candidate Window is shown immediately when the user inputs a composition character. However, Explicit Conversion doesn’t process for wild card search.
The Look and feel of "Explicit Conversion" is similar to that of Simple Conversion, though as the above indicates it also has some behavior more like Implicit Coversion.
To be honest, these three different methods are similar enough between each other that the small behavior differences will sometmes seem like bugs to users who actually find themselves trying to use more than one of them!
Here is a nice sample, named MSDN_TableTextService_Explicit.txt (right click and save it to your machine).
When we input "1" as a composition character, then "Explicit Conversion" shows list items for match "1" only.
Now, to look at the differences between these three files as far as settings go, it is all in the [Configuration] section, which contains one of the following entries:
EXPLICIT:ShowExplicitCandidateImmediately=1
INCREMENTAL:ShowIncrementalCandidateImmediately=1
SIMPLE:None of the above
Now as I said, the similarities can lead to more confusion thn you might imagine, and in general it is best to try to intuitively use the input method and see if it works the way you thought it would. I'll talk more about this later....
Coming up: what keystrokes do what, both built-in and definable.
This post brought to you by ② (U+2461, aka CIRCLED DIGIT TWO)