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.