search

Monday, December 23, 2019

Log quireis in dnsmasq

Add the following line to dnsmasq configuration file: log-queries

Friday, November 22, 2019

Lxd on Fedora 31

Fedora 31 has started to use cgroups v2 by default. According to Common F31 bugs it doesn't play nice with Docker, lxd and others. To make fedora switch back to the old cgroups:
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

How to regenerate grub configuration

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Friday, October 4, 2019

wifi utils

List used wifi frequences
sudo iwlist wlp1s0 scan | grep Frequency | sort | uniq -c | sort -n
List available channels
iwlist channel
List wifi networks
nmcli d wifi

Wednesday, September 25, 2019

Fix isort in vscode for python2

Go to the vscode Python extension folder:
cd ~/.vscode/extensions/ms-python.python-2019.9.34911
Install latest version that is known to work with python 2:
pip2 install -t ./pythonFiles/lib/python --upgrade isort==4.3.17

Sunday, March 11, 2018

python: Django-like testrunner

Django-like testrunner for non-django projects:
#!/usr/bin/env python

import argparse
import collections
import unittest
import sys


def main():
    parser = argparse.ArgumentParser(description='Django-like testrunner')
    parser.add_argument('specific_test', metavar='', type=str, nargs='?', help='Specifc test')
    parser.add_argument("--failfast", action="store_true")
    parser.add_argument("--verbosity", type=int, default=1)

    args = parser.parse_args()

    loader = unittest.TestLoader()
    all_tests = loader.discover('.', top_level_dir="./")
    suite = unittest.TestSuite()

    if args.specific_test:

        def walk_tests(tests):
            if isinstance(tests, collections.Iterable):
                for item in tests:
                    walk_tests(item)
                return
            if tests.id().startswith(args.specific_test):
                suite.addTest(tests)
            elif not str(tests).startswith("test"):
                sys.exit("Error in file %s" % tests)

        walk_tests(all_tests)
    else:
        suite.addTests(all_tests)

    unittest.TextTestRunner(verbosity=args.verbosity, failfast=args.failfast).run(suite)


if __name__ == "__main__":
    main()

fedora: SSL certificate viewer

GUI to view certificate:
gcr-viewer cert.pem

linux: List all IP addresses in a network

To list ip addresses of all connected to the network devices, use this command:
nmap -sn 192.168.0.0/24

linux: CPU benchmark

$ sysbench cpu run --time=5
sysbench 1.0.9 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 1
Initializing random number generator from current time


Prime numbers limit: 10000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  1157.88

General statistics:
    total time:                          5.0008s
    total number of events:              5792

Latency (ms):
         min:                                  0.80
         avg:                                  0.86
         max:                                  3.74
         95th percentile:                      1.06
         sum:                               4998.26

Threads fairness:
    events (avg/stddev):           5792.0000/0.00
    execution time (avg/stddev):   4.9983/0.00

bash: How to check what hides behind an alias

To check what command is assigned to the alias use type command:
$ type gl
gl is aliased to `git log --oneline'

Thursday, November 16, 2017

fedora: Install flashplayer in Firefox

I have flashplayer installed on my system from the official Adobe repository, but Firefox for some reason does not have flash plugin installed. You can check if your browser supports flash by navigating to this url

To make Firefox aware of flashplugin, try to create a symlink here:

cd http://isflashinstalled.com/ && ln -s /usr/lib64/flash-plugin/libflashplayer.so .

Thursday, November 2, 2017

Monitor process with top

One liner to monitor a process with the name /wshub:
top -p "$(pgrep -f /wshub)"

Tuesday, October 31, 2017

Run command as a different user

Command runuser allows to run a command as a different user. You must be root to be able to run that command:
sudo runuser -l vagrant -c "GH=1 env"

Friday, October 13, 2017

Monitor cpu and memory usage of the process

Print every second cpu and memory usage of the process:

watch -n 1 "ps -eo pid,pcpu,pmem,args | kazy -i xnotitle -e kazy"

Firefox Quantum: No titlebar

In "old" Firefox times I used to use HTitle extension. It removes useless titlebar in Firefox in GNOME 3. However, the extension was discontinued. Firefox starting version 56 does not support Legacy extension and new solution is needed.

I wrote a small application which hides titlebar of the maximized windows. xnotitle is written in Go. By default, every second it checks for a new window which contains "Mozilla Firefox" in the title and applies special style to disable the title bar when the window is maximized.

xnotitle can be used to hide title bar for any application. Specify window title to hide with -name argument. You can also adjust how often xnotitle is going to check for new windows.

To start using application, clone the repository and build the project:

git clone git@github.com:jsnjack/xnotitle.git
make build
You should have go installed.

After xnotitle is compiled, start it automatically with the system by creating ~/.config/autostart/xnotitle.desktop file with the following content:

[Desktop Entry]
Type=Application
Name=xnotitle
Comment=xnotitle hides title bar of the specified windows
Exec=/home/jsn/go/src/github.com/jsnjack/xnotitle/xnotitle
Terminal=false

I recommend also installing Close Window Button extension to add Close window button (as titlebar is gone and all window control buttons too)