Skip to main content


Showing posts from 2023

Bypassing the error by "go get" "tls: failed to verify certificate: x509: certificate signed by unknown authority"

When I was trying to download dependencies for my go project in an old Ubuntu machine I was getting this error all the time: "go: Get "": tls: failed to verify certificate: x509: certificate signed by unknown authority" Which the main part of it was go get failing to authenticate: " tls: failed to verify certificate: x509: certificate signed by unknown authority " I tried many things but couldn't make it work until I found the way: export GOINSECURE="proxy.golang.go" This will tell go get to ignore certification validity. Then export GOPROXY=direct This will tell go get to by pass proxy Then git config --global http.sslverify false And only after those I could run again: go get And it worked

They all need to go after 7th of October


List of software and apps that does not require registration and just works

List of software and apps that does not require registration and just works out of the box without too many ads and without need to registrations. The list of applications for Android and Linux desktop that just do the work they need to do. Nothing more. Nothing less. K-9 Email Mail for Android Otomusic - music mp3 player application for Android    

Writing a json to smtp email proxy in go (golang) json2smtp

I wrote a json2smtp proxy server that can be self hosted in Go (golang) See here:   The reason why I needed to write an email proxy was because I was called to do some maintenance on an old legacy system. This system was running on Windows Server 2012, with php version 5.5.6 and Apache 2.4. Very old versions of software. The system was sending emails using the php smtp package and old libssl.dll which supports only TLSv1.0. The smtp service they were using (AWS SES Simple Email Service) has recently dropped the support for SMTP connection via TLS version 1.0. Now in order to support TLS v1.2 for emails on smtp I have to upgrade the whole system. Windows version, php version, Apache version and more - this would have taken me a very long time with many obstacles on the way. Amazon support: security-protocols.html The solution I have chosen was to write this proxy, so calls fro

Taking a screenshot and creating thumbnail of webpage html as an image via command line

There are a few options to take screenshot of a webpage or save a webpage as an image on the disk via the command line. This can allow you to create a thumbnail of a web site easily by one command on the terminal.   Using chrome to save a webpage as an image: chrome --screenshot=google.png --headless --window-size=1024,768    Using cutycapt to screenshot a webpage:   Using webkit2png to create site thumbnail:   You can also use Midori browser

Linux Ubuntu Installing and Using Fake Camera Stream

If you wish to create a virtual camera in Linux and stream "fake" videos during calls: To install the loopback camera: sudo apt update sudo apt install v4l2loopback-dkms v4l2loopback-utils To add the loopback camera module: sudo modprobe v4l2loopback card_label="My Fake Webcam" exclusive_caps=1 or sudo modprobe v4l2loopback devices=1 video_nr=1 card_label='MyWebCam' exclusive_caps=1 Now to stream the video: First find the list of videos device available: v4l2-ctl --list-devices You can check the videos by playing: ffplay /dev/videoX ffplay Rick_Astley_Never_Gonna_Give_You_Up.mpg Now you can stream the video to the free one: ffmpeg -re -i Rick_Astley_Never_Gonna_Give_You_Up.mpg -map 0:v -f v4l2 /dev/videoX Or ffmpeg -stream_loop -1 -re -i video.mp4 -vcodec rawvideo -threads 0 -f v4l2 /dev/videoX To remove the module from the kernel: sudo modprobe --remove v4l2loopback Software for streaming: sudo apt-add-repository ppa:obspro

Cleaning and resizing VM VirtualBox VDI Virtual Machine Disk

 You have to do the following steps: Run defrag in the guest (Windows only) Nullify free space: With a Linux Guest run this: dd if=/dev/zero of=/var/tmp/bigemptyfile bs=4096k ; rm /var/tmp/bigemptyfile Or: telinit 1 mount -o remount,ro /dev/sda1 zerofree -v /dev/sda1 With a Windows Guest, download SDelete from Sysinternals and run this: sdelete.exe c: -z (replace C: with the drive letter of the VDI) Shutdown the guest VM Now run VBoxManage's modifymedium command with the --compact option: With a Linux Host run this: vboxmanage modifymedium --compact /path/to/thedisk.vdi With a Windows Host run this: VBoxManage.exe modifymedium --compact c:\path\to\thedisk.vdi With a Mac Host run this: VBoxManage modifymedium --compact /path/to/thedisk.vdi This reduces the vdi size.

Some notes about caddy webserver installation on Linux

  caddy sudo apt update sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf '' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc curl -1sLf '' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy # the code sits in /var/www # create link to the local directory ln -s /var/www/ /home/xxx/myprojects/web # set the user to be xxx and the group caddy sudo chown -R xxx:caddy ./www   # add us to caddy groups sudo usermod -a -G caddy xxx sudo usermod -a -G www-data xxx Install php-fpm sudo apt install php-cli php-fpm php-mysql php-mbstring php-curl configure caddy with php sudo nano /etc/php/8.1/fpm/pool.d/ www.conf #change users to caddy (user, group, listen.ow

Linux Ubuntu Changing the datair of mysql

  mysqld.cnf datadir = /new/data/dir mysqld --user=mysql --initialize innodb_flush_log_at_trx_commit= 0 ssl=0 #  (5.7 community (self built) might not use SSL for cases. 8.0 always use ssl by default, might be slower) innodb_doublewrite_pages=120 # (if doublewrite enabled for recent 8.0.x "on HDD") innodb_undo_log_truncate=OFF innodb_log_writer_threads=OFF auth_socket=FORCE_PLUS_PERMANENT   sudo systemctl stop apparmor sudo systemctl disable apparmor sudo mysqldump --master-data=1 --flush-logs --single-transaction --routines --quick --all-databases > db20230116_1852.sql CREATE USER 'XXXXX'@'%' IDENTIFIED WITH mysql_native_password BY 'XXXXXX'; GRANT ALL PRIVILEGES ON *.* TO 'XXXXX'@'%' WITH GRANT OPTION; FLUSH PRIVILIGES;