Windows guest account issue

There's an issue on windows that when you need privileged/elevated account to run certain program that needs UAC confirmation for lower level system functions, the application would be using that admin account as user which means the Appdata, Document, etc. would be for the admin account. This is an issue for self-updating software, when updating, the software needs elevated status to modify the system which means after update, the user would need to close the program that had UAC confirmation and reopen it using the guest account.

This is an interesting question where how the software architecture should be designed. How can a software update non-core part without needing elevated account.

Weird Exploit (Windows 10)

I have a laptop during a weird era where the manufacturer has a 128G ssd as system drive and 1-2TB data drive HDD.

Problem with that is even if you install all programs on D drive, there are a lot of common/system files that windows likes to do it on C drive and you can't change it.

I usually do it on per directory bases which is - make symbolic link when a common folder of one software and make it symbolic link.

It is a) very tedious b) can't keep track

During the reinstall (my data drive is broken, bad luck, restoring data), I think "why don't I make the whole Users, Program Files, ProgramData etc symbolic"? Then I encountered a problem here: Windows won't let you move the directory , it always will say "access denied" no matter how you manipulate the access with icacls. The people who answered the post managed to use linux boot disk to delete the folder on C drive.

I had similar issue. Even when in recovery mode Command Prompt where I know that no program is using the folder, it always have "access denied".

However I found an "Exploit", while it doesn't allow you to move the folder, it allow you to rename the folder.

So the process becomes: xcopy the folder to d drive, rename the original folder then create the symbolic link.

It is a quite good word-around that it won't need the use to linux boot disk to delete the original folder thus allowing the creating of symbolic link

Hope it works.

Installing Haru Emulator on 20.04

  • Changes
    • Ubuntu 20.04 uses 
      Install instruction
    • ROS package code change
      sudo apt-get update

      sudo apt install -y ros-neotic-idmind-tabletop
      sudo apt install -y ros-neotic-idmind-tabletop-msgs
      sudo apt install -y ros-neotic-idmind-tabletop-visualization
      sudo apt install -y ros-neotic-idmind-tabletop-driver
      sudo apt install -y ros-neotic-idmind-tabletop-orbbec
      sudo apt install -y ros-neotic-idmind-tabletop-lip-sync
      sudo apt install -y ros-neotic-idmind-tabletop-image-analyser
      sudo apt install -y ros-neotic-idmind-tabletop-launch
      sudo apt install -y ros-neotic-idmind-tabletop-ros-woz
      sudo apt install -y ros-neotic-idmind-tabletop-telegram-bot
      sudo apt install -y ros-neotic-idmind-tabletop-usb-cam

      sudo apt install -y ros-neotic-strawberry-ros-asr
      sudo apt install -y ros-neotic-strawberry-ros-azure-kinect
      sudo apt install -y ros-neotic-strawberry-ros-faces
      sudo apt install -y ros-neotic-strawberry-ros-launch
      sudo apt install -y ros-neotic-strawberry-ros-haru
      sudo apt install -y ros-neotic-strawberry-ros-people
      sudo apt install -y ros-neotic-strawberry-ros-dialog
      sudo apt install -y ros-neotic-strawberry-ros-msgs
      sudo apt install -y ros-neotic-strawberry-ros-zz
      sudo apt install -y ros-neotic-strawberry-ros-visualization

      sudo apt install -y ros-neotic-behavior-tree-*
      sudo apt install -y ros-neotic-groot

      sudo apt install -y ros-neotic-haru-gazebo
      sudo apt install -y ros-neotic-haru-simulator

      sudo apt install -y ros-neotic-haru-barcode-scanner
      sudo apt install -y ros-neotic-cerevoice-ros
      sudo apt install -y ros-neotic-fkie-message-filters
      sudo apt install -y ros-neotic-haru-utils
    • change melodic to neotic, added -y to skip the installation hassle of pressing Y at every step
  • Issues
    • ROS neotic uses python3 catkin build, the code package has some problem, will need update

Mounted camera footage unusable without gimbal

Several quite old Videos, mounted camera is unusable without gimbal, as the correction maneuver while doesn't look that dramatic in third-person view, the angle is obviously significant for first person view.


CHKDSK Breaks NTFS permission

After a chkdsk /r /f /v, the chkdsk messed a lot of folder permissions.

The first to notice is OneDrive and Google Drive

The GUI of windows explorer is not capable of reclaiming ownership of folder, which led me to delete the folder in Administrator CMD (Terminal) and re-syncing them. It took a while until I realised it was the wrong approach.

If admin terminal can access them, the files are actually not corrupt. After a bit more searching, I found that using admin terminal is able to reset NTFS previliage. Reason being a lot of other software  installations were broken, as I can't reinstall them and lose all the settings.

Reset NTFS privilage
ICACLS <directory> /T /Q /C /RESET

In the Command:

