Tuesday, July 14, 2020

curl returns "ssl_choose_client_version:unsupported protocol" error in Ubuntu 20.x

If you encountered "ssl_choose_client_version:unsupported protocol" when using curl in Ubuntu 20:

    $ curl https://somehost/
 
curl: (35) error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol


It may because the "somehost" only accepts old protocol (e.g. TLS v1, etc.), but in Ubuntu 20.x, the OpenSSL assumes minimum = TLS v1.2 by default. 

If the "somehost" just cannot upgrade to TLS v1.2, you might consider fixing it with the following:

1) Modify /etc/ssl/openssl.cnf

Search for the line "oid_section = new_oids"

Add the following lines below it:

openssl_conf = default_conf

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1.1
CipherString = DEFAULT@SECLEVEL=1

2) curl "somehost" with the following parameters

$ curl --tlsv1 https://somehost

3) If the "somehost" just using a self-signed certificate

    $ curl -k --tlsv1 https://somehost

Reference:



Monday, June 29, 2020

SQL Developer JavaFX problem

When running SQL Developer in Linux, you may encounter the "JavaFX" problem stating that the JavaFX libraries / components are not found. To solve this issue, you can consider the following solution:

  1. Install SDKMAN
  2. Use SDKMAN to install either "OpenJDK 11" or "Zulu JDK with FX"
    • sdk install java 11.0.7-open
                OR
    • sdk install java 8.0.252.fx-zulu
  1. Check the SQL Developer "product.conf" file to make sure the correct JDK is used.
    • ~/.sqldeveloper/<version>/product.conf
    • SetJavaHome /path_to_java_home
  2. If you just comment out the "SetJavaHome" variable, then the current JDK you use will be used with SQL Developer.
Enjoy!

Wednesday, May 20, 2020

Tab key not working in tmux

Add the following to the .tmux.conf:

    unbind -n Tab

Wow, TAB is back!

Monday, May 18, 2020

Using GDAL with SpringBoot in Ubuntu

To use GDAL with SpringBoot in Ubuntu:


  1. Apt install gdal-bin, gdal-data, libgdal-java (optionally libgdal26, don't know whether it's necessary)
  2. Set the Environment variables in Eclipse:
    1. GDAL_DATA = /usr/share/gdal
    2. LD_LIBRARY_PATH = /usr/lib/jni:$LD_LIBRARY_PATH


Reference: http://geoexamples.blogspot.com/2012/05/running-gdal-java.html

Sunday, May 10, 2020

OpenShot UI too large on screen in Windows

OpenShot UI could become very large in your Windows if you can set your screen scale to something like 150%.

To resolve this issues, you may adjust the "QT_AUTO_SCREEN_SCALE_FACTOR" value:

Add line SET QT_AUTO_SCREEN_SCALE_FACTOR=0 before launch.exe in the batch file "C:\Program Files\OpenShot Video Editor\launch-win.bat"

Reference: https://github.com/OpenShot/openshot-qt/issues/2443

If you are using the PortableApps's build, you can add the line "QT_AUTO_SCREEN_SCALE_FACTOR=0" under the "[Environment]" in file "OpenShotPortable.ini" in "\OpenShotPortable\App\AppInfo\Launcher"

Wednesday, February 5, 2020

Windows 10 Build 1909 search bar returns nothing but just a black page


The search bar just failed (no result but just a black screen) after Windows 10 Build 1909 update.

Sigh... Windows is still windows.

To solve it, disable the Bing search in Windows:
  1. regedit
  2. Go to "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search"
  3. Add DWORD "BingSearchEnabled", value = 0
  4. Add DWORD "CortanaConsent", value = 0
  5. Restart





Thursday, January 9, 2020

Dunning Kruger Effect

What is Dunning Kruger Effect?




To my knowledge, DKE means you are overconfident when you just know nothing about a particular area, and you think it would be very easy and joyful to work on it. But of course, the truth is that when you drilled deeper to the area, you will it's not easy to accomplish the stuff, and you lose your confidence.

The situation will be improve when you got more and more knowledge, you'll get back your confidence eventually.


So how to cope with Dunning Kruger Effect? Keep learning ;P

Friday, January 3, 2020

Cross platform application framework

Summary of cross platform framework:
Reference:
https://amp.reddit.com/r/Kotlin/comments/bo1ur4/kotlin_vs_qt_for_mobile_apps/

Tuesday, December 17, 2019

Keep the color prompt in tmux

To keep your prompt (PS1) with color shown in tmux screen, add the following property in .bashrc:

force_color_prompt=yes


Create docker container with the simple flask application

I will try to create a docker container with the simple flask application created some times ago.



First, I create a shell script for starting the flask application, namely "boot.sh":

boot.sh
#!/bin/sh
export FLASK_APP=simple.py
flask run --host 0.0.0.0



Second, we need to create a requirements.txt file:

requirements.txt
flask==1.1.1

Actually you can run the following to get the requirements.txt:

pip freeze > requirements.txt



Third, together with the simple.py file created in the simple flask application, put those 3 files in an "app" directory:

app/
   - boot.sh
   - requirements.txt
   - simple.py



Forth, create a Docker file outside the app directory:

Dockerfile
FROM python:3.6-alpine
WORKDIR /home/app
COPY app/ ./
RUN chmod +x ./boot.sh
RUN pip install -r requirements.txt
EXPOSE 5000
ENTRYPOINT ["./boot.sh"]

Build the docker image using the Dockerfile:

     docker build -t simple:latest .

Run the docker container with the docker image we just created:

     docker run -d -p 5000:5000 simple:latest

Check "http://localhost:5000" to check the Flask application.

CSP on Apache

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