Now I hate Microsoft even more, part II

Started my Win 10 instance under Parallels, and just one minute into working with it, I got this:

 

parallels-desktopscreensnapz095

That gave me 8 minutes to get my stuff in order. The time when this showed up was 21:18. So I clicked “Close” and just got the close box on my accounting program and the system rebooted. So much for the eight minutes, which turned into more like 10 seconds.

Note, BTW, no way to postpone this at all. Nothing.

The evil and arrogant fuckers.

Oh, lest you think Microsoft really let me save correctly, I got this after restart from my accounting program:

 

parallels-desktopscreensnapz096

It says, in Swedish: “The company wasn’t closed correctly. The company will now be optimized.” Meaning the index files will be rebuilt.

Microsoft really doesn’t give a shit about our data. Fortunately, I hadn’t started entering anything so the rebuild worked out fine.

Now I hate Microsoft even more

Went to start up my iMac to Bootcamp Windows 10. This is what happened:

IMG 2783

No question if I wanted to upgrade, no warning, no option to cancel, no effing nothing. What a total dick move. After 10 minutes, it has gotten to 10%, so if this goes on at the same rate, I’m looking at between one and two hours of this. Interrupting it probably bombs the whole thing. MS effectively hijacked the machine without my permission. I had something I wanted to do, but MS clearly doesn’t give a flying shit about that. If they’d done this at shutdown, I could have, maybe, somehow, a little bit, lived with it. But at startup? Are they completely out of their minds?

And, if you wonder, this is a paid full version of Windows 10, not the free upgrade kind.

I wonder what this huge update is for. No idea. Windows 95?

Update: it took a total of around 50 minutes, then another 10 minutes to update Apple’s Bootcamp video driver. The “copying of files” took about 30 minutes of that time, which probably corresponds to downloading time. Why doesn’t Windows download this stuff beforehand? 

All this on a 20 Mbit/s download ADSL and on a pretty darn fast machine (i7, 4GHz, 16 GB RAM, and a 1TB SSD). What this would be on an average machine, I can only have nightmares about.

Getting Bootcamp running

This was an interesting experience. I wanted to get Windows running in Bootcamp on my new iMac 5k (late 2014 model). This machine has 32 GB RAM, and a 1TB SSD drive running OSX 10.11 (El Capitan). First, I tried following all the instructions to install Win 7 (I had a full Home Premium edition, not OEM, that I didn’t use anymore). I never got all the way, and the reason (after a lot of Googling with DuckDuckGo (!)) seems to be that Win7 doesn’t support USB 3 out of the box. So as soon as Win 7 starts booting it loses contact with the keyboard and mouse since the iMac has only USB 3 ports. And you can’t install updated USB 3 drivers in Windows 7 until it has booted. Maybe there’s a way, but seriously, I got enough after half a day and gave up.

Skip ahead a day or two, and after receiving a brand new Windows 10 Home, full edition, and I found out the following. Maybe someone will have less of a traumatic journey knowing this.

 

Boot Camp AssistantScreenSnapz001

When you use Bootcamp, you have two main strategies. One is to “Create a Windows 7 or later version install disk”, and the other is not to do that. Creating the install disk never works. It somehow corrupts the target disk, irrespective if it’s a USB 3 stick or a USB 2 external spinning disk. It always quits with “not enough space on disk” and some really weird sizes, with negative number of gigabytes used. If you look in console, you’ll see it always thinks the destination is just 4 GB large. Hopeless. That cost me untold hours, testing several USB sticks and several different external drives. 

