My Useful Apps

Useful Applications List

Windows Platform

Name Version Memo
7-Zip 22.00 Igor Pavlov
Adobe Creative Cloud 5.7.1.1 Need enterprise license
Anaconda v3 2022.05 Python 3.9.12 64-bit
Apache Netbeans IDE 13 Apache Netbeans
Archi 4.9.3 with Archi plug-ins
Beekeeper Studio 3.4.3 Opensource DB management tool
CodeBlocks 20.03
DingTalk 6.3.25-Release.3019101 Alibaba DingDing client
draw.io 19.0.3 JGraph
Enterprise Architect 12.0.1215.11 Sparx Systems, need enterprise account
File Viewer Plus from Windows App Store, by Sharpened Production
Freeplan 1.10.2 Open source mindmap tool
Git 2.36.1
GitHub Desktop 3.0.0 GitHub, Inc.
GlobalProtect 5.2.10 Palo Alto
Go Programming 1.17.7 amd64 go1.17.7
Google Chrome 103.0.5060.66
Graphviz 4.0.0 used for Diagram as Code
HMS Core 6.5.0.301 Huawei Tech
HP Smart for HP Printer
Huawei Browser 12.0.0.303 Huawei Software Tech
IAuto 3.5.2 Chinese open source diagramming
IIS 10.0 Express Microsoft
IntelliJ IDEA Community 2021.3.1 Use for handling “VFS Archi Repo”
Log Parser 2.2 Microsoft, analyze IIS log
MacType 2021.1-RC1 Display Mac Type font in Windows
Mark Text 0.16.3 Open source Markdown editor, replacing Typora
Mendix 9.13.1 Mendix
Mendix Native Mobile Builder 1.0.120 Mendix
Mendix Version Selector 36.0 Mendix
Microsoft Visual Studio Code Insider 1.69.0 Microsoft
Microsoft Visual Studio Microsoft
MindManager 2020 20.1.231 Corel Corporation
讯飞拼音输入法 3.0.1727
Neo4j Desktop 1.4.12 Neo4j Inc.
Node.js 16.15.1 Node.js Foundation
Odoo 15.0 Odoo S.A.
Ora - Task Management Codemotion
PostgreSQL 12
Postman X86_64 9.15.2 Postman
Power Automate for Desktop 2.19.139.22098 Microsoft, Office 365 Account
Power BI Desktop Microsoft, Office 365 Account
Power BI Report Builder 15.7.1796.1 Microsoft, Office 365 Account
Pulse Application Launcher 9.1.15819 MyAccess2, auto download launcher
Pulse Secure MyAccess3
Pulse Secure 9.1 9.1.10247 MyAccess2
Pulse Secure Host Checker 9.1.15.18393
Pulse Secure Setup Client 9.1.15.15819
Pulse Secure Setup Client 64-bit Activex Control 3.1.1.1
Python 3.10 From Windows App Store
R for Windows 4.1.2 R Core Team
Remote Desktop Manager Free 2022.2.14.0 Devolutions inc.
RISE Editor 4.5.0.15 RISE To Bloome Software
Tabby 1.0.173 Eugene Pankov, CMD alternative
TinyTake by MangoApps 5.2.24.0 Screen cut tool
Ubuntu on Windows Canonical Group, Windows Linux Sub-System
Unity Hub 2.4.4 Unity Tech
Visual Studio Enterprise 2022
VooV Meeting 3.3.5.510 腾讯会议
WeChat 3.7.0.30
WhatsApp 2.2202.12 WhatsApp
XMind 12.0.2 Xmind Ltd.
Xoreax IncrediBuild 9.6.2 part of Visual Studio
Zoom 5.9.2 (3169)
企业微信 4.0.0.6007
微信开发者工具 1.05.2203070
阿里云盘 3.5.1

Install VS Codium on Ubuntu

VSCodium is a fork of Microsoft Visual Studio Code Editor, modified to have full open-source access.

VSCodium Logo

https://www.linuxcapable.com/how-to-install-vscodium-on-ubuntu-20-04-lts/

The source code for this product can be found on GitHub, where it is licensed under MIT license and, therefore, will always remain free as long you don’t mind installing extra features via plugins or extensions from third parties like Telemetry transmitting your browsing habits across networks without permission.

Here are the steps to install VSCodium on Ubuntu Linux:

  1. Update Ubuntu
1
sudo apt update && sudo apt upgrade
  1. Install Dependencies
1
sudo apt install curl apt-transport-https gnupg2 -y
  1. Import GPG
1
2
curl https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor \
| sudo tee /usr/share/keyrings/vscodium.gpg >/dev/null
  1. Import the Repository
1
2
3
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/vscodium.gpg] \
https://download.vscodium.com/debs vscodium main" \
| sudo tee /etc/apt/sources.list.d/vscodium.list
  1. Run APT update to reflect new additional repository
1
sudo apt update
  1. Install VSCodium
