Technical Blog


This is a weblog where I write technical things, most of which are about computers.
Creative Commons License
Please be noticed, especially in this technical blog, that all contents within this site are licensed under a Creative Commons Attribution 3.0 Unported License, except for works containing a separate license.

Thanks Google Sites for hosting, although it is quite quirky to use it as a weblog.


Recent Posts

  • How to fix the displaced AF boxes in the viewfinder in a Canon EOS DSLR In preparation of the total solar eclipse that just happened in August, I bought a EOS 500D from eBay. Everything was in excellent conditions except that I always saw a ...
    Posted Sep 3, 2017, 10:06 PM by Jingshan Du
  • Step-by-step: Upgrading Nokia Lumia 1020 to Windows 10 Mobile Anniversary (build 14393) Only limited Windows Phones are eligible to be upgraded to the latest Windows 10 Mobile release. The second generation Lumia (x2x series) are unfortunately no longer supported by M$ to ...
    Posted Aug 20, 2016, 11:08 PM by Jingshan Du
  • Changing synced library path in EndNote after you moved/renamed your main library Sometimes you may need to move your main EndNote library to a different location or just decided to give it a fancier name at some point. However, after doing so ...
    Posted Aug 16, 2016, 9:20 AM by Jingshan Du
Showing posts 1 - 3 of 19. View more »

How to fix the displaced AF boxes in the viewfinder in a Canon EOS DSLR

posted Sep 3, 2017, 10:06 PM by Jingshan Du

In preparation of the total solar eclipse that just happened in August, I bought a EOS 500D from eBay. Everything was in excellent conditions except that I always saw a defocused view from the viewfinder by eyes, although the images were at focus. What is more, the boxes and circles around the AF points are slightly off from where they are supposed to be. The image below shows what I saw through the viewfinder. The centers of all the boxes are slightly above the corresponding AF points. A horizontal line can be also seen at the bottom of the view. 
After some exploration, I found that this issue is because the dummy glass plate that contains these boxes are displaced. Please see the below image. A very thin metal frame holds this dummy plate above the mirror. This metal frame is locked by a small metal tooth (green circles). In my case, the engagement had fallen off. I used a tweezer to firstly pick up the tooth and shake the camera gently. This moves the dummy plate to the right position. Then, place the metal frame back and engage the metal tooth using the tweezer. Now when I look through the viewfinder, everything is correct!

Step-by-step: Upgrading Nokia Lumia 1020 to Windows 10 Mobile Anniversary (build 14393)

posted Aug 20, 2016, 11:08 PM by Jingshan Du