The other strategy is to uncheck the first choice and leave the other two selected. Then the following steps work:

  1. Go to Disk utility and convert your Windows media (in my case a USB stick from Microsoft) into an ISO DVD Master file on your desktop.
  2. Insert a USB stick (USB 3 works) in one USB port on the iMac. Some people recommend the first USB port, closest to the middle of the computer. I don’t know if that makes a difference, but do it anyway.
  3. Start Bootcamp, select choices 2 and 3.
  4. Select the ISO file you created and let Bootcamp download software to the USB stick you inserted.
  5. As the iMac restarts into Windows, it may stay spinning the little juggler balls forever. If so, unplug your keyboard and mouse, and it proceeds. Plug them back in. If your mouse is connected to the keyboard, you have to unplug that, and plug in the keyboard without a mouse first.
  6. Once the first setup page appears, your keyboard may be dead. Unplug it, wait 5-10 seconds (!), then plug it in and it may work. If you have a wired mouse connected to the keyboard, you may have to unplug the mouse, plug in the keyboard, then plug in the mouse to get things going. That’s what happened to me, and I’m using a Microsoft Comfort mouse (4500).
  7. Now you get to the “Enter the product key” page. Enter the product key. Be only moderately surprised when it says the key cannot be verified. If that happens, then:
    1. Boot back into OSX and remove the Bootcamp partition again. Start over with the installation. (Yeah, I know…)
    2. Take care that you are not connected to the internet; disconnect any network cable before getting into Windows.
    3. Rinse, repeat. I had to do this four times before the code was accepted. (You know that old “Einstein quote” about true insanity being repeating the same thing over and over again, expecting a different result? Well, it’s wrong. With Windows, insane methods sometimes work.)
  8. If you get past the product key registration, you’re almost there.
  9. Windows starts up, but it won’t recognise your second screen and sound will not work. The keyboard and mouse will remain flaky at boot. No WiFi adapter will be found, but fixed ethernet works.
  10. Now you need to actually install the Apple Bootcamp drivers (they forgot to tell you about that, didn’t they?). You should still have that USB key plugged in where Bootcamp put the install files and drivers. Open that drive in Windows, go to the folder “Bootcamp” and run the Setup.exe you find there (don’t run the setup.exe in the root). After that has finished, you’ll be asked to reboot.
  11. Now, back in Windows, you’ve got sound and multiple screens (if you have those). Works with my external HP30i, anyway (mini display port to dual DVI active adapter). WiFi adapter shows up, too.

So, that’s what you have to do.

Then, if you’re like me, you then discover you created a partition for Windows that isn’t large enough. And, if you’re like me, you’re not going to start over again, so then do:

  1. Boot back into OSX. Open disk utility and shrink your OSX partition to make space for expanding the Win 10 partition. How much is up to you.
  2. Boot back into Win 10. Download the Minitool Partition Wizard Free Edition and use it to “extend” the Windows 10 partition. When I did that, there was a little 150 MB FAT partition I had to delete between the Win 10 and the unallocated space, but that was really easy. This utility worked like a charm.

I almost forgot: after my first installation run with Win7, the machine refused to boot into anything, only coming up with “No valid operating system found” (or something to that effect). A typical Microsoft DOS boot fail message. I couldn’t reboot into OSX, since the keyboard didn’t work. Spent almost an hour on the line with Apple support, trying everything, growing desperate. Finally, we unplugged the keyboard entirely, restarted without any peripherals whatsoever, and got into a kind of partial and sick Win7, rebooted, and finally could make the alt-boot work to select OSX boot again. Honestly, I thought the machine was lost there for a while. Moral of this story: don’t fuck around with Win7 on OSX 10.11 Bootcamp. It’s not worth the fear and aggravation. I didn’t try Win7 again after that. It’s kind of a miracle I tried Win 10, really.

Southend Enterprises scam

Just this afternoon I got a call from “iAssist” who wanted to fix my computer, since it had malware, or was out of support or something. It was the regular fare with them taking over my computer to “fix” it for me. So I let him do just that.

While I “doddered” around and “tried” to boot my computer, I opened an old XP I have for experiments under Parallels, booted up my ScreenFlow screen capture, did a system snapshot, and then let him have at it. He’d called me on our home number on a DECT phone, so it took me a while to figure out how to get the sound, but finally I simply held a little Olympus hand recorder next to my ear, and that’s pretty good. Had to make him wait, mumbling something about having a prostate problem or something, while I got out the recorder, located batteries and got it started.

The whole thing is 34 minutes. The first 6 minutes or so are silent, then 2-3 minutes of only my voice (I’d turned the Olympus the wrong way up… duh), then after that it’s pretty clear. Note that the sound is offset by 10-20 seconds, so some places may look weird.

What he was after, once he got me, a “living alone 74 year old man who only uses his son’s old decrepit computer (seven years old computer) every sunday” (really; he asked me twice if I lived alone), hooked up was selling me an extended support for Windows and all my machines for only 3200 SEK for five years. That’s $500 by the way. Once I got to the screen where I had to enter my billing info, I quit the charade. After telling him twice that we were in a virtual machine and I had recorded the whole thing, he just hung up.

In the recording, you’ll see my name, street address, and phone number; that’s what he typed in. The email, I gave him (momo..something at hotmail.com, couldn’t think of anything better at the drop of a hat).

