Saturday, December 6, 2014

Clone Windows OS Drive to a New SDD Drive

Even though Microsoft started up as a company that produced "Disk Operating System", AKA "DOS", its latest Windows operating systems no longer manage some of the basic disk operations, say cloning a hard disk.

But nowadays, migrating from old hard drives to new SSD drives requires that you clone existing drives to the new SSD drives. Microsoft has made sure that any of its backup/restore features cannot be used for drive copy or cloning. So you will need some tools from other software vendors.

Some SSD drive manufacturers such as Samsung offer software for such migration. But Samsung's software is simply horrible. It takes over one hour and twenty minutes to copy an old 500 GB drive to its 1 TB EVO SSD drive. Then at the end of the copy it throws an error and gives up.

You are on your own.

I bought Paragon Software's cloning tool before when I migrated a Windows 7 machine. $20 is not a bad price. But now when I need to upgrade a Windows 8.1 machine, I found that I needed to upgrade, and Paragon Software's download link only provide the old version.

It looks like that I need to pay again.

Then I saw recommendations for "AOMEI Backupper (http://www.backup-utility.com)". The drive clone feature in this software can be enabled either by payment, or with a message in your social media account such as Facebook or G+, etc. that mentions "AOMEI Backupper". So I posted a message in G+, and then I migrated two of my Windows 8.1 machines to new SSD drives, free.

Everything worked perfectly.

I will be migrating a MacBook next. But apparently MacBook can be migrated without third party tools.

Microsoft: you are really losing it.

Update: apparently AOMEI Partition assistant is no longer available for free with a post to social media. It will now cost you $50.

Saturday, November 22, 2014

Why Is My MacBook's Touchpad Stuck?

About a year after I bought my MacBook, I noticed that its touchpad no longer clicked when pressed, as if there was dirt underneath it to prevent it from going down.

Later I realized that my MacBook's battery would die almost immediately after it is unplugged. Since I always used it with the power adapter connected, I did not really care. But I did not make a connection between the touchpad problem with the battery.

Another year later, I found that the battery was swollen to the point that the back cover could not be closed completely anymore. So I decided to take it out and replace it.

To my surprise, the touchpad started to click again when pressed while the battery is out. After replacing the battery with a new one, the touchpad still clicks when pressed. Apparently when the touchpad stopped clicking when pressed, it was when the battery started to swell up.

So now I have a perfectly working MacBook, and I now I know that the touchpad can be used as a battery health monitor as well: when it no longer clicks when pressed, chances are that your battery has gone bad and started to swell up.

Thursday, August 28, 2014

When Android Music Players Did Not Show All Songs on an External SD Card

Apparently Android indexes mp3 files on an micro SD card after you insert it into your phone. All music players show the same set of indexed music files.

Unfortunately, the indexing can sometimes be incomplete. When I started up a music player, -- either the Samsung Music Player or the Google Music Player, it did not matter -- I saw some of my songs, but not all of them. I could browse into the folders on the micro SD card and play each of  the missing files, but I just could not find them inside the music player.

My files are inside the "Music" folder, and I do not have a file named ".nomedia" in there.

So I decided to try to get my phone to re-index the SD card. Here are my steps:

1. I turned off the phone.
2. I removed the micro SD card.
3. I restarted the phone to let it know that I no longer have a micro SD card plugged in.
4. I turned off the phone again.
5. I re-inserted the micro SD card.
6. I restarted the phone to let it know that I now have a micro SD card plugged in again.

Sure enough, Android started scanning the micro SD card to index files on it. At first I was a little nervous, because the music players where showing even fewer files than before. But after a while, all mp3 files are found, and my problem is now solved.



Sunday, August 3, 2014

Fix Windows 8.1 Cannot Launch “PC Settings” or “Store” Problem

On my Windows 8.1 Desktop Computer, I have two user accounts.  One is connected to my “Microsoft Account” online. It was created when I installed Windows 8.1 on this PC. The other is a Windows domain user account. It was setup when I joined this PC to a local Windows domain.

In the “Microsoft Account”, I am able to run all “Metro Apps” or “Modern Apps”. I can go to “Microsoft Store”, etc. Everything seems to work fine.

But in the domain user account, there are all sorts of problems. In the “Action Center” of the control panel, I kept getting errors saying that I needed to enter a password to connect to a “Microsoft Account”. But when I clicked on “Enter Password”, the “PC Settings” app flashed on the screen, and nothing followed. An icon for “PC Settings” showed up on the task bar, but when I clicked on it, a gigantic “PC Settings”  icon flashed by, and still nothing happened. In the event log, I saw the following:

“Activation of app windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel failed with error: This app does not support the contract specified or is not installed. See the Microsoft-Windows-TWinUI/Operational log for additional information.”

I searched online, and it turned out that this had to be fixed by running three powershell commands from an administrator command prompt:

powershell -ExecutionPolicy Unrestricted Add-AppxPackage -DisableDevelopmentMode -Register $Env:SystemRoot\camera\AppxManifest.xml

