Skip to content

Instantly share code, notes, and snippets.

@ouyi
ouyi / auto_scroll.js
Created Nov 23, 2020
Automatically scroll page up and down in JavaScript
View auto_scroll.js
setInterval(() => { window.scrollTo(0, document.body.scrollHeight); window.scrollTo(0, 0); }, 60000)
@ouyi
ouyi / pi_temperatures.sh
Created Jun 16, 2020
Bash script for displaying the CPU and GPU temperatures of Raspberry Pi 3B+
View pi_temperatures.sh
#!/usr/bin/env bash
# Display the CPU and GPU temperatures of Raspberry Pi 3B+
set -e
cpu_temp=$(</sys/class/thermal/thermal_zone0/temp)
cpu_temp=$(printf %.1f $((10 * cpu_temp/1000))e-1)
gpu_temp=$(vcgencmd measure_temp)
@ouyi
ouyi / raspberrypi_install_AdGuardHome.sh
Created May 24, 2020
raspberrypi_install_AdGuardHome.sh
View raspberrypi_install_AdGuardHome.sh
# https://github.com/AdguardTeam/AdGuardHome/wiki/Raspberry-Pi
cd $HOME
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_arm.tar.gz
tar xvf AdGuardHome_linux_arm.tar.gz
cd AdGuardHome
sudo ./AdGuardHome -s install
@ouyi
ouyi / raspberrypi_install_syncthing.sh
Created May 24, 2020
raspberrypi_install_syncthing.sh
View raspberrypi_install_syncthing.sh
# https://apt.syncthing.net/
# Add the release PGP keys:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
# Add the "stable" channel to your APT sources:
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
# Update and install syncthing:
sudo apt-get update
View german_umlaut_unicode.txt
Char Unicode
---------------
Ä \u00c4
ä \u00e4
Ö \u00d6
ö \u00f6
Ü \u00dc
ü \u00fc
ß \u00df
@ouyi
ouyi / lessons-learned.txt
Created Apr 18, 2019
Lessons learned from the recent years
View lessons-learned.txt
Lessons learned
I. Software engineering
1. Automate everything, have CI/CD and test automation from the beginning
2. Security shall not be an afterthought (have TLS and avoid plain text passwords from the start)
3. Component shall be stateless, state shall be extracted and kept in a external store (key-value store or databases)
4. Favor open source and off-the-shelf solutions instead of building proprietary solutions
5. Avoid hard-coding dependencies, try to inject them via command line parameters, configuration files, env variables, etc
@ouyi
ouyi / kafka_python_client.py
Created Mar 16, 2019
Kafka Python client code
View kafka_python_client.py
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:19092'])
data = bytes('hello', encoding='utf-8')
producer.send('test', value=data)
from kafka import KafkaConsumer
consumer = KafkaConsumer('test', bootstrap_servers=['localhost:19092'], consumer_timeout_ms=2000, auto_offset_reset='earliest')
event = next(consumer)
@ouyi
ouyi / mvn_commands.sh
Last active Feb 25, 2019
Frequently used Maven commands
View mvn_commands.sh
# --- Maven ---
# Skip test execution
mvn package -DskipTests
# Skip test compilation
mvn package -Dmaven.test.skip=true
# Retrieve the project version
@ouyi
ouyi / remmina_post_install.sh
Created Feb 9, 2019
Commands after installing remmina
View remmina_post_install.sh
sudo snap connect remmina:avahi-observe :avahi-observe
sudo snap connect remmina:cups-control :cups-control
sudo snap connect remmina:mount-observe :mount-observe
sudo snap connect remmina:password-manager-service :password-manager-service
@ouyi
ouyi / pkg_mgmt_cmds.sh
Last active Feb 15, 2019
Frequently used package management commands on popular Linux systems
View pkg_mgmt_cmds.sh
# Find the owning package of a file / which package installed this file
rpm -qf my_file_or_dir
dpkg -S filename_search_pattern
# List all files of a package
rpm -ql package_name
dpkg -L package_name
pip show -f package_name