TWEAK: Turbo-Charge Microsoft Excel

Yes, you are reading it right -- turbo-charge Microsoft Excel.

Please indulge me for a moment before judging the above statement.. I have been exposed to Microsoft Excel especially its PowerQuery and PowerPivot functionality in the past several weeks due to requirements of the new job. And one thing I noted is that both Excel 2013 and Excel 2016 are awful -- they take a while to load. Even with the operating system residing on the SSD drive (and where Microsoft Office is installed), doesn't make much of a difference.

This observation is definitely not hardware bottle-necked, as the enthusiast in me had examined the hardware aspect of things. The company I'm working for did not skimp on hardware as I was issued a work computer with a powerful Intel i7-5600U processor with adequate memory to boot.

CPU-Z i7-5600U

Don't get me wrong. Both PowerQuery and PowerPivot are excellent Excel features, not to mention the Data Model engine that these newer versions have. Those I have been using quite extensively for analytics and reports.

So I phoned a friend in order to ask what I could do to tweak Excel to perform better. The answer I got almost pushed me off my chair. It was to disable hardware graphics acceleration. Seriously??

As proof of concept, if you have Excel launch the application, then File -> Options -> Advanced and scroll a little bit down to "Display". Tick "Disable Hardware Graphics Acceleration".

Disable HW Graphics Acceleration

The above screen looks similar on both Excel 2013 and Excel 2016.

If you're not convinced, try loading megabyte-sized files with and without the tweak. It makes a lot of difference in loading times. Hardware acceleration translates to better performance. But in Excel linggo, surprisingly, it is quite the opposite.

HOW-TO: Automatically Disable WIFI on LAN Connectivity

Wifi networks are just about everywhere. In this digital age, being offline is tantamount to living in the stone age. Little do people know, the abundance of Wifi signals in the environment causes a lot of headaches. The signals coming from both the devices and the Wifi infrastructure cause a lot of unseen interference. Leaving devices with inherent wireless connectivity online, while unused, contributes to that phenomenon. As the interference increases, performance worsens.

If you ask me, I prefer to be connected wired rather than wireless. Wired connectivity is stable, and if you really want performance -- it is way faster. Imagine comparing the fastest wireless (Wireless N), at 300MBps with the fastest wired (Gigabit Ethernet) at 1GBps. Enterprise wired networks could go as fast as 10GBps. Not to mention, the 300MBps wireless speed varies over distance and the density of connected devices on the wireless infrastructure.

One such device is your average notebook. It has both wifi and wired connectivity. I previously wrote about putting preference of Wired connectivity over Wifi, if both are available. Now, I'd like to write about automatically shutting down the wireless interface when the wired interface is connected. It is also possible to automate the enabling of the wireless interface once the LAN is disconnected.

As I am still on Windows 7, the screenshots are based on the Windows 7 interface but the procedure is applicable to modern variants of Windows. Let's dive into the nitty gritty details.

Open the native Windows "Event Viewer" and browse to Windows Logs --> System. Create events of the LAN interface connecting and disconnecting by physically connecting and disconnecting the LAN cable. Pressing "Refresh" on the right panel will show the recent events. On my notebook, the EventIDs are #33 and #27 for connections and disconnections, respectively.

Highlight an EventID #33 and select "Attach Task To This Event.." (as seen on the screenshot below).

System Event Logs

Put an appropriate name to the Task. Description is optional, but put one in anyway. Next..

Create Basic Task

Nothing to do in the next Window as everything is greyed out.. Next..

Just Hit Next..

Accept the default action of "Start a program". Next..

Start a program

The program to start is "C:\Windows\system32\netsh.exe". For the arguments, add:
interface set interface "Wireless Network Connection" disable


Hit Next.. and Finish.

Hit Finish

Run this task as "NTAUTHORITY\SYSTEM" and tick "Run with highest privileges".

Modify Settings

Do the same exact procedure for EventID #27, but this time it will automate the enabling of the wifi adapter. Change the netsh.exe arguments to:
interface set interface "Wireless Network Connection" enable

I have done this tweak successfully on an older Lenovo T420, a Lenovo X240, a Dell D620 and an Elitebook 820. All I watched for were EventID #33 and EventID #27 on the System Event Logs. Yours may be different. The events for docking the notebooks differ by models. Those could be added as triggers.

ERROR: Fingerprint Software Error (No Longer Working)

Passwords can be forgotten (less likely but probable); biometrics can never be forgotten. This is obvious and although subject to debate and arguments, techie folks prefer to use technology and its features. Afterall, this is your money's worth. Fingerprint credentials are often deployed. This used to be prevalent to notebooks and laptops, but now even the smartphones have it.

This is the case for me. But then again, technology can fail too. And I have experienced this firsthand on my company issued Lenovo T420. The fingerprint sensor did not light up, and I could no longer use it. The error is saved on a screenshot below and I will share how this got resolved as well.

Error Code: E7210001