Only limited Windows Phones are eligible to be upgraded to the latest Windows 10 Mobile release. The second generation Lumia (x2x series) are unfortunately no longer supported by M$ to run Windows 10. I recently upgraded my own Lumia 1020 to the latest stable release of Windows 10 Mobile (build 14393) following the posts by ssmb212 (http://forum.xda-developers.com/showpost.php?p=68222283&postcount=3) and Stealing_heart (http://forum.xda-developers.com/windows-10/windows-10-mobile/installing-windows-10-mobile-tech-t3431454). I would like to share my experience step by step here.

1. Obtain root access

These steps let us access the system files of the operating system.

1.1 Install Windows Device Recovery Tool. Plug the phone to the PC and do a recovery flash using this tool. Note that in my first attempt I skipped this flashing and I got a boot loop in later steps... so try not to be lazy here.

1.2 Install Windows Phone Internals. The phone will be recognized by this software and let you know the exact model (RM-xxx) and Product Code (a string like 059S9T1).

1.3 Search for the exactly same product in http://www.lumiafirmware.com/. Download the .hex file from Emergency Files section. Also download this file and unpack it.

1.4 In WPinternals, go to Unlock bootloader. Select all required files (FFU, which is available in C:\ProgramData\Microsoft\Packages\... when we used the recovery tool to flash the phone; Emergency flash Loader, the .hex file; SBL3 engineering file, the unpacked Lumia 1020 file). Continue to do the unlock and wait for the software to complete processes.

1.5 In WPinternals, Enable root access. This will also turn the phone to Mass Storage Mode, which makes the phone looks like a USB drive to the PC and thus allowing us to modify system files.

2. Change device targeting information

These steps changes the registry of the phone system to let the system think this is a newer generation of Lumia phone so upgrading to Windows 10 is allowed.

2.1 Open regedit on the PC. Click on HKEY_LOCAL_MACHINE. Select Files - Load Hive. Navigate to the phone drive (MainOS)/Windows/system32/config. Select the file SYSTEM. Type in wp-sys as the name. Actually you can choose any name here but wp-sys will be used in my later steps.

2.2 In regedit, navigate to wp-sys/Platform/DeviceTargetingInfo. Look for the below keys. First save the original values and then change them according to below:
PhoneManufacturer = NOKIA,
PhoneManufacturerModelName = RM-984_1006,
PhoneModelName = Lumia 830,
PhoneHardwareVariant. = RM-984
This will let your phone to pretend to be a Lumia 830 Indian variant temporarily. Click on wp-sys and select File - Unload Hive. This will save the above edits to the phone.

2.3 Go back to WPinternals, Disable root access. On your phone, hold the Power button and the VolumeDown button at the same time until a vibration to let the phone reboot.

2.4 On your phone, you are ready to upgrade! Download the Upgrade Advisor app, or the Windows Insider app to configure the upgrade process. Note your phone may firstly download some updates for wp 8.1 and before finishing updating you cannot enroll in the Insider program. We will first reach the build 10586 of Windows 10 after long long waiting.

2.5 Now only the Windows Insider app can lead us to the Anniversary Update version (1607, build 14393) of Windows 10. Note after comprehensive rolling out of this build in release channel, you may receive this update directly from Windows Update. In case you do not, use the Insider app. Select Insider Production channel does the job.

3. Post-installation clean-ups

We are now running the latest Windows 10 on our Lumia 1020 phone! However we still need some works to make everything working on our phone.

3.1 Use WPinsiders and select Manual mode. Go to Mass Storage Mode. This will reboot the phone and make it a USB drive again.

3.2 Use regedit on PC, Load Hive of the same SYSTEM file, and restore the information that we changed in 2.2 to the original values of Lumia 1020.

3.3 Hard reset the phone by firstly holding the Power button and VolumeDown button. Feel the vibration, and release the Power button while still holding VolumeDown, until an exclamation mark appears on the phone screen. Release VolumeDown and press these buttons IN ORDER:
VolumeUp - VolumeDown - Power - VolumeDown.
Wait and this will reset the phone to an initial stage after clean installation (with the latest operating system we just installed).

3.4 Complete the setting up process. I encountered a very strange setting up with no wifi, no cellular and 0% battery level. I guess the drivers were not loaded successfully in this initial booting-up. I went through the setting-ups without logging in using MS account and reboot the phone. The phone then boot up normally.

3.5 Update all apps in the Store. This will also install/update supporting system apps. Some system apps may not be updated automatically, and you can scan the QR codes from here to install/update them manually. Remember to get a QR scanner app first!

3.6 About the language pack. Downloading keyboards or speech language may not work, with constant "Attention needed" errors. This can be solved by following below:
Go to Settings - Update & security - Windows Insider Program, and enroll the phone as a insider. After rebooting, you will be able to install language files. You can de-activate Insider configuration after that and it seems you can still install language files from then on.

3.7 Fix the glance screen. There are some missing registry keys and system files in the Anniversary build that are necessary for glance screen. Method comes from many posts in this thread.
3.7.1 In WPinternals let the phone enter Mass Storage Mode.
3.7.2 On the PC to Load Hive for SYSTEM (as wp-sys) and also for SOFTWARE (as wp-soft) in the same folder.
3.7.3 Download this attached file. Run this .reg file to combine entries into the phone registry.
3.7.4 Unload Hive for both wp-sys and wp-soft to save everything to the phone.
3.7.5 Then download this file and unpack all included files to phone drive (MainOS)\SharedData\OEM\Public. Power + VolumeDown to reboot the phone.
3.7.6 Go to Settings - Extras - Glance screen to enable this function, and it should be working now.

It took me an afternoon plus evening to finish everything up, but it's absolutely worth the time. :-)

Changing synced library path in EndNote after you moved/renamed your main library

posted Aug 16, 2016, 9:20 AM by Jingshan Du

Sometimes you may need to move your main EndNote library to a different location or just decided to give it a fancier name at some point. However, after doing so, the EndNote software stops syncing that library. If you check with the preferences, you will find that the path to the synced library is still the old one and you can not edit it.

Actually EndNote saves this path in the registry in Windows. If this needs to be edited, run regedit and search for "SyncLibraryPath". You can edit the text stored in that value to the new path of the library you want to sync with EndNote Web. On my computer this value resides in
HKEY_USERS\S-1-5-21-3470660602-2923859688-2853976470-1001\SOFTWARE\ISI ResearchSoft\EndNote\Preferences
, although I do not know whether that long string of number may vary on different computers.

Force updating graphics driver to resolve "driver stopped responding"

posted Mar 4, 2016, 11:11 PM by Jingshan Du

My current ThinkPad laptop is a T440p equipped with a NVidia graphics card. The graphics driver to this system is an OEM-customized one because of the NVidia Optimus technology [1] that enables switching between the integrated intel graphics (inside the CPU) and the dedicated graphics card.
 
Since I received this machine and upgraded to Windows 10, I found that the graphics driver will crash one or few times everyday. When that happens, everything will freeze for a few seconds and then a message pops saying that "Display driver ...... stopped responding and has successfully recovered". For most time it happens to the Intel driver since it is in charge of screen displaying under the Optimus technology.
 
The most popular solution I can find on the Internet is to set the delay time of TDR, a tracking mechanism to monitor the computer hardware. [2] However this does not solve my problem.
 
It then occurred to me that my graphics drivers are not the newest. Since Lenovo distributes the customized driver, I cannot receive or manually install the generic driver package from Intel. The Intel driver included in the Optimus driver from Lenovo is very old, which turned out to be the culprit.
 
There is one way to force updating the Intel graphics driver.
  1. Download the driver from Intel's website in zip format.
  2. Unpack it to somewhere.
  3. Open your Device Manager, find the Intel HD graphics card under the Display adapters section.
  4. Right click on it and select "Update Driver Software..."
  5. Select "Browser my computer for driver software", Next.
  6. Select "Let me pick from a list of device drivers on my computer". Note that using the "search for driver software in this location" will not work since the system will refuse to install it. Next.
  7. Select "Have Disk..." Navigate to where you unpacked the new drivers, enter the Graphics folder and select the ini file in it. ok and next...
  8. Then the new driver should be installing. It may take a few minutes to finish.
At least after force updating the driver, it has remained stable for a few days. We will see whether the problem is completely solved by time.
 
References and Further Readings

Virtual Store location for programs saving files without the administrator privilege

posted Feb 1, 2016, 8:43 PM by Jingshan Du

There are many locations that programs without the administrative privilege cannot alter. For example, the "Program Files" folder and its subfolders. Such feature has been introduced as part of the User Account Control (UAC) since Windows Vista to prevent unauthorized changes of critical files. However there are many old programs in the pre-UAC era which save configurations and other stuff in the root path of the program or at the root of the disk (like C:\). If these programs are installed in the "Program Files" folder in newer systems, it can lead to a problem when they are not running with administrator privilege.

Microsoft has introduced a feature called Virtual Store to virtually link these inaccessible locations to somewhere the program can modify. The program itself cannot sense it while they will actually save files in a different location. Sometimes it is confusing for the user trying to find where these saved files are since they do not appear in the root folder of the program,. The alternative path is given as below.
C:\Users\<username>\AppData\Local\VirtualStore

I am writing this small article since it is very hard to find related information via the search engine if you did not know the term "virtual store". This piece should answer your question if you are trying to find where do programs without the administrator privilege save files in the "program files" folders.

References and further readings:
http://www.optimizingpc.com/windows7/windows_7_compatibility_software.html
http://www.networkinghowtos.com/howto/windows-virtual-store-location/

Force upgrade to Office 2016 apps when using Office 365 Education/University/etc

posted Jan 30, 2016, 11:36 AM by Jingshan Du

Now that students and faculty members in major US universities and colleges have got MS Office 365 Education subscription, many of you may found that you are still getting the "out-dated" Office 2013 apps rather than the newest Office 2016 suite. The reason is that by default, the update branch for the educational subscriptions is a slower and more stable one called "Current Branch for Business".

Microsoft maintains three different update branches or channels for Office 365. As explained in the TechNet, features in the Current Branch for Business get updated every four months. This means that if the IT manager in your school did not change the updating settings, you will get office 2016 at the end of the first Quarter in 2016.

However there is a way to bypass the administrative setting and install or upgrade your Office programs to the 2016 version. This is done by the "Office Deployment Tool" offered by Microsoft to IT professionals. Although there is a long TechNet article explaining how to use this little program (https://technet.microsoft.com/en-us/library/jj219423.aspx), we can do it in a very simplified way.

1. Download the Office 2016 Deployment Tool at https://www.microsoft.com/en-us/download/details.aspx?id=49117.
2. Run the downloaded file. It will just unpack two files to the destination you choose.
3. Navigate to the location of these files. Open the configuration.xml file with a text editor.
4. You will see the <Add OfficeClientEdition...> stuff. Modify the OfficeClientEdition to 64 if you wish to install the 64-bit edition. Below that line you will see two <Product ID...> terms. These are the programs that will be installed. Mostly we only have Office 365 ProPlus, so leave the first product intact, and delete the second <Product...> to </Product> contents which indicates Visio, another Office component sold separately. Save the file.
5. Open a command line (cmd) at the location of these files. Run
Setup.exe /configure
.Then wait and start using your new Office apps!

Note: a complete reference for how to edit the configuration.xml file can be found at https://technet.microsoft.com/en-us/library/jj219426.aspx.

Example configuration.xml that installs 64-bit Office 2016 ProPlus:
<Configuration>
  <Add OfficeClientEdition="64" Branch="Current">
    <Product ID="O365ProPlusRetail">
      <Language ID="en-us" />
    </Product>
  </Add>
</Configuration>

Sync Multiple Calendars of Google Calendar to Phones

posted Sep 16, 2015, 10:23 AM by Jingshan Du

There is a long history of complaint that users of Google Calendar don't get all the calendars synced to their mobile devices. Actually, there is a setting to select which calendars to sync, although it defaults only your main calendar and few others, and it is very difficult to find either on PC or on phone.

Just navigate to https://www.google.com/calendar/syncselect with your Google Account logged in. Select what to sync and that's it!

Reference:

An alternative cause of VPN Error 809 in Windows (8.1)

posted May 18, 2015, 8:13 PM by Jingshan Du

I have not been using the integrated VPN interface in Windows for quite a long time. These days I tried to configure a L2TP VPN connection on Windows 8.1 as I did before, however I kept receiving Error 809 from time to time on my computer. On my phone, the connection goes pretty well, so it must be a configuration problem with my PC system.

The first suspect was network bridging. I use Hyper-V on my computer. As we know, the way Hyper-V handles networking with virtual systems is creating bridging on the host OS. You can google about "windows VPN error 809" and you will find the very famous problem of establishing L2TP/IPsec behind network address translation (NAT), a popular technology for rerouting traffic to an Ethernet, for example that linking your virtual machines. It is a security improvement since Windows XP SP2 to disable IPsec with NAT traversal. [1,2]

After trying to add the registry value as mention in the above knowledge base articles and rebooting, however, I still cannot establish the VPN connection with error 809. Finally I found a possible solution mentioned in a forum post. [3]

If you navigate to this key in regedit
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters
and find there is a value called ProhibitIpSec setting to 1, then this value may be preventing your connection. I deleted this entry and restarted the computer, then I can successfully establish the VPN connection! I also tried to delete the entry of the first solution about NAT then, and it turned out to have no effect on my problem.

The value ProhibitIpSec is used to disable the IPsec policy that Windows creates and it will prevent IPsec negotiation on L2TP calls, which will make the connection unsecured. [4,5] It is of course not safe at all to use it as an everyday configuration so I am curious about when and why I made this configuration. It turned out to be a requirement of the very broken VPN service from Zhejiang University [6] that I have been using when I was on campus there. I must say that the implementation of many IT services in ZJU is crappy with no concern on security or compatibility. Hope the service could possibly get better one day...

References
  1. How to configure an L2TP/IPsec server behind a NAT-T device in Windows Vista and in Windows Server 2008, Microsoft Support, Article ID: 926179, https://support.microsoft.com/en-us/kb/926179.
  2. The default behavior of IPsec NAT traversal (NAT-T) is changed in Windows XP Service Pack 2, Microsoft Support, Article ID: 885407, https://support.microsoft.com/en-us/kb/885407.
  3. VPN Error 809, How-To Geek Forum, http://www.howtogeek.com/forum/topic/vpn-error-809, post #2.
  4. Disabling IPSEC Policy Used with L2TP, Microsoft Support, Article ID: 258261, https://support.microsoft.com/en-us/kb/258261.
  5. ProhibitIpSec, Microsoft TechNet, https://technet.microsoft.com/en-us/library/cc736542(v=ws.10).aspx.
  6. Zhejiang University IT Service Guide, http://zuits.zju.edu.cn/attachments/2013-08/01-1376816310-168201.pdf (in Chinese), p 68.

Solving Wi-Fi connection failure "Can't connect to this network" on Windows

posted May 2, 2015, 9:58 PM by Jingshan Du

Today I met a very strange scenario with my computer running Windows Server with a wireless card connected to the network. The connection suddenly dropped and the system refused to connect to the router again. It kept saying "Can't connect to this network" without explicit error message. I tried to reset adapter and IP settings but neither worked.

The final solution is to 1) delete the wireless connection profile and 2) set up one manually.
1) On Windows 8 you can right click on the network that you are trying to reach, and click on "Forget this network".
2) Go to Control Panel --> Network and Sharing Center --> Set up a new connection or network --> Manually connect to a wireless network, and enter the connection information EXACTLY as supposed, which includes SSID (name) and security. After that, you should be able to re-connect to this network again.
Although I don't know what is the cause of the problem and what is the mechanism of this method, we still have such a working solution.

Cisco AnyConnect may fail to connect when Internet Connection Sharing is enabled

posted Mar 31, 2015, 9:40 AM by Jingshan Du   [ updated Apr 16, 2015, 1:53 PM ]


I am using a Cisco AnyConnect (version 3) VPN in order to connect to the internal network of my institution. It is a known problem that if the Internet Connection Sharing (ICS) service is running, connection may fail. There seems to be no solution other than disabling the ICS service.

1-10 of 19