/T : indicates that this operation is performed on all matching files/directories below the directories specified in the name.
/Q: indicates that icacls should suppress success messages.
/C: indicates that this operation will continue on all file errors. Error messages will still be displayed.
/RESET: resets the previliage

Reference: How to reset NTFS permissions with ICACLS

Moving android app data

adb backup -noapk com.your.packagename

There will be a "x.ab" file

adb restore backup.ab

This can be used for moving data from legacy app that does not have any cloud function to new device.

Android apps data can be moved around without root access using adb:

Celsius to Fahrenheit conversion chart

In the US, the unit used is still imperial, to get an intuitive sense of the temperature, a chart is a good idea. (Put Kelvin in, but it can be cutout)

However, there's no high quality chart for printing online, so I made one in Vector: [AI original] [AI 3.0] [SVG,text outlined] [PDF]

PNG with 300dpi :


Boehm system lite in EWI (WIP)

The Boehm system is universal in woodwind instruments, however, there is something with the arrangement of the keys that makes certain scales harder than others. For example, an alto saxophone is easiest on Eb, Bb; easier on C, F; however there will be connection that's very non-intuitive linked notes for other scales.

I haven't played Oboe/Clarinet, but talking with people who plays many wood-wind instrument, they pretty much all follows the Boehm system.

This is the Saxophone keys:


Flute key chart

Flute For Dummies Cheat Sheet - dummies

There already exist this clever design of eg the flute Thumb key (B/Bb) depending on which half circle you press on. The Bb key mechanically press the B to close both hole, but B key only close higher hole. So you have a half note shift for different scale depending on where you finger is sitting, instead of relying on simutaniously press of another key usually using Pinky finger, or an awkward same hand finger switch (which is bad for linked note -which means no tonguing to seperate two notes) like the index finger/middle finger switch on both hand. This is same for saxophone, in saxophone there is also the lefthand index finger key, if you move the finger resting position from the main circle to small circle, the resting position will lower the same fingering closed position half note, accomodating the corespondent scale change. 

Current EWI keys



The thumb key have changed to have more octaves when you touch on different positions, which makes it the widest range in all wind iinstrument. However, the keys even in "Easy mode transpose", they did it in software setting which makes it hard to do it on the fly.



  • Removed confusing element like K02
  • Removed K05, K07, and made K06 a single function key, an on-the-fly sharp # (where the piece didn't transpose, but want an out of scale note)
  • Kept K11,K12,K13 to lower range extender without need to switch octave
  • Added an auxilary position onto every main key, depending on where the finger sits, it will press both mainkey/auxkey or only the main key, which result in a half note difference. So depending on the scale, fingers can sit at different position to avoid the need of constant assist of awkward position keys.
  • The K09 K08 natural half-note can be kept to accomodate the traditional habit, same for K08's lowering K01 half note (But not necessarily good to keep)

Without testing, the first problem I will foresee is that it made it actually harder for absolute beginners. There will not be a very clear fingering chart for every note, each note will probably have 3~4 fingerings.

Second problem is that the habit learned using this system can not be transferred back to traditional instrument.

However the obvious pro is that if there's transpose, the fingering can just do a small shift and use all natural fingering in scale. My speculation is it will be quite easier for intermediate to play different scales. (So it fits neither beginner nor master)

It's an attempt similar to the janko keyboard, which never beat the tradition.

How to test for now

  • Can use some mechanism to touch the touch screen
    • However, most current system can only have 10 touch points, will need to be clever all those auxilary keys how they trigger the touch points (As they will mechanically also press the main key).
    • The pro of this method is that the microphone of the phone can be used to capture the blowing
  • Also can have a separate arduino to have a lot of keys to feed signals from USB port (Probably a better way to start

Minecraft Fill size Limit


  • Code: this replaces the 145 x 145 from y5 to y100, ~ means relative
    /fill ~ ~ ~ ~145 ~ ~145 command_block{Command:"/fill ~ 5 ~ ~ 100 ~ grass replace",auto:1b} replace
  • Idea is replace with command block then each commandblock do its column which is well within the limit of 32768 blocks
  • Doing too much will be slow, but the job will be done
  • To leave other blocks, the outside replace can be  replace x (eg: replace water / replace air)
    /fill ~ ~ ~ ~145 ~ ~145 command_block{Command:"/fill ~ 5 ~ ~ 100 ~ grass replace",auto:1b} replace water
  • Replacing with grass block will end up getting destroyed, do not know if it is a bug or feature.

Liquid-Phase Exfoliation

Seems the two ways to produce graphene that can be done in kitchens are tape and Liquid-Phase Exfoliation.

  • Tape method is very slow, probably can not produce enough to be useful
  • Liquid-Phase Exfoliation can be done in kitchen, but will need a lot of equipment and safety measures
    • Source
      • Exfoliated graphite 
    • Solvent
      • 40% alcholol in water
      • nmp
      • 90% ethyl acetate 10% methanol (sabesto cleaner)

Created by Victor Zhang on 23:50, 28/01/2005