VS Code on iPad Pro

From Chorke Wiki
Revision as of 23:32, 5 December 2022 by Shahed (talk | contribs) (→‎References)
Jump to navigation Jump to search
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm -g install yarn

yarn global add code-server
~/.yarn/bin/code-server

vim ~/.config/code-server/config.yaml
bind-addr: 127.0.0.1:8080
auth: none
password: academia
cert: false
bind-addr: 127.0.0.1:8080
auth: password
password: academia
cert: false

Service

sudo vim /etc/systemd/system/code-server.service


sudo systemctl disable code-server.service
sudo systemctl enable code-server.service
sudo systemctl status code-server.service
sudo systemctl start code-server.service
sudo systemctl stop code-server.service


blink » config » Hosts » New Host » SSH Config » New Host » Save
# Compression no
LocalForward 8080 127.0.0.1:8080
ExitOnForwardFailure yes
[Unit]
Description=code-server
After=network.target

[Service]
User=ubuntu
Group=ubuntu

WorkingDirectory=/home/ubuntu
Environment="PATH=/usr/bin"
ExecStart=/home/ubuntu/.yarn/bin/code-server

[Install]
WantedBy=multi-user.target

Extension

~/.yarn/bin/code-server\
 --install-extension ms-kubernetes-tools.vscode-kubernetes-tools --force\
 --install-extension msjsdiag.vscode-react-native --force\
 --install-extension ms-azuretools.vscode-docker --force\
 --install-extension PKief.material-icon-theme --force\
 --install-extension ckolkman.vscode-postgres --force\
 --install-extension esbenp.prettier-vscode --force\
 --install-extension ritwickdey.LiveServer --force\
 --install-extension ms-python.python --force

~/.yarn/bin/code-server\
 --install-extension ms-vscode-remote.vscode-remote-extensionpack --force\
 --install-extension ms-vscode.Theme-MarkdownKit --force\
 --install-extension ms-dotnettools.csharp --force\
 --install-extension ms-vscode.cpptools --force\
 --install-extension xdebug.php-pack --force
~/.yarn/bin/code-server\
 --install-extension k--kato.intellij-idea-keybindings --force\
 --install-extension felixfbecker.php-intellisense --force\
 --install-extension Pivotal.vscode-boot-dev-pack --force\
 --install-extension vscjava.vscode-java-pack --force\
 --install-extension ms-vscode.powershell --force\
 --install-extension Dart-Code.dart-code --force\
 --install-extension mrmlnc.vscode-scss --force\
 --install-extension ms-python.python --force\
 --install-extension xdebug.php-pack --force\
 --install-extension redhat.ansible --force\
 --install-extension rebornix.Ruby --force\
 --install-extension redhat.java --force\
 --install-extension golang.Go --force

