Let's say you have a raspberry pi at home and want to be able to ssh into it from anywhere. In home environment (behind NAT/firewall and dynamic public IP) that means you have to set port forwarding on router and use some DDNS to handle IP changes.
But you can also do it differently. Serveo.net to the rescue! You can create a remote ssh tunnel from your respberry to serveo.net and specify which local port you want to expose. Additionaly you can bind it with your domain and use autossh for persistent tunnel in case your device reboots.
$ cat /etc/systemd/system/autossh.service
Description=AutoSSH tunnel service
ExecStart=/usr/bin/autossh -M 0 -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o ServerAliveCountMax=3 -NTR domain.com:22:localhost:22 serveo.net
$ ssh -J serveo.net email@example.com
To find used car in good condition is hard. Especially if you are looking for specific model/characteristics. Most of them are sold the same day ad is published. So instead of looking through the ads every day and loose a lot of time... I wrote web crawler/spider that checks avto.net for new ads every hour and sends me an email notification. It's written in scrapy (python) & available at github.
Common situations in Git:
1. Forgot to add something to your last commit?
git add [stuff-you-forgot]
git commit --amend
2. Something went wrong and you want to revert files to some other (old) state.
git reset --hard [HEAD or hash or branch_name or tag]
3. Rebase between two local branches.
In simple terms, a
git rebase master from a feature branch, will unwind the local commits made on the feature branch, update the root of the feature branch with the commits pulled down from master, and then re-apply the local commits from the feature branch on top.
4. More people are working on remote feature branch.
git pull --rebase origin feature_branch
git push origin feature_branch
5. Temporarily save current (uncommited) work. Often, when you’ve been working on part of your project, things are in a messy state and you want to switch branches for a bit to work on something else. The problem is, you don’t want to do a commit of half-done work just so you can get back to this point later.
git stash (save)
...do other stuff, come back...
git stash pop
6. Help yourself with logs
git log --oneline
A few 7950 & 280x cards. #picture
As this is still zero-day vulnerability, I am not disclosing any details yet.
I created multi-functional clock to have it on my nightstand. It's based on Arduino Uno, 16x2 LCD, DS3231 module with internal oscillator and DHT22 module. Showing me time, date, temperature and humidity. Additionaly I connected LED strip and 'touch switch'. #code #picture
Responsive website design forznam.si.
For my bachelor's thesis I implemented timestamping service, which uses two methods simultaneously, first PKI and second blockchain. You can read more here.
If you have a lot of projects and are experimenting all the time, you need 'testing lab'. I used spare PC with C2Q & 8GB of ram and turned it into VM hypervisor. Ubuntu server + KVM + libvirt.
At Graphics Design class at college, I designed a cool mouse pad in Illustrator. #picture
Some years ago I created a thiny program for myself. It's purpose is to remind me to take brakes & look away from monitor for a few minutes. It's written in C, code is available in my github repo.
\ No newline at end of file