1
sudo apt install codium -y
  1. Launch VSCodium

vscodium for normal launch, while vscodium & will launch it in the background to free up the terminal.

You can also launch it in desktop mode.

  1. Update VSCodium
1
sudo apt update && sudo apt upgrade
  1. Remove (uninstall) VSCodium
1
sudo apt autoremove codium -y
  1. Remove VSCodium Repository
1
sudo rm /etc/apt/sources.list.d/vscodium.list
  1. Remove VSCodium GPG key
1
sudo rm /usr/share/keyrings/vscodium.gpg

data-catalog-3

Data Catalog 3.0 Requirements

A correctly implemented data catalog will provide:

  • Intuitive UI clean and easy to navigate to consume and search for data
  • Visual Query Builder ability to share queries with other users
  • Ability to Share data internally & externally
  • Collaboration update business context & data dictionary (driven by end users to promote continuous improvements)
  • Ability to Integrate with other apps, APIs, etc
  • Security user roles and groups to ensure proper permissions
  • Embedded Data Lineage & Data Dictionary
  • Ease of Governance / Administration

mysite-day02

Setup LAMP Stack

Check Apache

Check location of Apache:

1
2
which apache2
/usr/sbin/apache2

Check status of Apache server:

1
sudo service apache2 status

You may get following result if the service is running properly:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled>)
Active: active (running) since <timestamp>; xxmin ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 698 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 836 (apache2)
Tasks: 55 (limit: 2289)
Memory: 12.1M
CGroup: /system.slice/apache2.service
|-836 /usr/sbin/apache2 -k start
|-846 /usr/sbin/apache2 -k start
|-847 /usr/sbin/apache2 -k start

Jun 05 14:04:34 xiaoqi-web-002 systemd[1]: Starting The Apache HTTP Server...
Jun 05 14:04:35 xiaoqi-web-002 systemd[1]: Started The Apache HTTP Server.

Start Apache Server if it’s deactive

sudo service apache2 start

Check Hosts File

1
2
3
4
more /etc/hosts
===============
127.0.0.1 localhost
...

Noted: the apache website files are located in /var/www/html/index.html

Edit index.php

1
touch /var/www/html/index.php

Type below content:

1
2
3
<?php
echo phpinfo();
?>

You can remove the original index.html, then the default website will show the PHP page, if now, you need to install the PHP first.

Install PHP

1
2
3
php -v
# if not installed, please do below
sudo apt-get install php7.4

Install MySQL

1
2
sudo apt-get install mysql-server
systemctl status mysql.service

With GUI, you can install DBeaver to manage the MySQL database

Information: https://github.com/Alecaddd/virtualhost to get the automatic script for install/delete Apache sites.

mysite-day01

This is the starting point for building up mysite - Enterprise Architecture Center, following steps have been done.

Get one Domain

Try godaddy.com and request one domain there, mine is enterprise-architecture.site.

Using the A-record, you can configure the DNS to link domain to your backend web server

Get one Server for Website

Using Azure subscription, request one Ubuntu virtual server, get the basic configuration, with following two basic points –

  • Before having https, open SSH (TCP/22) allowing ANY inbound access
  • Get one public IP address

Connect via SSH with Client

  1. Open the client of y our choice: WSL on Windows, Terminal on Mac or Shell on Linux

  2. Ensure you have read-only access to the private key. Chmod is only supported on Linux subsystems (e.g. WSL on Windows or Terminal on Mac).

    1
    chmod 400 <keyname>.pem
  3. Provide a path to your SSH private key file, normally ~/.ssh/yasenster

  4. Run the command below to connect your VM:
    ssh -i <private key path> yasenstar@<VM_IP>

Setup Apache Web Server

SSH to your new Ubuntu server, using following commands to install web server

1
sudo apt install apache2

beautiful Chinese translation

英文原文:

1
2
3
4
I love three things in this world,
sun, moon, and you,
sun for morning,
moon for night, and you forever.

翻译中文:

1
2
3
4
在这个世界上有千万种事物,而我只爱三样,
太阳,月亮和你。
白天喜欢太阳,
晚上喜欢月亮,而喜欢你则是每时每刻。

翻译古诗:

1
2
3
4
浮世万千,吾爱有三。
日,月与卿。
日为朝,
月为暮,卿为朝朝暮暮。

how to mount iPhone to Linux

Thanks the post here:

https://frameboxxindore.com/linux/how-do-i-transfer-files-from-iphone-to-ubuntu.html

Here are the 4 steps to mount iPhone in Debian/Ubuntu Linux –

  1. Unlock the screen and connect the iPhone (do the ‘Trust this computer’ part). Check dmesg: dmesg | grep usb. ...

  2. Pair the device: idevicepair pair

  3. Create a mountpoint (e.g. ~/iPhone) and mount the iPhone using ifuse: mkdir ~/iPhone; ifuse ~/iPhone

  4. Do whatever you need to do then, to unmount: fusermount -u ~/iPhone