scp ~/Downloads/*.vsix [email protected]:~/.chorke/academia/var/download
:'
[email protected]              100%  132MB     2.4MB/s   00:54 
ms-vscode-remote.vscode-remote-extensionpack-0.21.0.vsix   100%   58KB     3.8MB/s   00:00
ms-vscode-remote.remote-ssh-0.79.2022040616.vsix           100%  319KB     3.6MB/s   00:00
[email protected]                  100%   61MB     4.2MB/s   00:14
ms-vscode.Theme-MarkdownKit-0.1.4.vsix                     100%   64KB     4.1MB/s   00:00
swellaby.rust-pack-0.2.29.vsix                             100%   9251   152.1KB/s   00:00
xdebug.php-pack-1.0.3.vsix                                 100%   37KB     1.9MB/s   00:00
'
⇧ + ⌘ + P » vsix » Enter

Mobile Shell

sudo apt update
sudo apt list --upgradable
sudo apt upgrade
sudo apt install mosh

Oh My Zsh

# https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
sudo apt install zsh timg fonts-powerline
zsh --version
echo ${SHELL}

sudo -s
chsh -s $(which zsh)
grep zsh /etc/passwd

chsh -s /bin/zsh root
chsh -s /bin/zsh ${USER}
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# vim ~/.zshrc
# ZSH_THEME="agnoster"
mkdir -p ~/.config/fontconfig/conf.d
cat << \EOF >> ~/.config/fontconfig/conf.d/50-enable-terminess-powerline.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <selectfont>
        <acceptfont>
            <pattern>
                <patelt name="family">
                    <string>terminess powerline</string>
                </patelt>
            </pattern>
        </acceptfont>
    </selectfont>
</fontconfig>
EOF

fc-cache -vf

Virtual Keyboard

iPad Pro » Settings » General » Keyboard » Auto-Correction » Disable
iPad Pro » Settings » General » Keyboard » Shortcuts       » Disable

Java GraalVM

export ACADEMIA_HOME="$HOME/.chorke/academia"
sudo mkdir -p /opt/cli

mkdir -p $ACADEMIA_HOME/etc/env/
cat << \EOF >> $ACADEMIA_HOME/etc/env/system.sh
# chorke academia env
export ACADEMIA_HOME="$HOME/.chorke/academia"
export ACADEMIA_DEV="$ACADEMIA_HOME/dev"

EOF
cat << \EOF >> $HOME/.bashrc

# chorke academia env
if [ -f "$HOME/.chorke/academia/etc/env/system.sh" ]; then
    source $HOME/.chorke/academia/etc/env/system.sh
fi
EOF

sudo wget -c https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/\
graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz -P /opt/cli/

sudo tar -xvzf /opt/cli/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz -C /opt/cli/
sudo rm  -rf   /opt/cli/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz
export GRAALVM_HOME='/opt/cli/graalvm-ce-java17-22.0.0.2'

cat << \EOF >> $ACADEMIA_HOME/etc/env/system.sh
# chorke academia sys
export GRAALVM_HOME='/opt/cli/graalvm-ce-java17-22.0.0.2'

EOF

update-alternatives --query native-image
update-alternatives --query jconsole
update-alternatives --query jshell
update-alternatives --query javac
update-alternatives --query java
update-alternatives --query jdb
update-alternatives --query jps
update-alternatives --query gu
update-alternatives --query js

sudo update-alternatives --install /usr/bin/jconsole jconsole\
 $GRAALVM_HOME/bin/jconsole 1983

sudo update-alternatives --install /usr/bin/jshell jshell\
 $GRAALVM_HOME/bin/jshell 1983

sudo update-alternatives --install /usr/bin/javac javac\
 $GRAALVM_HOME/bin/javac 1983

sudo update-alternatives --install /usr/bin/java java\
 $GRAALVM_HOME/bin/java 1983
sudo update-alternatives --install /usr/bin/jdb jdb\
 $GRAALVM_HOME/bin/jdb 1983

sudo update-alternatives --install /usr/bin/jps jps\
 $GRAALVM_HOME/bin/jps 1983

sudo update-alternatives --install /usr/bin/js js\
 $GRAALVM_HOME/bin/js 1983

sudo update-alternatives --install /usr/local/bin/gu gu\
 $GRAALVM_HOME/bin/gu 1983

sudo gu install native-image
sudo update-alternatives --install\
 /usr/bin/native-image native-image\
 $GRAALVM_HOME/bin/native-image 1983

native-image --version
sudo gu --version
javac -version
java -version

Ant & Maven

sudo wget -c https://archive.apache.org/dist/ant/binaries/\
apache-ant-1.10.12-bin.tar.gz -P /opt/cli/

sudo tar -xvzf  /opt/cli/apache-ant-1.10.12-bin.tar.gz -C /opt/cli/
sudo rm -rf     /opt/cli/apache-ant-1.10.12-bin.tar.gz
export ANT_HOME=/opt/cli/apache-ant-1.10.12

sudo update-alternatives --install /usr/bin/ant ant\
 $ANT_HOME/bin/ant 1983
sudo wget -c https://archive.apache.org/dist/maven/maven-3/3.8.5/\
binaries/apache-maven-3.8.5-bin.tar.gz -P /opt/cli/

sudo tar -xvzf    /opt/cli/apache-maven-3.8.5-bin.tar.gz -C /opt/cli/
sudo rm -rf       /opt/cli/apache-maven-3.8.5-bin.tar.gz
export MAVEN_HOME=/opt/cli/apache-maven-3.8.5

sudo update-alternatives --install /usr/bin/mvn mvn\
 $MAVEN_HOME/bin/mvn 1983

PostgreSQL

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main
EOF

sudo apt update && sudo apt list --upgradable && sudo apt upgrade
sudo apt install postgresql postgresql-contrib
sudo su postgres
schema_name='ubuntu'
createuser ${schema_name}
createdb   ${schema_name}

cat << EOF | psql
GRANT ALL PRIVILEGES ON DATABASE ${schema_name} TO ${schema_name};
GRANT ALL PRIVILEGES ON DATABASE postgres TO ${schema_name};
ALTER USER ${schema_name} WITH SUPERUSER;
EOF

exit
psql

PgAdmin 4

sudo apt install build-essential libssl-dev libffi-dev libgmp3-dev libpq-dev python-is-python3
sudo apt install python3-dev python3-pip python3-venv libapache2-mod-wsgi-py3
sudo python3 -m venv /opt/ide/pgadmin4

sudo su
source /opt/ide/pgadmin4/bin/activate
python -m pip install -U pip
python -m pip install  wheel
pip install pgadmin4

mkdir /var/log/pgadmin4
mkdir -p /var/lib/pgadmin4/{sessions,storage}
chown -R www-data:www-data /var/{lib,log}/pgadmin4

cat <<EOF >> /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/config_local.py
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
UPGRADE_CHECK_ENABLED = False
SERVER_MODE = True
EOF

cat <<EOF >> /etc/apache2/conf-available/pgadmin4.conf
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/opt/ide/pgadmin4
WSGIScriptAlias /pgadmin4 /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/pgAdmin4.wsgi

<Directory /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/>
    WSGIProcessGroup pgadmin
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
</Directory>
EOF

ln -s /etc/apache2/conf-available/pgadmin4.conf\
 /etc/apache2/conf-enabled/pgadmin4.conf

pgadmin4
a2enmod wsgi
apachectl -t
systemctl restart apache2

##########################################<OR>##########################################
curl -fsSL  https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/pgadmin4.list
deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main
EOF

sudo apt update && sudo apt list --upgradable && sudo apt upgrade
sudo apt install apache2 pgadmin4-web
sudo /usr/pgadmin4/bin/setup-web.sh

MariaDB Server

sudo apt install php7.4-fpm php7.4-common libapache2-mod-fcgid php7.4-cli
sudo a2enmod proxy_fcgi setenvif && sudo a2enconf php7.4-fpm
sudo apt install mariadb-server
sudo mysql_secure_installation
sudo apt install phpmyadmi
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';
-- mysqladmin -u root -p<old_password> password ''
FLUSH PRIVILEGES;
EXIT;

Oracle Client

sudo apt install zip wget libaio1

ORA_LINK_PREFIX='https://download.oracle.com/otn_software/linux/instantclient';\
ORA_LIBS_MODULE='basic sqlplus sdk jdbc odbc';\
ORA_HOME_CLIENT='/opt/cli/oracle/oracle19c';\
ORA_LINK_SUFFIX='linux-arm64.zip';\
ORA_LINK_MIDFIX='instantclient';\
sudo mkdir -p ${ORA_HOME_CLIENT};\
for ORA_NAME_MIDFIX in ${ORA_LIBS_MODULE};do \
ORA_NAME_MODULE="${ORA_LINK_MIDFIX}-${ORA_NAME_MIDFIX}-${ORA_LINK_SUFFIX}";\
ORA_LINK_MODULE="${ORA_LINK_PREFIX}/${ORA_NAME_MODULE}";\
ORA_FILE_MODULE="${ORA_HOME_CLIENT}/${ORA_NAME_MODULE}";\
sudo wget -cq ${ORA_LINK_MODULE} -P ${ORA_HOME_CLIENT};\
sudo unzip -q ${ORA_FILE_MODULE} -d ${ORA_HOME_CLIENT};\
sudo rm   -rf ${ORA_FILE_MODULE}; done;\
sudo du    -h ${ORA_HOME_CLIENT}
sudo su
export ORACLE_HOME='/opt/cli/oracle/oracle19c';\
export PATH="$ORACLE_HOME/instantclient_19_10:$PATH";\
export LD_LIBRARY_PATH="$ORACLE_HOME/instantclient_19_10"

cat << EOF > /etc/ld.so.conf.d/oracle-instantclient.conf
$ORACLE_HOME/instantclient_19_10
EOF

ldconfig

Redis Server

sudo apt install redis-server
sudo vim /etc/redis/redis.conf
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#   supervised no      - no supervision interaction
#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#   supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#       They do not enable continuous liveness pings back to your supervisor.
supervised systemd
sudo mkdir /var/run/redis
sudo chown -R redis:redis /var/run/redis
sudo systemctl restart redis-server
sudo systemctl status  redis-server

###################<OR>###################
sudo vim /etc/systemd/system/redis.service
[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/bin/kill -s TERM $MAINPID
ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
PIDFile=/run/redis/redis-server.pid
sudo systemctl daemon-reload
sudo systemctl restart redis-server
sudo systemctl status  redis-server

Workspace

sudo mkdir -p /opt/dev/academia
sudo chown $(id -u):$(id -g) /opt/dev/academia -R
sudo mkdir -p /opt/dev/software
sudo chown $(id -u):$(id -g) /opt/dev/software -R

Kubernetes

sudo apt remove docker docker-engine docker.io containerd runc
sudo apt install ca-certificates curl gnupg lsb-release
sudo su
cat << \EOF >> /etc/docker/daemon.json
{
    "exec-opts": [
        "native.cgroupdriver=systemd"
    ],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m"
    },
    "storage-driver": "overlay2"
}
EOF
exit
sudo vim /boot/firmware/cmdline.txt
net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
curl    https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt update && sudo apt install -y apt-transport-https curl
sudo apt install -y docker-ce=5:20.10.14~3-0~ubuntu-focal\
 kubelet=1.23.5-00 kubeadm=1.23.5-00 kubectl=1.23.5-00
sudo apt-mark hold docker-ce kubelet kubeadm kubectl
sudo apt install docker-compose
echo "net.bridge.bridge-nf-call-iptables=1" |\
 sudo tee -a /etc/sysctl.conf
sudo sysctl --system
sudo sysctl -p
sudo kubeadm init --pod-network-cidr=10.21.0.0/16
docker config
sudo usermod -aG docker $USER
newgrp docker

mkdir -p $HOME/.docker
sudo chown $(id -u):$(id -g) $HOME/.docker -R
sudo chmod g+rwx $HOME/.docker -R
kube config
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
network overlay
kubectl apply -f\
 https://docs.projectcalico.org/v3.14/manifests/calico.yaml
join worker nodes
kubeadm token create --print-join-command
kubectl get nodes
evil most for docker0 bridge
sudo apt remove netscript-2.4
sudo apt purge netscript-2.4
sudo apt autoremove

Helm Chart

sudo wget -c https://get.helm.sh/helm-v3.8.1-linux-arm64.tar.gz -P /opt/cli/
sudo tar -xvzf /opt/cli/helm-v3.8.1-linux-arm64.tar.gz -C /opt/cli/
sudo rm  -rf   /opt/cli/helm-v3.8.1-linux-arm64.tar.gz
sudo mv /opt/cli/linux-arm64 /opt/cli/helm-v3.8.1-linux-arm64
sudo update-alternatives --install /usr/local/bin/helm helm\
 /opt/cli/helm-v3.8.1-linux-arm64/helm 1983

sudo update-alternatives --install /usr/bin/helm helm\
 /opt/cli/helm-v3.8.1-linux-arm64/helm 1983
helm repo add stable https://charts.helm.sh/stable
helm search repo jenkins
helm version

Knowledge

cat /proc/cgroups
sudo apt install tree
sudo apt install upx-ucl
sudo apt install gtkhash
dpkg --print-architecture
apt-cache madison kubelet
apt-cache madison kubeadm
apt-cache madison kubectl
apt-cache madison docker-ce
journalctl -fu docker
journalctl -u kubelet
sudo rm -rf /root/.kube
rm -rf /home/${USER}/.kube
sudo rm -rf /etc/kubernetes
sudo rm -rf /var/lib/kubelet
sudo rm /etc/containerd/config.toml
sudo systemctl daemon-reload 
systemctl restart containerd
sudo systemctl restart docker
sudo systemctl enable  docker
sudo systemctl enable  --now ssh
sudo systemctl disable --now ssh
# sudo ifup docker0
# sudo ifdown docker0
# sudo apt install netscript
# sudo apt install cgroup-tools
sudo systemctl restart NetworkManager
sudo systemctl restart systemd-resolved
sudo snap refresh --list
sudo snap refresh firefox
sudo snap install figma-linux
sudo snap install dotnet-sdk --classic
sudo snap install powershell --classic
sudo update-alternatives --list java
sudo update-alternatives --query java
sudo update-alternatives --remove-all java
sudo update-alternatives --remove java /usr/bin/java
rm -rf /Volumes/NO\ NAME/{.Spotlight-V100,.fseventsd}
sudo systemctl daemon-reload
sudo apt purge docker-ce kubelet kubeadm kubectl
sudo apt autoremove docker-ce kubelet kubeadm kubectl
sudo apt-mark unhold docker-ce kubelet kubeadm kubectl
sudo npm install -g --unsafe-perm=true --allow-root
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
curl -fsSL https://rpm.nodesource.com/setup_14.x | sudo bash -
add the new key(s) to known_hosts
ssh-keyscan -H dev.chorke.org >> ~/.ssh/known_hosts
Enter   +   ~   +   . » exit an ssh session

remove the old key(s) from known_hosts
ssh-keygen -R dev.chorke.org
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false

References