As far as I can figure out, iAssist (and LogMeIn) have nothing to do with this, but Southend Enterprises almost certainly do. That’s the “PCSupport” page I’m supposed to enter my payment data into. I found other people on the net reporting on this shady company.

I posted the whole recording on youtube, if someone wants to see them do this thing and hear this guy’s piercing and ennervating voice. It’s pretty boring, but maybe someone gets a kick out of it.

One really, truly, funny thing is that somewhere along the way, there’s a Parallels dialog box that pops up and says “Parallels tools are installed”, and he just clicks it away. I can’t locate it from the video, and I don’t want to watch it all again. Somebody told me it’s at 26:50 approximately. Also, there’s the “Parallels Shared Folders” icon in the upper left corner of the desktop, and even that didn’t tip him off.

 

So today I got a followup call from Customer Satisfaction at Southend Enterprises. Really. To hear if my machine worked fine today. Turned into two five-minute talks, where it’s pretty clear the guy (not the same guy as yesterday) either really is a fine actor, or (more likely) has no idea what he’s doing. But “persistence” is clearly his middle name.

The audio is even worse than yesterday’s recording. Maybe I should set up a rig to record these “artists” better, if this goes on. Here it is:

iPad: the lowest common denominator

After watching Apple vs Predator, a short YouTube video, I had a blinding flash of the somewhat obvious and this is it: no other interface but the iPhone/iPad interface can seamlessly transfer to a virtual surface and gestures. Let’s expand on this.

If you’ve seen “Minority Report”, the movie, you must remember the interface Tom Cruise uses to access files. He pulls on gloves, then works the displays as if he touches a virtual surface in space. There are a number of projects doing gloves like this, such as the AcceleGlove by AnthroTronix.

It’s obvious, to me at least, that you can’t usefully move just any graphical interface to a virtual surface like in “Minority Report”. There are UI elements that work and others that don’t work. Obviously, you can’t use a mouse, there’s nowhere to let it rest, there’s just air. You can’t use a pen. The only thing you can use is your fingers. In other words, it’s a multi-touch interface, albeit virtually and in the middle of the air.

Could you imagine if you developed a useful virtual surface like this and you wanted to use the same user interface on a hard, real surface device. How would that look? Surprise, surprise, it would look exactly like the iPad. Not like Windows for Tablets, not like any other smartphone UI I’ve ever seen, but exactly like the iPhone and iPad UI.

I don’t think this is accidental. I think this is the fundamental reason that the iPhone and iPad have never had, and never will have, a pen or other pointing device. As long as they are entirely useable using only one or more fingers, the UI translates seamlessly to a virtual surface in the air.

There are signs one can do using a glove and a virtual surface that aren’t useable on a real surface with multi-touch. Example: making the “ok” sign using your thumb and index finger could work with a glove, but not with an iPad. On the other hand, it seems such signs are rarely used even in science fiction movies, and I think there’s a fundamental reason why not, simply because they are less suitable for an intuitive command interface. This leads to the rule that one should probably not introduce any visual signs in virtual surfaces that cannot be translated to gestures using a hardware device surface.

For medicine, all this is great news. This means that if you develop a medical records interface, or the interface to any other medical system, on an iPad, it will automatically be just right for a virtual interface, such as those we will need in operating theatres and bedside.

That makes the iPad user interface the lowest common denominator. If you develop for this UI, your medical app is future proof. MS Windows based medical apps, on the other hand, are living on borrowed time.

MS patch of… Firefox?

To quote an article on annoyances.org about the new ClickOnce install support that MS has added to .NET:

The Microsoft .NET Framework 3.5 Service Pack 1 update, pushed through the Windows Update service to all recent editions of Windows in February 2009, installs the Microsoft .NET Framework Assistant firefox extension without asking your permission.
This update adds to Firefox one of the most dangerous vulnerabilities present in all versions of Internet Explorer: the ability for websites to easily and quietly install software on your PC. Since this design flaw is one of the reasons you may’ve originally choosen to abandon IE in favor of a safer browser like Firefox, you may wish to remove this extension with all due haste.

Unfortunately, Microsoft in their infinite wisdom has taken steps to make the removal of this extension particularly difficult – open the Add-ons window in Firefox, and you’ll notice the Uninstall button next to their extension is grayed out! Their reasoning, according to Microsoft blogger Brad Abrams, is that the extension needed “support at the machine level in order to enable the feature for all users on the machine,” which, of course, is precisely the reason this add-on is bad news for all Firefox users.

And then follows a convoluted procedure to hack the crap out of the registry. Go there, read it, do it, if you run Windows, this service pack, and Firefox.