The Error Code is "E7210001" (The service cannot be started, either because it is disabled or because it has no enabled devices associated with it). Scouring the web for solutions didn't produce much results.

One of the results from the web indicated to check that the service "Credential Manager" is started and its Startup Type needs to be set to "Automatic". A few people indicated the service was stopped and manually running it resolved their issues. This was the first thing I checked and it was on the recommended setting -- which is a dead end.

Since the error message did not mention a particular service it is looking for, the trial and error starts. Lucky for you that will no longer be the case.

There is another service that needs to be running in order for the biometrics to work. And just as the name states, the service also contains that string as a hint -- Biometrics. It is the "Windows Biometric Service".

Windows Biometric Service

Check that both the "Credential Manager" and the "Windows Biometric Service" are running (or Started). This will return the functionality of using fingerprint credentials or biometrics for logins. I did not go as far as finding out what caused the services to be Disabled. That would be interesting but I simply don't have the time.

INFO: Sickbeard Torrent Fork on PCH-C200 (Update)

It has been a while since I last composed an article in this blog. I have been busy planning, travelling and implementing infrastructure changes in my secular job. Time seems to have flown quite fast.

Regardless, I have had a few hours to myself and decided to tinker with my aging yet still functional Popcorn Hour C-200. I can't believe it has been in service for over ~5 years. The mods I did on the original heatsink really paid off.

If you have noticed, the development on the "bricky" fork of Sickbeard has discontinued and its git repo has been taken down. Time to update the sickbeard application on my C-200. I still prefer to use a torrent fork of the original code.

The previously written article on the sickbeard "bricky" fork still applies. However, a few tweaks are needed.

The initial steps to follow are the same:

[1] Open a terminal connection via KiTTY or another utility. Browse the directory /share/Apps/sickbeard. All the other steps below will discuss about changes to files and directories relative to this path.

[2] Remove the directory .git. Do this so the bricky fork will not conflict with the original midgetspy version of sickbeard. I also removed the file .gitignore but this seems irrelevant. You may opt to remove it in this step.

[3] On the same directory /share/Apps/sickbeard, is the file Look for the line:
git clone git:// SB
.. change it to this line:
git clone git:// SB

(The rest of the procedure is similar and I still included them below.)

[4] Remove the directory autoProcessTV under /share/Apps/sickbeard. If you don't want to remove it, you may choose to rename it instead. Any arbitrary name aside from the original name will do.

[5] Execute on the command line. Either of these commands will work:
/share/Apps/sickbeard/ install
.. or
cd /share/Apps/sickbeard; ./ install

[6] Once the git clone is complete, run this:
/share/Apps/AppInit/appinit.cgi start sickbeard

The end result was not as I expected it to be. What I thought was a seamless update resulted in errors. The error is in the screenshot below.

ImportError: No module named _cpcompat

ImportError: No module named _cpcompat

As it turns out, the old directory where sickbeard was installed contained a folder named "cherrypy" that comes in conflict with the version the current version of sickbeard. The solution is to remove the "cherrypy" folder and the errors go away. This is the only other step to add.

Those who still have a working C-200 will enjoy this new version of the torrent fork of sickbeard.

HOW-TO: TaiG JailBreak for iOS 8.1.1

It's been a couple of months back since Apple released iOS8. I have not made the transition to it and stayed with iOS7 since my iPhone4S is rooted. I'd like to term a successful jailbreak as rooted -- simpler and easier to say (there is just a nicer ring to it). I just like the functionality of a "rooted" phone and the availability of Control Center button customizations that are only available from a "rooted" phone.

Last time I did this was way back to the early 2014 and used the evasi0n utility. This time TaiG is the utility that is able to jailbreak iOS8, particularly the iOS8.1.1 version.

The TaiG jailbreak utility requires the "Find My iPhone" feature to be turned off first. And although optional, turn off the passcode security feature of the phone (turn it back on once jailbreak is a success).

Plug the phone via USB and launch the TaiG utility executable. You may uncheck the 3K option if you wish, then hit the big green button on the screen. My initial attempt at this hit a snag -- Error -1004 -- which according to the TaiG website is an issue with the computer running the jailbreak.

TaiG JailBreak Utility

This really doesn't have anything to do with the computer running the utility. I tried two (2) things that "might" have resolved the issue for me. [1] I moved the USB cable to a USB3 port; and, [2] I turned off the passcode. I'm not exactly sure which solved it for me but either way I got the jailbreak that I need. Please note that I mentioned *might* and your mileage may vary.

Once successful, the device will restart twice. The first is mid-way through the spinning green circle at about 43% and the last when the injection is installed. You will then see the Cydia button on the second screen of the device signifying success.

iPhone 4S Rooted

As seen from the screenshot, my iPhone is running iOS8.1.1 and Cydia 1.1.16 is installed. It's way past midnight by the time I was done. But the TaiG utility got me the jailbreak I needed.