powershell -ExecutionPolicy Unrestricted Add-AppxPackage -DisableDevelopmentMode -Register $Env:SystemRoot\FileManager\AppxManifest.xml

powershell -ExecutionPolicy Unrestricted Add-AppxPackage -DisableDevelopmentMode -Register $Env:SystemRoot\ImmersiveControlPanel\AppxManifest.xml

The link is here:

http://answers.microsoft.com/en-us/windows/forum/windows_8-winapps/i-cant-open-any-windows-8-apps-including-pc/aaa88b5e-98c6-4958-a896-b991b924e4f0?rtAction=1407081231306

It turned out that this “Add-AppxPackage” command is a cure for the “Microsoft Store” problem as well:

powershell -ExecutionPolicy Unrestricted Add-AppxPackage -DisableDevelopmentMode -Register $Env:SystemRoot\WinStore\AppxManifest.xml

The link is here:

http://answers.microsoft.com/en-us/windows/forum/windows8_1-windows_store/windows-81-store-stuck-on-load-loop/827ba1d0-d49b-4aae-87ef-70180b645e48

The Microsoft Store error in the event log looked like this:

“Activation of app winstore_cw5n1h2txyewy!Windows.Store failed with error: This app does not support the contract specified or is not installed. See the Microsoft-Windows-TWinUI/Operational log for additional information.”

Obviously this is not something that we outside of Microsoft could have figured out on our own.  But if this happens every time when a domain user is added to a Windows 8.1 machine, I wonder why Microsoft has not patched it.

Perhaps few in the corporate world care about the “Modern Apps” or the “Microsoft Store”. That cannot be good news for Microsoft. Then again Windows patches have been making my PC not bootable from time to time in the last few months. It seemed to have been caused by an “AMD WDDM1.3 driver update”, but I am not certain. Until I am certain, Windows auto update has to stay at “Off”.

Saturday, June 14, 2014

My Internet Explorer Was Not Showing Any Browsing History

This started when I moved my Windows OS installation onto an SSD drive. The SSD drive holds the OS, program installations, and all temporary files.

Because it is only 250 GB, my user files are stored on a pair of old fashioned 7200RPM hard drives configured in a RAID 0 configuration. This drive is mounted as "C:\users\%username%". I copied Windows generated contents into this "folder", and everything works fine. Except IE. It no longer showed any files in its "History" window. I moved its "Temporary Internet Files" folder to the SSD to get better performance, but its history window was still empty. The "Temporary Internet Files" folder had files, but they were just now shown in the history window.

I was running Windows 7 back then. So I figured that I would upgrade to Windows 8, and the IE problem would go away. Well it did not. Worse, Windows 8 installation did not understand that "C:\users\%username%" was not a regular folder but a mounted drive, and created a mess. I had to manually fix the mess.

The IE problem persisted. I was running a newer version of IE, but it still would not show any files in its history window.

Then I upgraded to Windows 8.1. The IE problem was still there. Windows 8.1 installation did not understand that "C:\users\%username%" was not a regular folder but a mounted drive, either. I had to manually fix the installation mess, again.

Yesterday, I saw this at "answers.microsoft.com":  "IE11 no history displayed". It turns out that I need to have a "system" attribute set on "C:\users\%username%\appdata\local\Microsoft\Windows\history". Apparently when I copied my files to the drive mounting folder, the attributes were lost, even though I could swear that I used the preserving attribute option on the copy.

So I added the "S" attribute as suggested. Now IE history is working again. Finally.

The original answer was from "social.technet.microsoft.com": http://social.technet.microsoft.com/Forums/ie/en-US/6418ae13-63c7-44a1-9e97-0ad875a2bd7a/browsing-history-not-being-recorded?forum=ieitprocurrentver

Thank you Rory.

Tuesday, February 25, 2014

Interesting Differences Between Double, Float, and Decimal in .NET

We all know that these data types have different precision. Decimal numbers have 28-29 significant digits. A decimal number has 128-bits. A double number has 64 bits, and 15-16 significant digits. A float number has 32 bits, and 7 significant digits.

Decimal numbers are good for financial and monetary calculations, not only because of the extra precision, but also because unlike double and float, it does not use binary representation.

For example, 1/10 in decimal representation is 0.1, which has only 1 digit. But in binary representation, it becomes a number with repeating digits: .001100110011..., where the pattern "0011" repeats indefinitely. This means that there will be rounding errors when performing calculations involving 0.1 in binary representation. But that is exactly what double and float data types would do. They use binary representation.

Besides the fact that decimal numbers are more precise when dealing with numbers with base 10, such as 0.1 and 0.01, dimes and pennies, their default behaviors when converting to text strings are different. If you run the following code:

            decimal test = 0.00M;
            Console.WriteLine(test.ToString());

            test = 0.000M;
            Console.WriteLine(test.ToString());

            double test2 = 0.00;
            Console.WriteLine(test2.ToString());

            test2 = 0.000;
            Console.WriteLine(test2.ToString());
    
what you see on the screen are "0.00", "0.000", "0", and "0".

Interesting, isn't it?