Tested on Ubuntu 22.04 with iPhone X and they’re working.

While, the new iPhone photo format is by default as heic, see another post to convert them into jpg.

Good luck!

IIS Log Parser

The purpose of this article is to show the practical way of analyzing IIS logs, and using those parsed results for analytical using.

After installing the IIS Log Parser application, let’s assume in Windows OS PC, I’m now using below command to generate one CSV file for all of the traffic hits counted to the log file folder:

The LogParser.exe (v2.2) is by default installed at c:\Program Files (x86)\Log Parser 2.2\, go to this folder then running below –

1
LogParser.exe -i:W3C "SELECT cs-uri-stem as Url, Count(*) As Hits FROM C:\Temp\W3SVC2\* GROUP BY cs-uri-stem ORDER BY Hits DESC" -o:CSV > c:\temp.csv

Thanks Carlos Aguilar, he gives very nice guides here https://blogs.iis.net/carlosag/analyze-your-iis-log-files-favorite-log-parser-queries.

The syntax is: LogParse.exe -i:W3C "Query-From-The-Table-Below" -o:CSV > "destination CSV file path and name"

I’m digesting the useful queries here:

Purpose Query
Number of Hits per Client IP, including a Reverse DNS Lookup (SLOW) SELECT c-ip AS Machine, REVERSEDNA(c-ip) As Name, COUNT(*) As Hits FROM c:\inetput\log\LogFiles\W3SVC1\* GROUP BY Machine ORDER BY Hits DESC
Top 25 File Types SELECT TOP 25 EXTRACT_EXTENSION(cs-uri-stem) As Extension, COUNT(*) As Hits FROM c:\inetput\log\LogFiles\W3SVC1\* GROUP BY Extension ORDER BY Hits DESC
Top 25 URLs SELECT TOP 25 cs-uri-stem as Url, COUNT(*) As Hits FROM c:\inetput\log\LogFiles\W3SVC1\* GROUP BY cs-uri-stem ORDER BY Hits DESC
Number of hits per hour for the month of March SELECT QUANTIZE(TO_LOCALTIME(TO_TIMESTAMP(date, time)), 3600) AS Hour, COUNT(*) AS Hits FROM c:\inetput\log\LogFiles\W3SVC1\* WHERE date>'2022-03-01' and date<'2022-04-01' GROUP BY Hour
Number of hits per Method (GET, POST, etc) SELECT cs-method As Method, COUNT(*) As Hits FROM c:\inetput\log\LogFiles\W3SVC1\* GROUP BY Method
Number of requests made by user SELECT TOP 25 cs-username As User, COUNT(*) As Hits FROM c:\inetput\log\LogFiles\W3SVC1\* WHERE User Is Not Null GROUP BY User
Extract Values from Query String (d and t) and use them for Aggregation SELECT TOP 25 EXTRACT_VALUE(cs-uri-query,'d') as Query_D, EXTRACT_VALUE(cs-uri-query,'t') as Query_T, COUNT(*) As Hits FROM c:\inetput\log\LogFiles\W3SVC1\* WHERE Query_D IS NOT NULL GROUP By Query_D, Query_T ORDER BY Hits DESC
Find the Slowest 25 URLs (in average) in the site SELECT TOP 25 cs-uri-stem as URL, MAX(time-taken) AS Max, MIN(time-taken) AS Min, Avg(time-taken) As Average FROM c:\inetput\log\LogFiles\W3SVC1\* GROUP BY URL ORDER BY Average DESC
List the count of each Status and Substatus code SELECT TOP 25 STRCAT(TO_STRING(sc-status), STRCAT('.', TO_STRING(sc-substatus))) As Status, COUNT(*) As Hits FROM c:\inetput\log\LogFiles\W3SVC1\* GROUP BY Status ORDER BY Status ASC
List all the requests by user agent SELECT cs(User-Agent) As UserAgent, COUNT(*) as Hits FROM c:\inetput\log\LogFiles\W3SVC1\* GROUP BY UserAgent ORDER BY Hits DESC
\ List all the Win32 Error codes that have been logged SELECT sc-win32-status As Win32-Status, WIN32_ERROR_DESCRIPTION(sc-win32-status) as Description, COUNT(*) As Hits FROM c:\inetput\log\LogFiles\W3SVC1\* GROUP BY Win32-Status ORDER BY Win32-Status ASC

Note: Any time you deal with Date and Time, remember to use the TO_LOCALTIME function to convert the log times to your local time, otherwise you will find it very confusing when your entries seems to be reported incorrectly.

tool_youtube-dl

Quick usage

1
youtube-dl --recode-video mp4 (youtube short video URL)

If don’t use --recode-video, then the download will keep the original video format

Full usage

1
2
$ youtube-dl --help
Usage: youtube-dl [OPTIONS] URL [URL...]