Thursday, September 26, 2019

Slow Ubuntu startup time due to apt-daily.service

The  apt-daily.service  makes users feel very slow when running at startup. There is a workaround to delay its execution after system boot up:

Do the following:
 sudo systemctl edit apt-daily.timer 

And paste the config to the config file:
 # apt-daily timer configuration override 
 [Timer] 
 OnBootSec=15min 
 OnUnitActiveSec=1d 
 AccuracySec=1h 
 RandomizedDelaySec=30min 

References:
https://askubuntu.com/questions/800479/ubuntu-16-04-slow-boot-apt-daily-service
https://ubuntu-mate.community/t/shorten-boot-time-apt-daily-service/12297

Thursday, September 19, 2019

Android Emulator 29.2.0 problem with Ubuntu 19.04

It just crashed with segmentation fault.

Display card tested: Radeon RX 550, Intel UHD Graphics 630

From https://androidstudio.googleblog.com/2019/09/emulator-2920-stable.html, the OS may crashes with incompatible Vulkan drivers. 

Temporary rollback to emulator 29.1.12-5839083 as a workaround.


Monday, September 2, 2019

Adjust VirtualBox VMS BIOS time


Syntax

   VBoxManage modifyvm "VMS Name" --biossystemtimeoffset -ms

   Note:
   ms - milliseconds


For example

   VBoxManage modifyvm "VMS Name" --biossystemtimeoffset -86400000

Tuesday, July 30, 2019

Kalman filter

Just finding some resources for learning about Kalman filter, seems it is a very useful technique which applicable on a lot of different areas.

References:

https://blog.maddevs.io/reduce-gps-data-error-on-android-with-kalman-filter-and-accelerometer-43594faed19c

Thursday, July 18, 2019

Conflict between pandas 0.25.0 and pandas-datareader 0.7.0

For Python users, there is a conflict between "pandas 0.25.0" and "pandas-datareader 0.7.0".

If you do an "from pandas_datareader import data", you will got a conflict:

    "ImportError: cannot import name StringIO from pandas.compat"

To get rid of this issue, use "pandas 0.24.2" + "pandas-datareader 0.7.0" instead.

Tuesday, May 7, 2019

Linux mounted NTFS partition as read-only suddenly

Sometimes in dual boot system (Windows / Linux), the NTFS partitions might have some problem causing the Linux mounted the NTFS partitions as read-only. To solve this problem, one might try following to see if it works:


Step 1: Unmount the partition first

This can be done via Disks application OR command line:
  • e.g. umount -v /dev/sda1

Step 2: Run ntfsfix on the target partition
  • e.g. sudo ntfsfix /dev/sda1


If the command is successful, the following output should be shown:
  Mounting volume... The disk contains an unclean file system (0, 0).
  Metadata kept in Windows cache, refused to mount.
  FAILED
  Attempting to correct errors... 
  Processing $MFT and $MFTMirr...
  Reading $MFT... OK
  Reading $MFTMirr... OK
  Comparing $MFTMirr to $MFT... OK
  Processing of $MFT and $MFTMirr completed successfully.
  Setting required flags on partition... OK
  Going to empty the journal ($LogFile)... OK
  Checking the alternate boot sector... OK
  NTFS volume version is 3.1.
  NTFS partition /dev/sda1 was processed successfully.

Step 3: Remount the partition

    The partition should be read-write enabled






Tuesday, January 8, 2019

NFC notes on NDEF message for URL

Just a note for encoding URL in NDEF message, the NDEF record should user TNF_WELL_KNOWN as its TNF. And NDEF record type should be RTD_URI. And the first byte could be encoded for different protocols (e.g. 0x01 = "http://www", 0x02 = "https://www", etc.

References:
Beginning NFC
Professional NFC Application Development for Android


Tuesday, December 18, 2018

Spring Boot Application Properties List

The list of Spring Boot Application Common Properties:

Resources for jQuery i18n library

jQuery i18n is a handy library to provide multi-language for your web applications. Below are some useful references:

Inject git last commit id to SpringBoot project

1) Add git-commit-id-plugin in pom.xml

  <build>
  <plugins>
  <plugin>
      <groupId>pl.project13.maven</groupId>
      <artifactId>git-commit-id-plugin</artifactId>
      <executions>
          <execution>
              <goals>
                  <goal>revision</goal>
              </goals>
          </execution>
      </executions>
      <configuration>
          <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
          <includeOnlyProperties>
              <includeOnlyProperty>git.commit.id.abbrev</includeOnlyProperty>
          </includeOnlyProperties>
      </configuration>
  </plugin>
  ...
  </plugins>
  </build>


2) Get the value via Thymeleaf

   <head th:with="abbrev=${@environment.getProperty('git.commit.id.abbrev')}">

CSP on Apache

To add CSP to root if sort of funny. The following will NOT work for most cases !!     <LocationMatch "^/$">        Header s...