Tech Republic put it like this:

In a surprise move this year, Microsoft has decided to quietly install what amounts to a massive security vulnerability in Firefox without informing the user. Find out what Microsoft has to say about it, and how you can undo the damage.

Read the entire Tech Republic article.

PS: this isn’t exactly news (the annoyances.org article is dated February 27, 2009), but I only just noticed through a posting by Rob S on a private list.

A feature?

Had to use the Directory.GetFiles() method in .NET, so I read the description. Now, take a moment and read the following about how an asterisk wildcard character works in the search pattern parameter. Then tell me if this description is of a feature or of a bug. Windows, largely due to legacy, is full of this crap.

When using the asterisk wildcard character in a searchPattern, such as “*.txt”, the matching behavior when the extension is exactly three characters long is different than when the extension is more or less than three characters long. A searchPattern with a file extension of exactly three characters returns files having an extension of three or more characters, where the first three characters match the file extension specified in the searchPattern. A searchPattern with a file extension of one, two, or more than three characters returns only files having extensions of exactly that length that match the file extension specified in the searchPattern. When using the question mark wildcard character, this method returns only files that match the specified file extension. For example, given two files, “file1.txt” and “file1.txtother”, in a directory, a search pattern of “file?.txt” returns just the first file, while a search pattern of “file*.txt” returns both files.

and:

Because this method checks against file names with both the 8.3 file name format and the long file name format, a search pattern similar to “*1*.txt” may return unexpected file names. For example, using a search pattern of “*1*.txt” returns “longfilename.txt” because the equivalent 8.3 file format is “LONGFI~1.TXT”.

The conclusion must be that this function is worse than useless and bound to cause excruciating bugs in your apps. Better use the GetFiles() method without any search pattern and then filter using a regex.

The end of .NET? I can’t wait.

Ok, I admit, that title is a bit over the edge, but still that is how I feel. Developing for .NET is increasingly becoming not fun and far too expensive. The only reason to do it is because customers expect products for .NET, but under slowly increasing pressure from developers, that is going to change. It may take a while, but it will happen. There are a number of reasons for this.

.NET development is single platform. Admittedly the largest platform, but a platform that is increasingly having to share the market with other platforms. And already, according to some, there’s more sales potential for small developers in the OSX market than in the Windows market, due to a number of factors like customers that are more willing to buy and to pay for software, less competition in each market segment, etc.

.NET development is also entirely dependent on Microsoft’s development tools and those are increasingly expensive. For reasonable development, you need an IDE, a good compiler, version control, bug handler, coverage analysis, profiling, and a few more. We used to have most of that in the regular Visual Studio, but recently MS has removed all the goodies and plugged them into the Team system only, which carries an obscene pricetag (in Sweden around USD 13,000 + VAT for the first year…). This means that a regular one-man development shop can barely afford the crippled Visual Studio Professional at USD 1,500 for the first year. Sadly, there aren’t even any decent and affordable third party products to complement the VS Pro so it becomes a “real” development suite. And with every version of Visual Studio this only gets worse. More and more features are added to the Team suite and removed from the Pro. This is not the way to breed a happy following.

Meanwhile, OSX comes with XCode, which is almost as good as Visual Studio Pro, and is free. Objective-C is also a much more modern language with more depth than any .NET language, even though it is actually older. But, sadly, it’s not cross platform either and I don’t see how you can get the Windows fanboys of the Scandiavian healthcare scene to even consider another platform. Same probably goes for most other industries.

I’m no fan of Java, but on the other hand I’ve never worked much with it so that opinion doesn’t count. Eclipse, the IDE often used for Java development, is cross platform, very capable, and open for other languages such as Python, Flex, and many more. Yes, I know, in theory so is Visual Studio, but how many real languages do you have there? You’ve got one: Basic, masquerading as C#, J#, and, um, Basic.

Using Eclipse on any platform, you’ve got a real good chance of covering the line of tools you need, profilers, coverage, version control, without much pain and without breaking the bank. And you can write crossplatform integrated larger systems.

So, I guess it’s time to bite the bullet. I really like XCode and OSX, I really know C# and .NET, but I really only believe in Java, Flex, Python, Perl, C++ under Eclipse for enterprise development in vertical markets. And in XCode under OSX for regular shrinkwrapped desktop apps.

Not even Silverlight is very attractive and that is largely due to the marketing and pricing of the tools for it. A small developer organisation can’t afford it. Flex and AIR looks like serious contenders, though.