Blog - Title

Sorting it all Out
Michael Kaplan's random stuff of dubious value
Be sure to read the disclaimer here first!
  • Sorting it all Out

    Out of the ashes of the old...

    • 4 Comments

    In a recent blog, I did a huge disservice to a colleague, and I wanted to set the record straight.

    It was back on February 16th, 2005 at 4:55am that I blogged LOCALE_SABBREVLANGNAME is so not an ISO-639 code.

    And it was over a year later, on September 27, 2006 at 3:01am that I blogged LOCALE_SABBREVLANGNAME is more than just an ISO-639 code.

    And then, it was just six years later that Andrew Glass's Windows 8 Language Profile work, and its Windows keyboard list replaced Cicero's older admittedly buggy one:

    And although it is truth, it is hardly the whole truth, because it focuses on the past, to the exclusion of the future, and in doing so, it does a huge disservice to the readers of the blog and of the Blog.

    All I can do is sincerely apologize to Andrew Glass and the other developers, testers, and program managers of the new Language Profile user interface.

    I'm truly sorry, Andrew,

    You deserved a better messenger that day then I, because it intentionally lacked the vision that Andrew showed, and that undermines any good the Blog can do.

    It makes me wonder if I should take a break from blogging until I know I can do a more honest job then I did that day....

    And beyond that, take a step back from NLS as a whole, while I sort it all out for the future....

  • Sorting it all Out

    The main language of Angola, beyond oil and diamonds, is... Portuguese?

    • 3 Comments

    Angola's ISO 3166 code is AO. And there are lots of languages in Angola:

    • Portuguese -- pt-AO
    • Kikongo (Kongo) -- kg-AO
    • Chokwe -- cjk-AO
    • Umbundu -- umb-AO
    • Kimbundu -- kmb-AO
    • Nyemba -- nba-AO
    • Kwanyama -- kua-AO

    But none of them are supported by Windows, thus no good way for people to spend their Kwanzas they may have earned from oil or diamonds.

    Angola and most of it's languages are ignored by the CLDR, too. So it isn't just Microsoft's fault.

    Though more and more it looks like it is Microsoft's, and Window's, problem to solve. If you know what I mean....

    This is not a position that Microsoft finds particularly familiar -- we are used to covering the whole world, and all of the people in it.

    It is a bit humbling, to tell you the truth.

    So, what's next?

    How to change all this is a tough thing to decide.

    Portuguese is perhaps the best language choice, since although the other languages are nationally recognized, Portuguese is the only official language of the country.

    Although the Kwanza has seen hard times (in the 90's it had the dubious honor of being the least valued currency in the world!), things are for the most part much better now.

    It's past time to give those people in pt-AO a way to spend their Kwanzas!

    Who's with me? :-)

  • Sorting it all Out

    Sometimes Microsoft will unfortunately take a government's requirements over its customer's preferences...

    • 4 Comments

    In a comment to Blame Canada! aka Where is the RIGHT CTRL key on *this* keyboard, Canada?, Eric Côté responded:

    I live in Montreal. Most French-Canadians are going to avoid the "multilingual" keyboard and instead opt for the friendlier "Canadian French" keyboard. Even the Surface keyboard that you buy in Montréal and Québec City is going to use the "Canadian French" keyboard. Microsoft Hardware has been selling "Canadian French" keyboards since the late 90s.

    But here's a sad story: when you use the new "language" control panel, if you select "Français (Canada)", it is going to default your keyboard to "Canadian Multilingual Standard".

    The same happens if you get a new computer that goes through the new "out-of-box experience" (that's the set of screens during the initial boot of a new computer). It's going to ask you "English or French" and defaultd your keyboard accordingly. If you choose "French" with a Canadian Time Zone, you'll automatically get "Canadian multilingual Standard".

    And there's no obvious way to change that for non-technical users. I dare you to try!

    Answer:  Go to the "Language" Control Panel, click "option" just beside "Français (Canada)", "Add an input method", and then you see a panel with an alphabetical list of all French keyboard, followed by an alphabetical list of NON-French Keyboards. Go to the second list and find "Canadian French" (yep, that is a bug, it should be on the first list. Making things worse, there's also a "Canadian French (Legacy)" on the first list that dates back from the Win3.0 days and that should absolutely be avoided.)

    Every time I see someone with a Surface connected to a French Canadian Keyboard, it's always using the wrong keyboard layout. People always go: "hey, it's a buggy Microsoft product, this wouldn't happen with Apple".  The source of problem is thus: the default layout from Microsoft Hardware isn't following the default layout from the Windows division.

    Now I wish what Eric Côté was saying here was true.

    And that most Canadian French users added the "Français (Canada)" keyboard layout and removed the "Canadian Multilingual Standard" keyboard layout.

    Unfortunately, I have some statistics that contradict the claim a little. Or maybe a lot?

    You see, according to our info, fewer than 5% of all people who install Windows ever launch Regional and Language Options.

    Plus, fewer than 5% of those people actually change any of the settings.

    And on top of all that, at least 1% change the setting back.

    Therefore, for the claims of Eric Côté to be true, the sales figures of Microsoft Canada would have to be  more than eight times what they are now!

    But it is true what Eric Côté was saying, about what people wanted their defaults to be.

    So this becomes a case where Microsoft loves and respects its customers, and will do whatever that customer prefers.

    Until and unless the government's requirements conflict with those cases, in which cases the government wins the DEFAULT case, which unfortunately means the government wins the case for most people...

    And the customer is left thinking "hey, it's a buggy Microsoft product, this wouldn't happen with Apple", just as Eric Côté suggested.

    And we only have ourselves to blame.

    Because sometimes Microsoft will unfortunately take a government's requirements over its customer's preferences...

  • Sorting it all Out

    There's no "I" in IDN, part 16: It's a good thing they decided to call it EAI!

    • 3 Comments

    Previous blogs in this series:

    Sometimes in technology we decide to use a word or phrase that isn't very helpful or intuitive on its own.

    But then, right as the onlookers seem baffled, you explain it in an easy, intuitive way.

    Usually, they're so relieved to understand what's going on that they don't shift into a "why didn't you just call it that in the first place?" :-)

    Like the way Windows and the .NET Framework use the word Ordinal, something I've mentioned before.

    Tell them to use an Ordinal function like CompareStringOrdinal, they look confused, so you say "its a Binary sort."

    Problem solved!

    Anyway, now to explain how EAI fits in here.

    people: What are you working on?
    me:        EAI.
    people: Huh?
    me:        Email Address Internationalization.
    people: Huh?
    me:        You know, Internationalized email. with Unicode characters in the email addresses, etc.
    people: Oh, cool! How's it going?

    Calling it EAI kept terms like "International email domains" where they belong.

    With the professionals who install, maintain, and support them!

    Even so, we still get fooled sometimes....

    A couple of days ago and yesterday, several people were passing around an article quite excitedly.

    The article was: Outlook.com to support 32 new international domains and alias sign in

    The excitement! Outlook.com supports EAI!

    Well.

    Not exactly.

    The Outlook Blog, which was that article's cited source, much more accurately explained it in Outlook.com gets two-step verification, sign-in by alias and new international domains.

     They even included a table of the new domains, which I now steal for you:

    Cool, to be sure. But that ain't EAI....

  • Sorting it all Out

    Why I can't use Pandora 1.0 in its present state on my Nokia Lumia 920 (even though I wanted to!)

    • 2 Comments

    Technically this is technical; it's a product review. But it really isn't technical...

    Right after it was announced as FREE and AD-FREE, I knew I had to try Pandora on my Nokia Lumia 920 running Windows Phone 8.

    Pandora Internet Radio has as its core the Music Genome Project, which according to Wikipedia:

    A given song is represented by a vector (a list of attributes) containing approximately 400 "genes" (analogous to trait-determining genes for organisms in the field of genetics). Each gene corresponds to a characteristic of the music, for example, gender of lead vocalist, level of distortion on the electric guitar, type of background vocals, etc. Rock and pop songs have 150 genes, rap songs have 350, and jazz songs have approximately 400. Other genres of music, such as world and classical music, have 300–500 genes. The system depends on a sufficient number of genes to render useful results. Each gene is assigned a number between 0 and 5, in half-integer increments. The Music Genome Project's database is built using a methodology that includes the use of precisely defined terminology, a consistent frame of reference, redundant analysis, and ongoing quality control to ensure that data integrity remains reliably high. Given the vector of one or more songs, a list of other similar songs is constructed using a distance function. Each song is analyzed by a musician in a process that takes 20 to 30 minutes per song. Ten percent of songs are analyzed by more than one technician to ensure conformity with the in-house standards and statistical reliability.

    I had been interested in the concepts behind the Music Genome Project for a while, but had never seriously evaluated until now.

    I really wanted to love it, or at least like it.

    However, I mostly found myself unable to do either.

    It troubled me a little, until I started writing up my concerns in this article, and I immediately understood what Pandora and the Music Genome Project beneath it were missing.

    They were missing "mutant genes" that seriously impacted the way I have enjoyed music for the last 3.5 decades of my 42 years.

    Therefore, if your connection to music is not influenced by my "mutant genes" (and you have no additional "mutant genes" of your own, then you might find Pandora Internet Radio to be an amazing way to listen to and enjoy the music you love!

    {In a Homer Simpson voice} "Stupid mutant genes!"

    Anyway, I will now humbly submit my findings to the readers of my Blog....

    #7

    Sometimes a singer/songwriter will see important connections between an earlier song and a later one on another album - like how Kathleen Edwards thought about the first song on her first album Failer (Six O' Clock News), all about a boyfriend/husband who is now in something like a hostage situation or whatever causes one to be holed up with police right outside, and she was thinking about it when she wrote the first song of her second album Back To Me (In State), all about what the woman with such a man might do if she tired of his thieving ways.

    Ten songs that didn't feel very thematically connected for each of them, and never the other.

    Perhaps this one is less fair since not everyone would have necessarily caught the thematic similarities and I heard her mention the connection between the two songs in an interview before ever hearing the second song, so I'll never know if I  would have?

    But the criminal, no good man theme never came up in any of the "shared genes" of the twenty songs. And none of the twenty songs themselves had such a theme as far as I could tell. So a theme that both the singer/songwriter and I considered important was genetically irrelevant.

    #6

    Now beyond that example, it seems like sometimes Pandora does do this. So when picking Calling on Mary (a song from an Aimee Mann Christmas album titled One More Drifter in the Snow), the next fifteen songs were all holiday themed but none of them listed that as a reason to be genetically similar!

    I kind of have a problem with both the issues in #7 not recognizing a category and here not admitting one.

    There is no way that all holiday songs truly are that similar in just music. The harder rock Christmas, Bring Us by The Grip Weeds and Christmas Time Is Here have very little other than Christmas in common!

    #5

    Another aspect of that "theme gene" comes up in albums that are telling one story (e.g. taking King of the Jailhouse from Aimee Mann's The Forgotten Arm or Mr. Roboto from Styx's Kilroy Was Here) and surrounding songs on the album got no love.

    And the songs that were picked did not themselves appear to be from similar concept or story albums.

    Choosing the album instead did not cause other (or indeed any) songs from the album to get picked. 

    #4

    The basic UI experience has flaws.

    When tracking connections or (to use the "genes" metaphor) relations between songs, I think it would almost always be best to start with the original song, and then as new "related" songs come on, they can use later thumbs up/thumbs down ratings to further shape the station.

    And perhaps sometimes asking the listener why they gave a thumbs down, especially if it is the actual song they picked?

    But no, I usually never saw the actual song the channel was based on, or only saw the live version but was too afraid to thumbs down it.

    I often understood their choices (the UI to show matching "genes" makes sense, so that even if I disagreed, I understood. But it never tried to ask why I'd say thumbs down -- maybe I disliked the live version of the song (which happened several times!) or I liked the song but not on that channel because I didn't agree with the match.

    The whole area of one channel affecting another made me think of Ghostbusters, and how you don't cross the streams. A third button for "thumbs down, here only" seems unlikely, but an advanced option to maintain channel purity would be nice.

    A semi-serious prompt if you thumbs down a channel's own song asking why would be okay  too. Maybe it was an accident! :-)

    Interestingly, my singer/songwriter friend Holly Figueroa O'Reilly showed up in other unrelated channels more often than her own, even if it felt like a weird place for one of her songs.

    I admit my broke the rule I made for myself about trying to use thumbs up/thumbs down for channel purity in that one singular case; I didn't want to thumbs down a friend!

    By the way, Holly is amazingly talented. if you want to check her out on Pandora, they reversed her name to Holly O'Reilly Figueroa for some reason!

    If I was going to use Pandora heavily for years, I'd want it to know me better than I know myself, but with this terribly limited feedback loop it could never happen.

    #3

    I often associate music I listen to with their official videos when they are striking or noteworthy. Probably the only reasons I love R.E.M.'s Shiny Happy People are

    1. Kate Pierson's voice and
    2. her and Michael Stipe dancing and clapping in the video

    Yet Pandora suggests a live version of I'm Gonna Be (500 Miles) by The Proclaimers!

    Which, according to Pandora, had "genes" like:

    basic rock song structures, a subtle use of vocal harmony, mild rhythmic syncopation, repetitive melodic phrasing, major key tonality, a vocal-centric aesthetic, melodic songwriting, mixed acoustic and electronic instrumentation, acoustic rhythm guitars

    in its shared "genes"

    In another case, one of the more striking things about Massive Attack's Teardrop is it's video, that is a baby in the womb mouthing the lyrics! There is also some suggestion that the video ends with an abortion, as was mentioned in another blog I wrote about this song (Sparrows' tears? Perhaps. But never a teardrop on the fire...).

    Anyway, for this song, such "mutant" genes seem much more important than ones (in the case of Massive Attack's Teardrop) like

    electronica roots, four-on-the-floor beats, techno influences, new wave influences, rock influences, a knack for catchy hooks, danceable beats, a repetitive chorus, use of modal harmonies, the use of chordal patterning, inventive synth arrangements, emphasis on instrumental performance, a tight kick performance, a synth bass riff, synth riffs, effected synths, subtle use of white noise, dominant use of riffs

     which caused Pandora to add End of Line by Daft Punk on Tron Legacy to be added to the Teardrop Radio station.

    #2

    Perhaps the biggest "mutant gene" I have is when a song contains the pragmatic content of the life experiences of the performer at the time of the performance, it weighs heavily on my listening experience. The most graphic example brings me back to Massive Attack's Teardrop, in particular the vocals done by Elizabeth Fraser of the Cocteau Twins. As mentioned in Wikipedia:

    Fraser wrote the song's lyrics and was recording the song when she got the news of the death by drowning on 29 May 1997 of her once-close friend, Jeff Buckley. "That was so weird ... I'd got letters out and I was thinking about him. That song's kind of about him – that's how it feels to me anyway."

    Now I have several friends who are singer/songwriters, and while none of the other examples of this phenomenon are known to me, I can promise you that when songs or especially particular performances have this kind of pragmatic association to them, they are much more significant than other "genes". Genes like (in the case of Massive Attack's Teardrop) like:

    extensive vamping, minor key tonality, melodic string accompaniment

    which caused Pandora to add Cleaning Apartment by Clint Mansell and Kronos Quartet on Requiem For A Dream to be added to the Teardrop Radio station, or

    #1

    The last "mutant gene" I had was that I found myself disagreeing with a few of the "genes" attached to the songs I loved.

    Like saying Massive Attack's Teardrop had danceable beats? Seriously? It is not something I've ever seen played at clubs, or on Dance Fever! :-)

    FINAL CONCLUSION

    Pandora can be a good way if you like aspects of music that fall within its gene pool and want to find more music you'll like.

    And I don't want to knock those aspects, because they can be important.

    I've actually written in blogs like First the music, then the lyrics -- and make it rhyme! about how often people don't even care about the words, and that is their right. Pandora as it stands largely mirrors that.

    But if you are like me and want the real/semantic/pragmatic issues and themes surrounding the songs, the albums, and the artists to have a real voice in the decision of what to play next, then Pandora may not be for you.

    Though I will put a link to this blog in a rate and review, and I'll keep it installed in case they decide to do anything

    At a minimum a fix for the hidden gene in #6, the UI problems in #4, and the name spelling error in #4 seem easiest if can't jump in and do all of it. ;-)

  • Sorting it all Out

    One of these days you'll want to stand back, as I am working to ARM myself with another Surface RT!

    • 7 Comments

    Matthew Slyman has become quite the Blog commenter recently, giving Yuhong Bao a run for his money!

    Some of his recent comments from The evolving Story of Locale Support, part 4 (working beyond one's bugs, and the case for an MSKLC update):

    @MichaelKaplan:

    > "The trouble is that it only can save what it can read; and making it able to read them is complicated...."

    So, read them as a plain string, and write them as a plain string. Beginners won't notice the dummy "functionality" is there. And advanced users (who will have put those annotations there on purpose) won't curse MSKLC for stripping them out!

    At least, one might have an option in a MSKLC v1.4b, to NOT strip out the extra chained dead key information?

    @MichaelKaplan: Will you put me in touch with Frank Griesshammer please? I've been looking for ways to bridge the gap between .KLC and Apple's XML-based format (that I haven't studied much yet). I'm developing a range of new keyboard layouts that I hope to propose/promote as a new international standard. (Perhaps naive of me, but what would the world be like without crazy people like me?)

    http://xkcd.com/927/

    Hey, cool link, an oldie but a goodie from XKCD:

    Standards

     Now I myself am a conscientious objector to the creeping normativity that this XKCD comic implies.

    Plus I don't work for Adobe, so Frank Griesshammer is largely beyond my reach or my sphere of influence....:-)

    Though I am working on a 1.5 MSKLC update that just might take a swing at solving some of these problems!

    Matthew also posted a contribution over in the Suggestion Box:

    I'm developing a family of US-DVORAK-based keyboard layouts that include comprehensive extra sets of diacritics, accents, scientific and mathematical symbols via dead-keys. The end result I want is a 100%-key-compatible drop-in-replacement for the built-in US-Dvorak layout, which merely contains extra features that existing Dvorak layout users can graduate into. Also, based on the excellent prior keyboard-layout work of Scott Horne; I'm further developing a range of such layouts for LATIN, GREEK, CYRILLIC etc.; including archaic versions of these scripts (with approximate phonetic equivalence between all of these, to aid language-learning, multilingualism, and to promote Dvorak layouts which are pragmatically better).

    I'm nearly there with my LATIN-script Dvorak layout, and the results are mostly fantastic! In my zeal for usability-testing my own work, I've moved the key-caps on my keyboard after first trying stickers... I'm very pleased with almost everything so far...

    Only... ONE blocker issue if I want the end-result to be user-friendly... I'm using Windows 8 Pro. In previous versions of MS Windows, I had problems with inconsistent treatment of keyboard shortcuts between different application programs (especially in MS Word) when using the US Dvorak layout, or when trying to force Windows to recognize my alternative CTRL-[?] shortcut mappings via MSKLC.

    I NEED YOUR HELP... Before I complain/ ask for help, I must THANK Microsoft for the noteworthy improvements that have been made to language/layout selection ergonomics in Windows 8. I'm really impressed with the changes. Windows 8, quite rightly, labels the keyboard layouts according to whether they're broadly based on QWERTY, AZERTY, Dvorak, etc. The keyboard shortcut mappings (CTRL-C, CTRL-V etc.) generally follow the pattern belonging to the keyboard layout family (so that CTRL-C is for COPY even if you're using Dvorak, which I couldn't get to work in Windows 7 etc.) Unfortunately, I cannot work out how to label or meta-tag my own custom-generated keyboard layouts, to let Windows 8 know that my custom layouts are based on Dvorak! Besides MSKLC, I've tried KbdEdit Premium; with similar results for this particular feature: In the Windows 8 language/layout popup/control panel widget, my layouts are simply listed as "Keyboard", rather than listed as belonging to any particular family (QWERTY, AZERTY, Dvorak etc.) Even the author of "KbdEdit" has looked into this and cannot yet figure out how to meta-tag my layouts! Will you help please? How can I meta-tag my custom layouts to let Windows 8 know that I want to use the Dvorak-based keyboard shortcut mappings?

    I'm not sure whether MSKLC 1.5 will be able to do much in that vein, though.

    Although I formally requested that the owners of the >= Windows 8 optimized keyboard layouts give me a way to access, modify, and author them, the folks in Ireland didn't seem especially interested in helping me on that effort.

    Though they do still owe me a guest blog about the optimized layouts, an obligation that came out of a problem covered in a series of blogs:

    Perhaps I can horse trade here a bit, what with their serious though as far as I know unwitting insult to the Cherokee Nation, and the fact that they never got around to writing that guest blog! :-)

    Oh well, at least we still have the On Screen Keyboard (OSK):

    On-Screen Keyboard

    which as I noted before is still quite stretchable:

    Very big On-Screen Keyboard

    I think I need to have a chat with some people in Ireland now, in preparation for my MSKLC 1.5 Passion Project described previously in Developing for a jailbroken Surface RT -- dare I disturb the universe?, That MSKLC with a jailbroken Surface RT thing? I dared to disturb the universe, and...,, 2nd amendment issues don't apply; I'm not ARMed!, and of course the earlier What I'd do with my 'Microsoft 20% time'.

    I guess this might be a good time to start getting busy!

  • Sorting it all Out

    And at least 38.2% of Montenegrins can proudly cry "the version after next of Windows was my idea, and it's all about ME!"

    • 3 Comments

    When is it a dialect, and when is it a language?

    I know, I know. "A language is a dialect with an army and a navy."

    Or as the Yiddish linguist I'm about to lovingly misquote might say:

    אײ סובקולטור איז אַ שפּראַך מיט אַן אַרמײ און אַ פֿלאָט

    But what if the navy isn't used, the army doesn't fire a shot, and the majority of the country still identifies with the older language?

    We're not talking about Bosnian. Or Croatian. Or Serbo-Croatian. Or even Serbian.

    We're talking about Montenegrin.

    The language of the people in Montenegro.

    And the people just voted themselves out of Serbia, and just like that became Montenegro.

    Simple majority rule, democracy at its very best!

    Though for the language itself, things were a little more complicated.

    Rather than 100%, more like 38.2% of them who say that is what they're speaking is Montenegrin (as opposed to the 41.6% who say it is Serbian that people are speaking!).

    The letters are:

    Latin collation order
    Latin A B C Č Ć D Dž Đ E F G H I J K L Lj M N Nj O P R S Š Ś T U V Z Ž Ź
    Cyrillic А Б Ц Ч Ћ Д Џ Ђ Е Ф Г Х И Ј К Л Љ М Н Њ О П Р С Ш С́ Т У В З Ж З́
    Cyrillic collation order
    Cyrillic А Б В Г Д Ђ Е Ж З З́ И Ј К Л Љ М Н Њ О П Р С С́ Т Ћ У Ф Х Ц Ч Џ Ш
    Latin A B V G D Đ E Ž Z Ź I J K L Lj M N Nj O P R S Ś T Ć U F H C Č Dž Š

    Of course they prefer the Latin to the Cyrillic, as most do in the pot-Soviet world. Nothing too personal. But the Russians kept invading!

    As per Wikipedia's article about Montenegrin, According to the latest poll of 1,001 Montenegrin citizens conducted by Matica crnogorska in mid 2010:

    • 41.6% Serbian
    • 38.2% Montenegrin
    • 12.3% - Serbian, Montenegrin, Bosnian, Croatian and Serbo-Croatian are one and the same
    • 4.4% Serbo-Croatian
    • 1.9% Bosnian
    • 1.7% Croatian

    But those two extra letters give them an edge in their argument that not all of those Slavic languages have....

    So the pro-Montenegrins of Montenegro won the war without firing a shot!

    So my Slovakian friend and colleague has 12 bugs assigned to her, all about the need to move from sr-Cyrl-ME and sr-Latn-ME to me-Cyrl-ME and me-Cyrl-ME.

    It could have been one bug.

    In fact, it should have been one bug.

    She isn't complaining though. They've all been tagged for vNext Follow Up.

    So, assuming I haven't been fired or arrested or died by next version, I can look forward to seeing those 12 bugs assigned to me!

    And then I'll be wishing it was just one bug. :-)

    And at least 38.2% of Montenegrins can proudly cry "the version after next of Windows was my idea, and it's all about ME!"

  • Sorting it all Out

    'Lucida Sans Typewriter Bold Oblique' is not really such a great name for a font

    • 2 Comments

    Over in the Suggestion Box, Mike asked:

    LOGFONT LF_FACESIZE potential buffer overrun?

    LOGFONT LF_FACESIZE is only 32 characters, but I found a font name (I assume installed by Windows) that was greater than 32 characters:

    Lucida Sans Typewriter Bold Oblique

    Sure enough it crashes at least two programs I tried just by picking it.  Bad limitation or just poorly written code?

    Well, on the whole I would tend to blame the crashing programs.

    It is their bug, after all!

    I am of two minds on this issue.

    On the one hand, the name of the font is its least important attribute -- the font file name is what's important.

    Most of the filenames fit 8.3 naming rules.

    But on the other hand, the name of the font is its most important attribute -- the font author has their ego and their creative spirit tied up in it.

    We are, however, confusing other attributes of the font here.

    The font's core identity is Lucida Sans Typewriter; the fact that it may choose to be bold or oblique is kind of besides the point, isn't it?

    So in this case the bug is in the program trying to cram other attributes into the name that are better served by other members of the LOGFONT.

    This neatly sidesteps the entire issue, since Lucida Sans Typewriter fits well within the limit! :-)

    If you want me to tackle the larger issue, you'll have to come up with a longer core font name.

    If you can!

  • Sorting it all Out

    "My old group? I couldn't really reach them anymore, so I talked to my people and had them 86'd..."

    • 0 Comments

    Nothing technical whatsoever in this blog today!

    It was a cross-eyed conversation, to be sure.

    Have you ever had one of those?

    They can be rewarding, though usually they're just grueling.

    Every once in a long while, they can be both!

    She was an ex-girlfriend.

    Aren't they all?

    But she was the first ex who was a full-time serf once I became a serf, over 4400 days ago.

    At least she wasn't the not ex of a serf, the one who wasn't as separated as she claimed to be.

    Talk about grueling and unrewarding! That one, I'll keep off the Blog!

    She had just been relieved of her job, and told to find a new one, or absent that, to just get out.

    Given all that, she wasn't too terribly happy, and more than a little bit stressed.

    "So Michael," she opened, "what are you doing in a window office in the Partner Solutions Center? Weren't you on some localization team somewhere?"
    "They were a World-Readiness team attached to a localization team," I quipped, annoyed at the odd distinction that no normal human makes.
    "Sorry," she offered. "But what are you doing in Building 25    "Funny you should ask me that," I start. "My old group had some real challenges with accessibility and those issues kind of came to a head."
    She blinked. "So you quit and end ended up here?"
    "No, nothing like that. But they were holding me back," I explained. "I had to do something."
    "What did you do?" she asked.
    "I had to do something, like I said. So I thanked them for all of their efforts, and I 86'd them."
    "You fired them all?" she asked nervously. "I thought you were a Program Manager 2. Where'd you get the authority?"
    "Oh, I got promoted," I explained "I didn't do it myself. I have people to do that sort of thing now."
    "Wow, I never knew you had it in you!" she said wonderingly. "Are you a DE or a TF or a VP now?"
    "Talk to my people, we'll have lunch!" I quipped.

    Eventually I dropped the charade, and explained that the World-Readiness team attached to a localization team was still around, and I was still working for them. But they did all get moved to Building 86, which when everything is said and done may cost ¾ of a million to retrofit accessible entrances, throughways, and egresses. So rather than firing me or making me work from home, they paid the low low price of $500 to move me, into a window office in the Partner Solutions Center. I work from home half the time and visit the perpetually inaccessible 86 maybe once a month.

    And there was a happy ending -- she got an offer on the last day of her search.

    All things considered, this particular cross-eyed conversation was pretty rewarding!

  • Sorting it all Out

    What is the freaking point of OutputDebugStringW, anyway?

    • 9 Comments

    The OutputDebugString function has a long history.

    Though perhaps not such a noble one.

    Now with most Win32 functions that have string parameters, there is a 'W' version that takes Unicode, and an 'A' version that does not.

    In a just universe, each would have a purpose.

    It is unfortunate that we don't live in a just universe!

    Because the very first thing that OutputDebugStringW does is convert it's Unicode string out of Unicode.

    What the hell is the freaking point of this function?

    It's like the Petunia Pig of Win32.

    And we all know Petunia Pig had no point.

    I mean, what was she there for, to make Porky Pig seem more manly?

    We all know that Porky Pig is gay!

    But now, thanks to the good people in Visual Studio, the GB folks in the PRC may be looking at OutputDebugStringW.

    Which could make it the Yoko Ono of Win32.

    Sigh.

    I'll put a bug in....

  • Sorting it all Out

    Ask an armchair linguist a question, the answer may not be accurate. But it will at least be astute...

    • 5 Comments

     

    One of the tags I use on some of the blogs in this Sorting it all Out Blog is

    Linguistic

    Like all armchair linguists, I have no problem saying something is linguistic, without trying to formally define what I mean when I use the term.

    It's like porn, in a way. I know it when I see it. You know?

    Today's blog has some linguistic intent.

    Some linguistic aspirations.

    It started, as these sorts of things often do, with a question.

    A question from someone who was trying to use our NLS feature but finding the results less than what he had been hoping for....

    We are using Arabic. The translation for days of the week in placeholder %1 in "Every %1 effective %4 at %6" are coming from an external source (NLS).

    However, the external translations contain a definite article which should not be used when the day of the week is following the adverb "every". If the current translations listed below are used, the meaning of the sentence changes from "every Friday/Monday etc." to "all day Friday/Monday etc.).


     That would be not just a linguistic issue but a pretty Linguistic issue, if you catch my drift.

    They went on to provide some suggested changes:

     

    Day Current name Suggested change
    Sunday الأحد أحد 
    Monday  الاثنين اثنين 
    Tuesday  الثلاثاء ثلاثاء 
    Wednesday الأربعاء  أربعاء 
    Thursday الخميس  خميس 
    Friday الجمعة  جمعة 
    Saturday  السبت سبت 

     Now if you know nothing about Arabic than a lot of this is just beyond your ken. And your Barbie too, for that matter.

    I will save some time and simply concede the point. Our words that we are using for day names do indeed contain the connotations they have been charged with.

    So, should we make the suggested change, in that case?

    Hmmmm.

    Maybe.

    The right hand column does represent a change, to be sure.

    Perhaps more of a change than they intended?

    It seems like they unintentionally, in the process of stripping out that implied "every", have perhaps succeeded in doing something that no one else has ever accomplished.

    They have provided seven day names that might fit right into the LOCALE_SABBREVDAYNAME* slots!

    I mean, they weren't exactly suggested to us as abbreviations, but they are shorter!

    Perhaps their destiny is to be the abbreviated day names.

    Any Arabic speakers want to give some input on this, for a future version of Windows and the .NET Framework?

  • Sorting it all Out

    Blame Canada! aka Where is the RIGHT CTRL key on *this* keyboard, Canada?

    • 10 Comments

    They speak of it quietly, so as to not upset the Canadian standards people.

    But the plain truth is that we simply don't like this keyboard layout.

    The Canadian Multilingual Standard keyboard (CAN/CSA-Z243.200-92) is the one I mean.

    I could blame Ian James for it (the SLM logs clearly point him out to be the culprit, after all!), but that was a lifetime ago, and he was really just following orders. Following a standard, in fact.

    It wasn't his fault that they were stupid orders, and a stupid standard.

    Look at it:

    Try to ignore if looking at it made you throw up in your mouth a little.

    At least you kept it down, right? :-)

    The above image, which I gleefully stole from here, helps to highlight why I and so many of my colleagues don't care for this keyboard layout.

    You can see the layout here.

    The base state;

    The shift state:

    The (mostly empty) AltGR state:

    And the completely empty) Shift+AtGR state:

    Keep those mostly empty key states in mind as I point out the final two states.

    There is the RIGHT CTRL state:

    And the Shift+RIGHT CTRL state:

    Now look again at that keyboard hardware, presumably sold in Canada:

    Where is the RIGHT CTRL key?!?

    Wow. Two whole shift states completely unavailable to us, all of which would have fit neatly in the AltGR and Shift+AltGR states.

    For me, this is an accessibility issue. They aren't making those characters accessible to me....

    People ask me al the time how can they add shift states like this in MSKLC, but I always refuse to answer. I don't want to encourage anyone else to author such layouts!

    To add insult to injury: there is no RIGHT CTRL key on my Surface keyboard:

    Et tu, Surface?

    Maybe the Canadian Standards policy wonks need to rethink their multilingual keyboard!

  • Sorting it all Out

    Authoring keyboard layouts for non listed languages

    • 1 Comments

    Dr. Dilan Roshani just sent me a message via the contact link:

    Subject: Non listed language

    Thank you for your great blog. I have a rather rare issue using MSKLC to create
    my custom keyboard. I would like to create a keyboard for Kurdish language but
    Kurdish in not listed among the predefined languages in MSKLC. The application
    does not allow me to create keyboard from scratch for a coutume defined
    language. Do you have any solution to this issue please? There are more that
    7000 languages in the world and I am not sure why MS application would not
    allow to define a non listed language.

    In my case I am trying to create a Unicode based keyboard for Kurdish language.

    Thank you

    Dr. Roshani,

    The very first release of Microsoft Keyboard Layout Creator (version 1.3) had this limitation.

    But with the second release (version 1.4), I removed that restriction.

    You can download MSKLC 1.4 for free from The Microsoft Keyboard Layout Creator MSDN launch page.

    Once you have it, there are four ways to make it a Kurdish keyboard:

    1)  You can create a Kurdish custom culture using .NET 2.0 or better, in which case Kurdish will be on the list of languages to select.

    Need more info about custom cultures? See How to: Create Custom Cultures and/or .NET Internationalization: The Developer's Guide to Building Global Windows and Web Applications: Chapter 11 - Custom Cultures.

    Note that you need the custom culture to author the keyboard layout; the people who install the layout do not.

    2) You can create a Kurdish custom locale using the Microsoft Locale Builder.

    For more information on MSLB, see Enable Global Apps With Locale Builder And Windows Vista. I forget where the latest published version is, so if no one else knows I guess you can stick with the custom culture.

    Note that just as with #1m you need the custom locale to author the keyboard layout; the people who install the layout do not.

    3) You can install Windows 8, which includes a Kurdish locale on it!

    You can base your keyboard on it, and the people who install your keyboard do not have to be running Windows 8.

    4) You can download the Kurdish Language Interface Pack from directly in the Language Profile UI.

    And then you can check out the keyboard we did, either the optimized one (below)

    on the regular one (which you can load into MSKLC!).

    Check out our Kurdish LiP, too! :-)

  • Sorting it all Out

    You need to dot every İ, not dot any I, dot every i, not dot any ı, and cross every t in Turkish

    • 0 Comments

    A couple of days ago, friend and colleague from Microsoft Damit Senanayake put a link up on my Facebook wall (timeline?) written by friend and colleague from Unicode Tex Texin:

    Tex's Internationalization for Turkish: Dotted and Dotless Letter "I" sells itself short by summarizing itself as a

    Discussion of the Internationalization problem with the dotted and dotless letter 'I'

    because this contribution does so much more than that. - it talks about the history and the alphabet and the encodings, and more.

    I have touched on some of the issues in blogs of mine over the years, to be sure.

    But even if I put them all together in a tag, what Tex has assembled here is an awesome resource -- HIGHLY recommended!

    I'll add a few blogs of mine for additional supporting material and fun stories:

    Enjoy!

  • Sorting it all Out

    “The ‘Smart Quotes’ are leaking all over the Internet!”

    • 8 Comments

    I've talked about Word's "Smart Quotes" many times over the years, in blogs like this one and this one and this one and this one and this one.

    Oh, and then there's this other one.

    I like that last one best since Gwyneth from Office gave me that cool table from some version of Word or another.

    In fact, I like it so much that I'll show it again here:

    Symbol
    Unicode Value
    Language
    'O'
    U+0027 Danish, Dutch, English, Finnish, Norwegian, Swedish
    "O"
    U+0022 Danish, Dutch, English, Finnish, Norwegian, Swedish
    ''O''
    U+0027 Danish, Dutch, English, Finnish, Norwegian, Swedish
    ‘O’
    U+2018, U+2019 Dutch, English, Italian, Norwegian, Portuguese, Spanish
    ‛O’
    U+201B, U+2019 Dutch, English, Italian, Spanish
    ’O’
    U+2019 Danish, Finnish, Hungarian, Norwegian, Swedish
    ,O‘
    U+201A, U+2018 Bulgarian, Czech, German, Icelandic, Lettish, Lithuanian, Polish, Romanian, Russian, Serbian, Slovak, Slovenian, Ukrainian
    ,O’
    U+201A, U+2019 Afrikaans, Dutch
    ‛O,
    U+201B, U+201A Greek, Italian, Turkish
    “O”
    U+201C, U+201D Dutch, English, Italian, Portuguese, Spanish, Turkish
    O”
    U+201F, U+201D Dutch, English, Italian, Portuguese, Spanish, Turkish
    „O“
    U+201D, U+201C Bulgarian, Czech, German, Icelandic, Lettish, Lithuanian, Polish, Romanian, Russian, Serbian, Slovak, Slovenian, Sorbish
    „O”
    U+201E, U+201D Afrikaans, Danish, Dutch, Hungarian, Polish, Russian
    ”O”
    U+201D Danish, Finnish, Norwegian, Swedish
    “O„
    U+201C, U+201E Greek, Italian, Turkish
    ‹ O ›
    U+2039, U+203A Albanian, Byelorussian, Estonian, French, Greek, Italian, Lithuanian, Norwegian, Portuguese, Romanian, Russian, Spanish, Turkish
    ›O‹
    U+203A, U+2039 Danish, Polish, Serbian, Slovak,Slovenian
    ›O›
    U+203A Finnish, Swedish
    « O »
    U+00AB, U+00BB Albanian, Byelorussian, Dutch, Estonian, French, Greek, Italian, Lettish, Lithuanian, Norwegian, Portuguese, Romanian, Russian, Spanish, Turkish, Ukrainian
    »O«
    U+00BB, U+00AB Croatian, Danish, German, Hungarian, Polish, Serbian, Slovak, Slovenian
    »O»
    U+00BB Finnish, Swedish
    〝O〟
    U+301D, U+301F East Asian
    〞O〟
    U+301E, U+301F East Asian
    「O」
    U+300C, U+300D East Asian
    『O』
    U+300E, U+300F East Asian
    ׳O׳
    U+05F3 Hebrew
    ״O״
    U+05F4 Hebrew

     But it isn't just Word.

    PowerPoint does something like this from their own list.

    OneNote does some of this too.

    And Publisher.

    Outlook picks it up from Word, of course.

    There are probably others.

    I think there might be a shared Office service in the latest version that some (but not all!) of them use.

    And after all these years it has leaked elsewhere.

    Like to blogging software and apps.

    Just the other day I was asked to comment on a Performance Counter which, when localized into French, turned an ordinary U+0027 to a U+2019.

    They definitely preferred the way it looked, but I was reflecting on the fact that none of our keyboards have these fancy quotes.

    What if some developer writes a script comparing the name? Better use the ID value, just to be safe!

    I'm afraid to ask whether

    1. they did the work in Word, or
    2. they did the work in some other Office app that does this, or
    3. they used some non-Microsoft Suite that does it, or
    4. their localization tools did this, or
    5. they used MSKLC and added the smart quotes to their own keyboard.

    Only one answer (#5) would make me blush and smile; all the rest would just make me a little bit sad.

    I shudder to think of how many will mangle this blog's title....

    “The ‘Smart Quotes’ are leaking all over the Internet!”

Page 1 of 257 (3,844 items) 12345»