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.
The question from Jim was:
I am troubleshooting an issue with Vista SP2 where the common dialogs seem to be failing – Notepad – File/Open gives: “Not enough memory available to complete this operation. Quit one or more applications to increase available memory, and then try again.”Wordpad and other apps just never bring up the browse dialog box and seem to fail silently. It makes it hard to troubleshoot since their email cant attach any files to send me data. Is this likely a 3rd party shell extension? Any other ideas? Thanks,Jim
I am troubleshooting an issue with Vista SP2 where the common dialogs seem to be failing – Notepad – File/Open gives:
“Not enough memory available to complete this operation. Quit one or more applications to increase available memory, and then try again.”Wordpad and other apps just never bring up the browse dialog box and seem to fail silently. It makes it hard to troubleshoot since their email cant attach any files to send me data.
Is this likely a 3rd party shell extension? Any other ideas?
Thanks,Jim
My initial thoughts when I first saw the issue, days into it, were almost Darth Vader like, since I felt something that I had not felt since... etc., you get the picture.
The problem was tracked down to a bad file in the image: a bad comdlg32.dll.mui.
This trackdown was hella complicated and took a bunch if people trying a bunch of different tools.
And then all the pieces fell into place, as I remembered my Random irreverent thoughts about the Ultimate Fallback, which points to Mark Russinovich's The Case of the Notepad that Wouldn't Run.
This new bug was just a recycled version of that same old one, the one that Erik has told me point blank and period is by design, because English is just another language.
But in this world we live within, this world where Microsoft is a company in Redmond, WA, in the USA, trying to proclaim English as being just another language seems a little naive, doesn't it?
I mean, in this world where the fact that the region and the language of just about everything we produce will bear the indelible mark of its main source, this policy's real impact is just to add a few more English bugs to the mix -- bugs like the one Jim reported.
Bugs where the [almost] never used, [almost] never tested code paths of core resource failures are tested, so the veritable world of responses in code are unleashed upon an unsuspecting populace for the occasional random scare like this one, where even the bug reporting tools (tools which encourage attachments) can be stymied just like they were here.
Where not everyone hads all of knowledge and of the tools we have here, either.
It all makes me wonder once again whether the DEVDIV solution that would have some ultimate fallback there isn't just a smidge better.
Well, what do you think?
I've had more and more people asking me lately about my symptoms -- just what are they, people wonder.
My guts tell me that this is not something to write about, but after 39 years on this planet I've decided that if I have learned anything, it is that my guts really have shit for brains. If you know what I mean.
So her we go, covering the current major symptoms.
There are basically four of them that fall into the "affects my life" category. Which is the category I am going to stick to for now.
First, I've lost proprioception (joint position sense) in my legs. This means that I can put them somewhere but I can't tell where they are by any other means. So I have to trust that they will be where I put them and of course the corollary to that is that you have to remember where you put them. Sometimes I also get the symptom in my arms too, though this is not as worrisome. Summary: I have to trust where I put my legs and feet.
Second, I've got a foot drop on the left side, which means that I place my foot somewhere and it can decide to let gravity assist and pull it down a bit farther than I thought. The workaround is easy enough -- just make sure you lift the foot higher. But it makes the walk look dorky. Summary: I cannot trust where I put my left foot.
You can no doubt see the conflict in these two items already. :-)
Third, I have disequilibrium. This is not like vertigo as I feel nothing spinning -- I just tend to see the ground coming toward me or falling away from me, without warning. I always have it somewhat and sometimes it can be extreme. I have had this symptom for years and in fact it is the one I originally got a cane for (I'd rather that people who saw me fall in the daytime assume I am a gimp, not a drunk!), the one that can at times be the most difficult and debilitating. Summary: I can't always tell where I am in relation to the ground.
Fourth, I get fatigue. Now even at its worst this is not a mental fatigue, it is just as if the body decides it has had too much then it shuts things down. This is a symptom I first had over a decade ago in Amsterdam and have a great memory of Richard Campbell and Stephen Forte carrying me when I couldn't walk any more. I've usually tried to avoid the situation since then and the only time it seems to happen these days is after office moves at Microsoft (even with assistance some maximum gets reached and I am basically on my butt for a few days). Summary: There are times I can't do anything.
Now the iBot has taken many of these items and made them much harder to measure or sometimes even notice. And as I was discussing with my neurologist just the other day, this frustrates the engineer in me that wants to measure things to see how they are doing. The iBot has in many ways ruined a significant piece of my neurological care, since I only see her once every six months and she gets only brief snapshots into how I am doing.
Though when I compare battery life in normal situations vs. extreme ones (in this case a Moby concert where I chose to rock out the drain is a little more. So more precise measurement of the battery charge would allow me to get back the kind of more precise understanding of how hard the iBot has to work to keep me balanced in some of these situations. Though at the moment they do not seem too disposed to releasing that information or how to easily get it, unfortunately.
The Moby concert was an interesting case, as I was rocking out quite a bit in place (as Cathy and Kevin who I ran into and ended up hanging out with can attest) since it did almost edge into fatigue at the end of the performance - it just shows how much movement can impact fatigue, with the movement being outside the control of the iBot.
In any case, in the end I am happier to be doing well than to obsessively think about disease course (even this blog you are reading which makes me think about the symptoms I no longer deal with as a huge issue on a daily basis) is unusual since I no longer have to think about it, really. I like a machine that takes all four of my debilitating symptoms and makes them either irrelevant and in as very real sense does it by using technology to replace the functionality my body used to use.
Getting back to the office move issue -- I am giving up my four computers, I am slowly moving books home, doing all I can to minimize the issue of the office move by making it a small office move. And I'll miss the extra machines just like people who used to borrow books will miss the library (as I will), but a man has got to do what a man has got to do. Although pushing the fatigue limits has no impact on long term curse of the disease, those days off are hardly pleasant and I am incredibly unhappy about them, just as I am always unhappy about gratuitous moves....
The question was deceptively simple:
Hi, I used all three and I find ToLower() to be fastest .But the Msdn article says that ToLowerInvariant should be faster. http://msdn.microsoft.com/en-us/library/system.string.tolowerinvariant(VS.85).aspx . Which one is better with respect to performance. Results are , 173ms ToLower260ms ToLowerInvariant265ms ToLowerCultureInfoInvariant
Hi,
I used all three and I find ToLower() to be fastest .But the Msdn article says that ToLowerInvariant should be faster. http://msdn.microsoft.com/en-us/library/system.string.tolowerinvariant(VS.85).aspx . Which one is better with respect to performance.
Results are ,
173ms ToLower260ms ToLowerInvariant265ms ToLowerCultureInfoInvariant
The results seem okay to me, it is the link that is off a bit....
It is a matter of where/how you aim expectations.
You see, starting in .Net 2.0 (and subsequent versions), "invariant" casing actually means "use the operating system casing results" and also "don't do those weird linguistic results".
Thus just using ToLower() will cause you to miss hundreds of characters being mapped, and it will map some characters likely best left alone.
Performance is one reasonable axis to use for the judging of results, but correctness is, too, right?
The ad campaign "ToLower may be wrongest, but at least it can be fastest!" is unlikely to be as effective as that 5-year old using Windows 7. :-)
Horrendously, stupendously, tremendously off-topic!!!
I do not believe in discrimination.
It is I think fairly important to point out this simple fact today. You'll see why in a moment. And you might want to take me to task by the time you're done reading so I just wanted to put that out there.
Now this is true regardless (and irregardless!) of gender, race, religion, creed, sexual preference, height, sexual orientation, disability, political beliefs, philosophical beliefs, weight, opinions about Microsoft, opinions about me -- really beliefs or opinions about anything.
With that said, there are some things that simply can't work.
I, for example, as someone in a wheelchair (albeit a cool one, an iBot!) would not make a good fireman. And Bob help the family that would be relying on a gimp like me to save your home from burning to the ground as this is just something that I would not be able to do effectively.
I haven't actively wanted to be a fireman in (as far as I can recall) a good 34 years, so clearly I have made my peace with this.
But even if I had not, and somehow still dreamed of passing that exam and riding in a hook-and-ladder, in my humble opinion it would not be an act of discrimination if whatever reasonable tests for job fitness proved me to be inadequate for the job. It would be an act of responsibility for the ones testing and an act of mercy toward that family, the one that might now live through the fire at their place.
Now why do I mention this?
Well, because the other day I took a shuttle.
A shuttle from building 80-something-or-other (I forget where I was, it isn't relevant anyway) to building 9. A wheelchair-accessible shuttle, since I am in the iBot and all. And the driver was simply unable to fit comfortably in the spaces between the iBot and the walls of the shuttle, yet insisted on getting all four tie-downs in place.
I did not overly criticize this, but I did point out that the chair can balance itself whether it is tied down or not but was scolded down off this point quickly because of the rules.
Fair enough.
Soon enough the destination is reached; I remove the one tie-down that I can reach and wait for the other three that I cannot to be removed. Two of them are removed with minor struggle, but the last one cannot be reached.
I am directed by the driver to try and move the chair in all kinds of directions to try and make the tie-down reachable by someone who is literally unable to fit within the space in question, to the point that it is struggle against a tether that causes it to start emitting warnings of overheating - fiorst yellow lights, then the dreaded red light. I have to turn it off and back on to reset it, and now I have warnings to clear after I am free and back on the ground.
Finally, I stay stop. STOP.
I unbuckle, I slither to the floor of the shuttle, I stretch with my unslender frame which nevertheless is able to reach the tie-down release, and release it.
Then I struggle back into the chair.
I say nothing as I am then lowered via the lift down to the curb. I bite my fucking tongue on the thank you that I know will quickly descend to a brutal tongue lashing about the entire experience. And I simply do not feel like putting that out into the universe. At least not to the driver.
Well, I am doing it now. But not for consequences to the driver. I am not going to complain to the shuttle folks -- I am going to vent about it here in my unofficial, personal blog.
I won't even say it is necessarily the overweight driver at fault; perhaps if they had sent one of the other shuttles with more space on each side, it would have worked out better.
I refuse to put myself in the uncomfortable position of requesting a driver who can fit in the space to take care of the tie-downs, or refusing a shuttle with such a person who shows up.
But I am not going to really want to be required to refuse to get in a shuttle that I do not like the configuration of, either.
And if I can help it, I am never, ever going to take one of the shuttles again for the rest of my time at Microsoft.
Because I'd rather rely on myself than risk another incident of potentially damaging the chair due to either personnel or equipment (both beyond my control) not being able to handle the situation.
Maybe I am just refusing to trust anyone who isn't me, and some may believe this indicates that I am discriminating against people who are not me in certain situations. But it actually just a strong desire to avoid being in a situation where I might feel uncomfortable enough to discriminate against someone else.
Maybe this makes me a villain. A situational misogynist, even.
Or maybe it is just that I am unwilling to be put in a situation where I might discriminate against someone....
(for those who are curious, I was able to clear the warnings -- there were two -- and the iBot is fine now)
Yesterday, Eran asked (via the Contact link):
Shalom, I apologize in advance if this is the wrong way to report this issue. I've waisted two hours trying to figure out how to use Connect for this, to no avail. Being an occasional reader, contacting you directly was the only option I could think of. So, without further ado:GetKeyboardLayoutList( 0, (HKL*)"garbage" ); works correctly on all 32 bit versions of Windows I've tried (XP, 2003, Vista), and when run from a 64 bit executable it also works on 64 bit versions of Windows (2003, 2008). However, when run from 32 bit executables on 64 bit windows (2003, 2008) it fails with a "Invalid access to memory location" error. If a NULL is passed instead of the garbage, the call succeeds on all bitnesses and OSes. In the MSDN docs, nothing is said about the second parameter when the first is 0. This is the first time I come across incompatibility between WOW64 and the equivalent 32 version of Windows. And it breaks a feature of our product. I will highly appreciate any response - be it a direction to the appropriate address, an acknowledgment of the bug, or any other advise. Thank you for your time,Eran
Shalom,
I apologize in advance if this is the wrong way to report this issue. I've waisted two hours trying to figure out how to use Connect for this, to no avail. Being an occasional reader, contacting you directly was the only option I could think of.
So, without further ado:GetKeyboardLayoutList( 0, (HKL*)"garbage" ); works correctly on all 32 bit versions of Windows I've tried (XP, 2003, Vista), and when run from a 64 bit executable it also works on 64 bit versions of Windows (2003, 2008). However, when run from 32 bit executables on 64 bit windows (2003, 2008) it fails with a "Invalid access to memory location" error. If a NULL is passed instead of the garbage, the call succeeds on all bitnesses and OSes.
In the MSDN docs, nothing is said about the second parameter when the first is 0. This is the first time I come across incompatibility between WOW64 and the equivalent 32 version of Windows. And it breaks a feature of our product.
I will highly appreciate any response - be it a direction to the appropriate address, an acknowledgment of the bug, or any other advise.
Thank you for your time,Eran
Sometimes, like the title says, the problem is the premise.
In particular I will yield to Raymond's Basic ground rules for programming - function parameters and how they are used, which is in my view the definitive way to look at the contract here.
And while there are nuances when differences exist between 32bit and WOW64, these nuances are caused by the same kind of problem that comes from people who don't use CallWindowProc but instead call window procs directly -- people who then run afoul of the ANSI/Unicode layer requirements.
So, is it a bug if the WOW64 layer has always behaved this way? Saying NO does mean resigning to a certain kind of backward compatibility break in the whole "run 32-bit apps on a 64-bit OS" scenario, though the defense of passing bad parameters is one that in my view is fairly indefensible just to allow one to avoid initializing a buffer (or more likely to avoid causing one to change one's existing code to initialize a buffer).
Though of course your mileage may vary....