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.
Back in December, Cheong00 asked in the Suggestion Box:
I just bought Nokia Lumia 920 and found that it doesn't have built-in Quick IME (also known as Simplified Changjei).
It's sad that the IME is not there because I'm used to it and it's been shipped with Traditional Chinese versions of Windows since the days of Win3.X. Do you know if I can get to somewhere.
If not, maybe you can point me to the tools needed to port an IME to WP8? I don't mind doing that in my free time if I have to. (The touch keyboard layout would be the same as "Cangjie Keyboard"... it would also be great if I can just reuse the layout and just replace the libary of key combinations)
Unfortunately, they did cut pretty heavy into the Windows 8 keyboard list when they decided what to enable in Windows Phone 8.
There are several other examples of this, such as the fact that neither Cherokee keyboard (Phonetic or Cherokee Nation) made it onto Windows Phone 8.
This is especially unfortunate since there is a United States (Cherokee) option in the regional settings, and they shipped what looks like fancy new Cherokee font on Windows Phone 8.
So why did they skip these?
I did change this other setting to get Cherokee months and days, at least!
The closest we get is all the Charmap apps in the App Store, but they are a pain to type with. ;-(
I'll send some mail and see if I can get some oversights corrected in a future release.
And I'll ask about the Quick IME, too!
This was going to be the month.
The month to break the six year streak.
The streak where every month at least one person sent me email about a particular issue.
And then, a few hours ago, Marcus messed that up.
His email in part read:
My code for dealing with the Japanese calendar has run into a .NET Framework bug. How do you successfully get the end date of the fourth era?
I have to assume that Marcus isn't Japanese, and has never been to Japan, has never loved Japan.
Such a person probably wouldn't ever have asked how to "successfully get the end date of the 4th era", since the answer involves an inquest after the demise of the Emperor of Japan.
This is knowledge that no one that I know of has, and that I certainly wouldn't want Microsoft to have any special insight about or into, even if they do maintain Microsoft HealthVault!
The answer to Marcus: fix your code, to allow for the Emperor of Japan to be alive!
And then I pointed him to some blogs from Shawn that talk about the issue (Japanese Calendars, How do I Test Support for Additional Eras? and Extending the Windows Japanese Calendar Era information), so he could test out his code after he fixed it.
Now I wouldn't usually feel very comfortable speaking on behalf an entire country.
But I'll make an exception in this case! :-)
Now for the record, I've spent some time on a machine with the entire list from Wikipedia's List of Japaese Era Names on it, and ran into no significant problems with them.
Converting to and from the lunar calendar isn't that hard, Shawn! :-)
I've actually talked to some people about this in the past, and a few years ago (during a health scare about the Emperor), the CTO of Microsoft Japan sent a woman he trusted from MSKK to Redmond to discuss the unthinkable, something no one who is from Japan and who loves Japan would really want to think about: what happens when there is a new Emperor? But she did the job remarkably well, and helped everyone understand the impact on our products. I won't call her out by name because she is modest, but she was somewhat unwillingly drafted into the army of "People Who Know Things No One Is Allowed to Know", and she performed the job beautifully.
I doubt I would have fared as well stepping outside of my own comfort zone, my own conventions....
I'll tell you a secret - I got glasses before I had a prescription.
That was just me breaking people into the concept of having them, since I knew I was going to need them.
And I'll tell you another secret - I got a cane long before I needed it.
It's just that I was falling during the daytime (the whole multiple scerosis, ICD-9 code 340 thing), and I decided I'd rather people assumed I was a gimp than a drunk.
And I'll tell you one more secret - I got the Independance Technology iBOT 4000 probably almost two years before I really needed it.
Though it's good that I did; soon after I got it, they stopped making them!
Now don't get me wrong here, the iBOT has always been useful.
But a wheelchair that costs USD$26,100 is probably something of a luxury, at first.
Now, post hemi left hip replacement and still not cleared to walk ten feet with a walker unsupervised, I rely on this chair in ways I never imagined I'd have to.
Suddenly having to care in the bathroom stalls comply with ADA guidelines.
Suddenly having to care what side of the toilet the iBOT will go on.
Now, more than two decades after being diagnosed with MS, I am officially handicapped.
When the hell did that happen?
I wonder what happens next....
T.S Eliot's J. Alfred Prufrock once asked "Dare I disturb the universe?"
I may have started thinking along those same lines.
Perhaps I should explain why I'm asking Do I dare? Do I dare? for those reading along here who aren't in my mind...
After reading How to Jailbreak the Microsoft Surface RT and related articles chronicling the efforts of hackers to jailbreak the Surface RT, I admit to feeling somewhat torn.
The thoughts behind blogs like Still with the Itanium? and ARM port of Windows? No comment. Followed by a comment.... and 2nd amendment issues don't apply; I'm not ARMed! are in my brain.
So I start wondering.
Wondering about the two requirements I had of ARM that were being denied to me:
Could these two things be accomplished on a jailbroken Surface RT? I mean, a jailbreak does not always allow everything, right? But maybe this one allows these two things.
Maybe there is a congregation to hear me righteously preach about Surface RT keyboards and say Amen!
Just the other day, Joshua comented in another blog of mine:
Windows ARM is as good as dead. The only thing that can save it now is to push out an update that fully unlocks the actual desktop, but Microsoft hasn't the guts.
Maybe he's right - but this jailbreak may be his Lazarus!
We do some Open Source projects at Microsoft, right? :-)
Wow! A subpage off of this one documenting ARMed desktop apps?
Could I resurrect those ad hoc SETUP.EXE, KBDUTOOL.EXE, and KBDMSI.DLL binaries I test compiled for ARM?
Could I build a new MSKLC.EXE to run on WOA, too? Maybe the one I already have would work?
Could I update the setup to add ARM and remove IA64? After all, as Dvorak pointed out, Itanium killed the computer industry, and perhaps a jailbroken Surface RT could bring it back to life!
Would you have to keep jailbreaking after every reboot to use installed keyboards? Or would doing it for installs suffice?
Where on earth could I find testing resources for this project?
Could I possibly get permission to enlist people outside of Microsoft like Marc Durdin to help out here?
How would the NDA be worded? :-)
And (most importantly) could I do all of this without getting fired, perhaps even charged and prosecuted?
Indeed, could I do any of this without getting fired, perhaps even charged and prosecuted?
Might I be fired, perhaps even charged and prosecuted, for even posting this semi-serious blog? I hope not!
The moxie of designing and building and releasing apps for jailbroken devices is leaving me a little light-headed. You?
I mean, former Softie Brian Valentine taught me that it's more productive (if not better) to beg for forgiveness than ask for permission.
But even posting this blog might see my cardkey deactivated before the week is up.
I think today would be a good day to talk to my manager (a Senior PM lead) about this.
And maybe his manager (a Principal Group Manager).
And maybe his manager (a Senior Director), too. Just for good measure....
I probably don't need to see his manager (a Corporate VP in charge of development) or his manager (a corporate VP in charge of Windowes) or her manager (the CEO).
At least not right away. :-)
I'll try my best to be constructive in my efforts to dare to disturb the universe.
And I'll also try very not to get myself fired....
Wish me luck!
Prior parts in these series such as PowerShell ISE will do *everything* (though some assembly may be required!) and PowerShell ISE (or legacy) will do *everything* (and it's really easy to start!) and PowerShell ISE will do *everything* (IF YOU LET IT!) all have some things in common.
They are all relevant.
They are all useful.
This fourth part of the series is the veriform appendix, whose only reason for being is masochists who are so sure that Windows 8 is more intuitive that they laugh at those easy shotcuts, certain that the intuitive Windows 8 user interface will make it all easier.
This part is to knock the wind out of their sails a bit....
To start, we'll go back to Windows 7, which was pretty intuitive here:
See how all four options are right on the Start Menu?
Windows 8 got rid of that.
So if you search for PowerShell in apps, you do get one relevant hit:
Unfortunately, it lies when it shows that image.
It launches the legacy PowerShell.
The one with the default Raster Fonts setting that corrupts so well.
Crap. And other four letter words.
It turns out we have to go to the Control Panel (which means it won't work on ARM, or on the non-Pro Surface.
Sigh. And other four letter words.
At least we can find the Control Panel!
Cool! And other four letter words (not all four letter words are bad!()
We dig into the control panel a bit.
System and Security? That sounds good.
Let's try it:
There we go!
That's where we hid the PowerShell treasures!
Just pick either PoweerShell ISE (try not to pay attention to the missing fourth option on the list -- since you aren't supposed to use it anyway!).
We made it!
To the Integrated scipting Environment!
Of course the ones who used those dreaded easy shortcuts got there days ago!
Plus I doubt your ever would have found it without my bread crumbs! :-)
A timely follow-up to PowerShell ISE (or legacy) will do *everything* (and it's really easy to start!) and PowerShell ISE will do *everything* (IF YOU LET IT!)....
After all, in that first blog I talked about Internationalization.
But all I really went on about was the ISE (Integrated Scripting Environment), and how easy it was to get to, no matter how hard Windows 8 might try to make it.
So where's the Internationalization?
Where's the World-Readiness?
Well, there is one great thing the ISE brings to the min.
The .NET Framework!
And its namespaces, like System.Globalization and System.Globalization.DateTimeFormatInfo and System.Globalization.NumberformatInfo.
All you have to do is add a CurrentCulture or a CurrentUICulture, and stir!
Of course, it is important to either
So first you have to find out if the environment is set up properly when your cmdlet is called.
If it is not set up properly, then you will have to figure out how to set it up....
I suppose you will have to answer that, based on your cmdlet's scenario!
For example do you need your user interface to be localized?
Just set the CurrentUICulture.
And vdo you need to format dates and times and number and currency values?
Just set the CurrentCulture.
Do you need to sort lists of items?
Again, just set the CurrentCulture.
Do you need the two settings to be the same?
Even easier! Just set CurrentCulture = CurrentUICulture!
And is your cmdlet a lower level workhorse that relies oin higher level cmdlets to do the heavy lifttng?
That's easiest! Just don't set a bleeding thing, and let the bloody higher level protocols that have all the bleeding answers provide all the bloody answers.
They wanted to, anyway. :-)
This is going to be a quick follow-up to PowerShell ISE will do *everything* (IF YOU LET IT!).
Someone asked me how to use the PowerShell ISE in Windows 8.
Now everything I had done in prior blogs had usually been on Windows 7 or on Server 2008 R2, and I had never even thought about the Windows 8/Server 2012 story.
At the same time as luck would have it, someone at work had asked me to do something similar (I had been resistant since it seemed unneccesary to me at the time).
I figured I'd do a quick blog that could be reused for the other thing, too.
Well, I have easy steps, right here!
To get the 64-bit legacy PowerShell on 64-bit Windows (or the 32-bit legacy PowerShell on 32-bit Windows), just run:
To get the 64-bit PowerShell ISE on 64-bit Windows (or the 32-bit PowerShell ISE on 32-bit Windows), just run:
To get the 32-bit legacy PowerShell on on 64-bit Windows, just run:
To get the 32-bit PowerShell ISE on 64 bit Windows, just run:
They work for every version of Windows that has PowerShell, in all languages -- programmatically, via Start|Run, via script, anywhere.
You can start it up or send it a cmdlet, whatever. :-)
Each type of PowerShell has its one flaw, mind you.
The legacy PowerShell is using raster fonts,which should be changed to a TrueType/OpenType font like Consolas:
And the ISE is set to use Lucida Console by default; it too should be using Consolas in Tools|Options in the ISE:
And NOW we're done.
Now of course the people asking were mostly talking about doing it through the user interface.
Not an unreasonable request, and I'm not an unreasonable guy.
But it's gonna take some really serious explaining....
So for the full answer including the user interface piece, you will have to wait for Monday's blog! :-)
I suspect that in the end it will come out a bit less cheery than today's blog was....
Foreshaedowing: a sign of quality literature!
Generally speaking, everyone knows software has bugs.
There is one class of bugs that, while important to fix, won't mislead or cause wrong decisions to be made.
Like this one that just came in:
I noticed the prices of these apps are listed in reverse order in Windows 2012 Arabic LPK.
For example the price of World Atlas is listed as $99.1 instead of $1.99.
Is this a known issue?
It's funny how we always call Arabic and Hebrew "Right-to-Left" languages.
They are Bidirectional!
Numbers, for example, are expected to be read from left to right in Hebrew and Arabic.
Even when the letters are definitely expected to flow from right to left!
Now of course it's important for them to fix the bug (it's a very recent regression, for what it's worth - and maybe it doesn't always happen anyway).
But no one will misread the amounts.
At most, they will do a double take and put a picture on Tumbler to share with friends.
I don't have a Tumbler account, so I'll just share it with all of you! :-)
The other day, I was reminded about two old blogs of mine:
Here's the art:
Anyway, I was reminded when a colleague asked me whatever happened to the bug (is was too late in the cycle to fix at that time):
May I ask what was the decision on bug described in your WideCharToMultiBytes vs. DrawTextW blog post? Was a bug logged for this issue?
Why I'm asking: From time to time we receive questions about spacy Cyrillic in Visual Studio on EA OS's. Though we're telling them that there's nothing wrong with their code and that there's a workaround in VS (set font to Segoe UI instead of Automatic which forces font to be inherited from OS in VS settings, more on that here), it would be great to provide more details to those who ask. Reference to your blog post is good but bug # and your (Windows) final decision in addition would be even better.
I thought maybe I should go follow up on that bug in DrawText, since we have time.
The bug is easy to fix, as I pointed out in that second blog:
The bug is in using WideCharToMultiByte to detect "wide" characters by converting it using a code page. Because every CJK code page has some characters that are not double width that is situated one of the two byte ranges inside the code page (other characters that can hit this problem include random symbols and such). Clearly to fix this in any version would require a different, more reliable test for full width characters! For example, a simple call to GetStringTypeW(CT_CTYPE3, ...) checking for the C3_FULLWIDTH character type flag -- the non locale specific code that should have been there all along....
I think I'll go have a chat with some DrawText dev owners.
I'll even offer to do the work if they want.
Or maybe I'll code up the fix and ask them to do the CR.
The fact that a partner team noticed the bug and saw my blog explaining how easy the fix is won't hurt my case.
Bad code is just a bad idea, doncha think?
The fact that I'm offering to do all this here is fun, too.
In case there was any doubt, I'm back! :-)
The other day, colleague David noticed:
Does anybody know off-hand if launching Explorer programmatically (using either ShellExecute or ShellExecuteEx) should fail to open a directory containing surrogate pairs?
If I first create a directory, say, “c:\コンポ𠮷𠮟㐂“, and then run… ShellExecuteW(NULL, L"open", L"explorer", L"c:\\コンポ𠮷𠮟㐂", NULL, SW_SHOWNORMAL);
Then ShellExecute succeeds and Explorer opens, but it just punts and opens My Documents.
If I try the above with any other existing path that does not contain surrogates (like “c:\test” or even “C:\コ㐂”) then the Explorer opens in the requested directory.
This occurs on both Win7 and Win8. Is this an expected limitation with surrogate pairs?
He's right, it doesn't find supplementary paths.
I doubt it is actually ShellExecuteW, for what it's worth.
Something to do with the verb syntax, or how NTFS indexes the files, or more likely the way Explorer searches them, maybe?
Depressing that even in Windows 8 such problems exist.
A good bug with surrogate pairs and supplementary caracters, in any case!
There was a company.
Some would say a great company.
I wouldn't say that, though.
We'll just say it is a huge company and leave it at that.
The company is Johnson & Johnson.
They created a subsidiary to take Dean Kamen's iBOT Mobility System and bring it to the world.
Independence Technology is the subsidiary.
And the iBOT changed my life.
It brought balance to a situation robbed of balance years ago by Multiple Sclerosis.
Of course there were some challenges.
Like being considered a Class III assistive device.
The USD$26,100 price tag didn't help, either.
The fact that Medicare, Medicaid, and most private insurance companies didn't consider it to be 'medically necessary' also hindered the iBOT effort.
Current plan record: as of March 2014, Independence Technology will stop supporting the iBOT Mobility System.
We all have problems, I guess. :-(
Anyway, the NICAD battery that powers the iBOT is expected to last a year.
That's how long Independence Technology warrants it, and how long DEKA (Dean Kamen's think tank) warrants it.
So last year, when my battery started faulting ten months in, I admit I was relieved to have it replaced free of charge, saving me the $1100 charge for the replacement battery! 😁
The faulting battery was a potential fire/explosion hazard, so it is good to get it replaced, for safety reasons, too!
But now we get into trouble.
Because now the new battery (only 6 months in) is faulting.
According to Independnce Technology, this is not a warranty repair, even though it faulted just six months into its life.
I will have to pay the $1100 myself to replace the battery.
We'll see if my fight succeeds to make them take responsibility for their errant parts.
My David vs. their Goliath!
So how do I feel, years after The exciting nature of being ordinary and The ordinary nature of being exciting?
Well, pretty ordinary, all things considered.
The new Premera Blue Cross Health Savings Plan has done and had its way with me.
And now that I have to pay $1000 to $3000 in deductible charges of Microsoft's money via a debit card they provide, and that I now have to pay the next $1000 to $3000 of my own money in co-pays, perhaps Microsoft will succeed in transforming the corporate culture at Microsoft from thinking
It's All Free!
It's All Covered!
so perhaps Microsoft will succeed in feeling a little more like everyone else in the country when it comes to health care coverage.
And perhaps they will finally get every one of those 100,000 or so full-time employees to start thinking about health care and not letting fraud happen quite as easily or quite as often as they used to let it.
So they win.
Though I'm still going to be making $1000 to $3000 less than I used to.
So I will choose to not neal before Zod (Microsoft) on this one.
Because yes, he was a brilliant military leader who was unappreciated by his people.
But he, like Microsoft, will feel kind of ordinary from here on out.
You win, Microsoft.
But because of the way you won, you have lost something you'll never get back again from me.
Neither my iBot you paid for or the almost $170,000 you spent on me will get that back....
I got mail yesterday from John Hudson and Christopher Hooker about the Microsoft Keyboard Layout Creator and Windows 8:
I have noticed that the installer programs for theBiblical Hebrew keyboards are causing problems inWindows 8. They still work, but one must go throughsome rather dire security warnings to complete the installation, including one place where the option to proceed is hidden. To make this a bit easier, do you have a way of signing the app that would remove warnings?
I so love it when they put the answer and embed it in the question that way! :-)
Anyone can sign the binaries used in a setup program -- in this case the three that can be signed are:
But MSKLC itself does not get in the signing business -- that's between you and your code signing authority (Verisign, maybe?).
If you want the setup to have a security warning that prominently displays your company name, you can sign the files!
It just tells people where the package is coming from, and if they trust you they'll accept it. :-)
Now step 1 is to be a full time employee of Microsoft.
And step 2 is to break your hip.
You see, Microsoft is the payee of health insurance. They just have Premera Blue Cross administer the plan. This is important since Microsoft is much more generous than Premera is on its own.
I used to think insurance companies were evil, it turns out they're just greedy. Their sin is clearly a venal one, not a mortal one (a distinction my catholic readers will appreciate!).
So, in October, I spent almost USD$50,000 of Microsoft's money to get my left hip fixed in a hemihip replacement (the doctor replaced the ball, kept the socket).
In November, I spent almost USD$20,000 of Microsoft's money in a SNF (pronounced "sniff"), a skilled nursing facility known as Crista Senior Living in Shoreline, until I was kicked out.
I had started at the UWMC Rehab Unit (on an outpatient basis), since the SNF was unable to help with forward progress.
This was not soon enough for Joseph Palermo JR DO (a man I think of as "Palermo the Douche™") had me kicked out, after one 3 minute visit billed to my insurance as a full consult (USD$195), something I would call insurance fraud if an investigator from Premera Blue Cross ever asked me. And I really really hope they ask me at some point.
Now the whole SNF thing is described by Kathy Quan, R.N., B.S.N., P.H.N. in this article:
Skilled nursing facilities are also known as a SNF (pronounced “sniff”), or nursing home. They provide two basic levels of care: custodial and skilled care. Residents may be temporary or long term. Temporary stays are usually for rehabilitation purposes after a major surgery, injury, or illness. Long-term stays are usually for those who can no longer live alone and require a higher level of care than can be provided at home or in assisted-living facilities or board-and-care homes.
Skilled care in a SNF is usually short term and continuous only so long as measurable gains are made. However, some circumstances require ongoing skilled care such as those who require a ventilator or other tubes or mechanical means for nutrition and life support. An episode of illness or injury may also be cause for skilled care on a temporary basis in a SNF for those who usually just require custodial care.
Skilled care can be provided by a nurse or physical, occupational, or speech therapist. Licensed physicians prescribe and supervise all skilled care in a SNF. This may be your parents' PCP or physician supervising all care at the facility. Registered nurses supervise a staff of licensed practical or vocational nurses who provide twenty-four-hour medical care.
Custodial care in a SNF is also supervised by the licensed physician and a registered nurse, but it is usually provided by nursing assistants. An RN or LP/VN manages and dispenses medications. Custodial care consists of activities such as bathing, dressing, feeding, grooming, transferring and assistance with ambulation, and toileting or incontinence care. If the resident needs some skilled care as a result of illness or injury, or develops a decubitus or bedsore due to immobility, skilled care will be ordered and provided.
Who Pays for Skilled Care?
Skilled care is covered by Medicare and most private insurance using Medicare's guidelines. Under Medicare's guidelines, the skilled care must be preceded by a minimum qualifying hospital stay of three days. Admission to the SNF must be within thirty days of the qualifying hospitalization. The first twenty days are paid at 100 percent; after that, there is a daily deductible. (This may be covered by Medigap insurance.) There is a maximum of 100 SNF days for a qualifying hospitalization and diagnosis.
The patient must show measurable gains, also known as rehab potential, toward independence in the documentation by the RN or therapist. If at any time before the 100-day maximum stay the measurable gains or skilled-care need ceases, reimbursement will end. Custodial care will be included and covered during a skilled-care stay.
Now the physical therapist there (Ashley Nicole Dennis) did document rehab potential, and had a documented plan to unblock progress, but despite all that Palermo the Douche™ (who in his 3 minute consult said he was in my corner) told the insurance company that I had no further rehab potential and despite the fact that I disagreed believed I should be discharged from my private room.
After a few days at home seeing UWMC PT on an outpatient, upon the recommendation of B. Jane Distad MD I made it from an ER visit as an inpatient on the Neuro service in 6SE to eventually the Rehab Service in 8N.
In December, I spent almost USD$100,000 of Microsoft's money in that inpatient service. Because they did see rehab potential, even though Palermo the Douche™ did not.
Now some might wonder whether Palermo the Douche™ is guilty of insurance fraud and medical malpractice for his laughingly bad care of me while I was in the SNF.
I think so.
And I think Premera Blue Cross should make him pay the entire USD$170,000 they paid for my care, or at the very least the USD$100,000 that they had to pay out because of his awful medical decisions about me in Crista Senior Living, peraps minus the USD$25,000 (SNF plus outpatient PT), perhaps not.
But since Microsoft ultimately paid the bill, it probably won't happen.
In the end, I predict that Palermo the Douche™ will never be made to pay, financially or otherwise, for his role here.
Despite being quit guilty of the crime.
Since the outpatient care may not have been as successful...
Thus in a weird way, I might owe the crappy care of Palermo the Douche™ for me ultimately getting the best care from UWMC Rehab.
All funded by Microsoft, the company that continues to employ me despite how expensive it seems to do so.
Note they also paid USD$26,100 for 100% of the cost of my iBot 4000!
Perhaps they should go after Palermo the Douche™ to help defray the cost of employing me? :-)
Now it was November 20th of last year, about the time that Palernmo the Douche was getting me kicked out of nursing hone rehab (more on that another day!), when I was sent a very cool tweet:
@michkap xkcd is for you today. xkcd.com/1137/
— Hafthor Stefansson (@hafthor) November 21, 2012
@michkap xkcd is for you today. xkcd.com/1137/
I promised myself I'd get into this some day.
As it turns out, today is some day!
I'll admit as an old Unicode guy I've had nightmares not unlike this in the past, where especially these characters:
have wreaked havoc in both plausible and implausible ways (sometimes with Freddy Krueger narrating, sometimes with Mark Davis or Asmus Freytag or Ken Whistler!
Thankfully #1, if the real world ever got this crazy, it could never happen, as UAX #9 indicates:
All of these codes are limited to the current paragraph; thus their effects are terminated by a paragraph separator.
Whew! It's how I know it's a dream: the ENTER key doesn't fix it all... :-)
Anyway, thanks, Hafthor. Sorry it took so long to cover it!