You need to enable JavaScript to run this website.

Old projects

Oldies on Github

See my github page.

Some of the projects there are replaced (for example, esy was replaced by mostly-unpublished elisp-code); some are written as an exercise and can be used as tutorial (e.g., Common Lisp web server).

As of 2022, I mostly lost enthusiasm for publishing my code on GitHub.

wifi-switcher

Back in 2015, I was searching for a good programming language and decided to try Perl.

For years I used graphic utilities (wicd and NetworkManager) on my laptops to establish wireless network connections. Then I realized that actually linux has a number of reliable command-line utilites (iwlist, ifup, ifdown, isc-dhcp-server, wpa_supplicant, hostapd) that provide almost the same functionality as wicd or NetworkManager.

I wrote a perl frontend for these command-line utilites which can be used to connect to (or create) a WiFi network. I primarily use it with IceWM; howerver, it is also compatible with a pdmenu menu program which can be launched from any terminal, even in text mode.

The source and the Debian package are available on GitHub.

Apart from switching between wifi-networks, wifi-switcher can be turned into the wifi-server (adhoc) mode with an ftp server. This is especially handy for my wife's windows smartphone that does not have a slot for an external sdhc-card: I connect the phone to the adhoc wifi-network, log in to the ftp-server using TotalCommander and move the files (photo/audio/video) from/to the smartphone.

As of 2022 I understand that Perl is not the best option when you want to write something serious, but I am still using the wifi-switcher. It failed only once: in one of NYC airports, where there were so many WiFi networks was so big that iwlist refused to list them (crashed).

cl-libconfig

Lisp is my favorite programming language; unfortunately, it is not so widely used and there are still no lisp-interfaces to some handy libraries. I like to work with libconfig library in my C projects; it is universal (available for C, C, python, perl), and its syntax is powerful enough for my needs.

cl-libconfig is the common lisp interface to libconfig; it is available on github. If you have quicklisp installed, place cl-libconfig source into the ~/quicklisp/local-projects/libconfig/ directory, and then you can use it in lisp (say, sbcl) via the (ql:quickload :libconfig) command.