#+TITLE: Old projects #+SHORT-TITLE: old #+TOC-KEYWORDS: #+KEYWORDS: projects #+DESCRIPTION: old projects #+BEGIN(menu):left [[toc][]] #+END * Oldies on Github See my [[https://github.com/chalaev][github page]]. Some of the projects there are replaced (for example, [[https://github.com/chalaev/esy][esy]] was replaced by [[https://github.com/chalaev/old-cloud][mostly-unpublished elisp-code]]); some are written as an exercise and can be used as tutorial (e.g., [[https://github.com/chalaev/chalaev.com][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 ([[http://wicd.sourceforge.net/][wicd]] and [[https://wiki.gnome.org/Projects/NetworkManager/][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 [[http://wicd.sourceforge.net/][wicd]] or [[https://wiki.gnome.org/Projects/NetworkManager/][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 [[https://ice-wm.org][IceWM]]; howerver, it is also compatible with a [[https://joeyh.name/code/pdmenu/][pdmenu]] menu program which can be launched from any terminal, even in text mode. The source and the Debian package are available [[https://github.com/chalaev/wifi-switcher][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 [[http://www.ghisler.com/][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 [[https://github.com/chalaev/wifi-switcher][wifi-switcher]]. It failed only once: in one of NYC airports, where there were so many WiFi networks was so big that [[src: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 [[http://www.hyperrealm.com/libconfig/][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 [[http://www.hyperrealm.com/libconfig/][libconfig]]; it is available on [[https://github.com/chalaev/cl-libconfig][github]]. If you have quicklisp installed, place cl-libconfig source into the [[src:\~/quicklisp\/local-projects\/libconfig\/]] directory, and then you can use it in lisp (say, sbcl) via the [[src:(ql:quickload :libconfig)]] command.