Tech projects at start of 2023
I had a thought about what's on my wish-list for tech tasks that I'd like to complete this year, and then it struck me that there's a lot going on to update my blog with.
I had a thought about what's on my wish-list for tech tasks that I'd like to complete this year, and then it struck me that there's a lot going on to update my blog with.
This weekend I explored the Fish Shell (a modern interactive Unix shell). I've been dabbling with it for a while, particularly enjoying its interactive features: command suggestions, the TAB-completion menu, the fact that it Just Works™ out of the box, and understands commands and options by groking their man-pages.
I've wanted to port a few of my bash functions which I've been missing: my ssh-pass to load SSH keys onto the Agent's keyring with passphrase supplied by pass, and an alias to get my 1password passphrase from pass as well. Also some directory navigation shortcuts that I've used since my university days. I figured these would be a good introduction to how fish's scripting works, and I was right
A bit over two years ago I wrote a post about hacking minecraft with Python. During my holiday break this year I decided to revisit this, and have a bit more of a go with it. Some things have changed, including the Minecraft Bukkit Server that I used then (CanaryMod) being abandoned, and some new enhanced modules that let you run Minecraft PI Python code on a non-PI machine, with Python 3! So let's dig in.
One of the Huon kids over at Bob's Drone Blog has a really cool Scientific Investigation Awards project - an Accelerometer data logger, or "Accelerologger" (I like the name too!). He's stuck with a small coding bug and has asked for help. I think I see the problem. Wisely, Bob's disabled comments without a login (see my Computing Rule 5), so I'm adding notes here on my own blog.
After some hacking of my dotfiles and python settings, I lost my nikola virtual environment (I think it broke after a brew update or something. The hacking's only partly recorded in the issues on GitHub).
But that's no biggie, just make a new one and re-install, right? Well, not quite. The re-install gives you the latest Nikola (great!) and that means I have to review and update my conf.py (okay...) and figure out runtime errors like this:
[src:?][mjl@milo:~/hax/net/blog/milosophical.me] [07:27](nikola)$ nikola version Traceback (most recent call last): File "/Users/mjl/lib/nikola/bin/nikola", line 11, in <module> sys.exit(main()) File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/__main__.py", line 171, in main _ = DN.run(oargs) File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/__main__.py", line 339, in run self.nikola.init_plugins() File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/nikola.py", line 1077, in init_plugins self._activate_plugins_of_category("SignalHandler") File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/nikola.py", line 1233, in _activate_plugins_of_category plugin_info.plugin_object.set_site(self) File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/plugins/misc/taxonomies_classifier.py", line 328, in set_site self._register_path_handlers(taxonomy) File "/Users/mjl/lib/nikola/lib/python3.6/site-packages/nikola/plugins/misc/taxonomies_classifier.py", line 316, in _register_path_handlers doc = taxonomy.path_handler_docstrings[name] KeyError: 'page_index_folder_index'
(well, pooh).
I decided a while back that I wasn't going to meta-blog (otherwise most of my posts would be about blogging!), but I think in this case, Rule 4 will come to the rescue. Anyway at least you know this story has a happy ending, or else I wouldn't be able to add this new_post!
I'm having a play with Minecraft and Python, using the mcpipy library, a Minecraft server called CannaryMod, and a plugin-in for that called RaspberryJuice.
You can do all this out-of-the-box with Raspbian on a RaspberryPi, but I wanted to set up my home computers also. Here's a quick run-down of the steps I followed.
Recently switched back to openSUSE after a brief stint with Ubuntu. I guess you need to try other things out to know how good you have it, eh? Anyway, I'm playing with Leiningen and Quil, but for some reason or other, I could not get Leiningen to self-install, because of an exception:
java.security.KeyStoreException: problem accessing trust storejava.io.IOException: Invalid keystore format
It turns out that the java keystore is somehow corrupt on OpenJDK / openSUSE 12.3. Not sure who's at fault, but here's how to fix it.
In a previous blog entry I described setting up a caching-only DNS server to speed up hostname resolution on Debian systems. I've recently been playing with Ubuntu and noticed that this hack is not working.
I think I can finally put this old walnut to bed, having just updated it with some observations made by guru's of Stack Overflow. Hooray, only took me four years :-P
This is common knowledge, yet strangely every time I rebuild my work PC (which is too often! Gah!) I try and Google the location of Registry keys and folders and always, always get a bum-steer. So here, have another (bum-steer?) version of this hack on the Net.