A great blog post about how to use python modules to inspect python code itself can be found here
Thursday, November 26, 2020
Thursday, April 16, 2020
Veiryfing ssh fingerprints of a system
When trying to connect to a system via ssh for the first time you will get a message that you need to trust the ssh fingerprint of that system.
How do you know if the fingerprint displayed is the correct one, or if there is a man in the middle attack going on?
If you have another terminal open on the system you have you can go to /etc/ssh and execute the following:
How do you know if the fingerprint displayed is the correct one, or if there is a man in the middle attack going on?
If you have another terminal open on the system you have you can go to /etc/ssh and execute the following:
for file in *sa_key.pub do ssh-keygen -lf $file done
This will diplay the ssh fingerprints valid for this system so you can double check them.
Sunday, March 8, 2020
Enabling multiple displays with Thinkpad P52
When switching to power save mode nvidia disables the graphics card multiple display support.
It does not enable it back when switching to performance mode. This was done by creating a file in /lib/modprobe.d/nvidia-kms.conf and setting modeset to 1.
We can revert this change by changing the modeset to 0 or commenting this line. After rebooting, the external display works again.
It does not enable it back when switching to performance mode. This was done by creating a file in /lib/modprobe.d/nvidia-kms.conf and setting modeset to 1.
We can revert this change by changing the modeset to 0 or commenting this line. After rebooting, the external display works again.
Saturday, February 15, 2020
Separating filename from extension in bash
If we want to separate filename from extension in bash this is a neat and useful trick:
filename=$(basename -- "$fullfile")
extension="${filename##*.}"
filename="${filename%.*}"
Wednesday, January 22, 2020
Prioritization of network interfaces
If we have more than one network interfaces and want to prioritize routing via one of them we can do the following:
Check the priorities in the routing table:
Here we can see that we have two interfaces with different metric values enp0s31f6 has higher priority than wlp0s20f3, if we want to swap them we need to install ifmetric with
After this if we check the routing table:
we can see that wlp0s20f3 has higher priority so routing will happen by default through it. Only packages that can not be served by it will be routed via enp0s31f6,
Check the priorities in the routing table:
/home/nickapos [nickapos@nickapos-ThinkPad-P52] [8:44]
> ip route
default via 192.168.17.1 dev enp0s31f6 proto dhcp metric 100
default via 192.168.1.254 dev wlp0s20f3 proto dhcp metric 600
Here we can see that we have two interfaces with different metric values enp0s31f6 has higher priority than wlp0s20f3, if we want to swap them we need to install ifmetric with
sudo apt install ifmetricand do:
sudo ifmetric wlp0s20f3 99
After this if we check the routing table:
/home/nickapos [nickapos@nickapos-ThinkPad-P52] [8:45]
> ip route
default via 192.168.1.254 dev wlp0s20f3 proto dhcp metric 99
default via 192.168.17.1 dev enp0s31f6 proto dhcp metric 100
we can see that wlp0s20f3 has higher priority so routing will happen by default through it. Only packages that can not be served by it will be routed via enp0s31f6,
Wednesday, August 28, 2019
Python patterns and antipatterns
Discovered a nice online python book about patterns and antipatterns here https://docs.quantifiedcode.com/python-anti-patterns/
Monday, April 15, 2019
Parsing and validating YAML
For anyone who is looking for ways to validate YAML files, there are multiple modules out there for python, ruby and perl.
If using pip then you can install yamllint program:
If using pip then you can install yamllint program:
pip install yamllint
and then do
yamllint blah.yml
in Ruby you could do:
ruby -ryaml -e "p YAML.load(STDIN.read)"< data.yaml
Subscribe to:
Posts (Atom)