And Now For Something Completely Different

A side on photo of the HP Microserver Gen8 with the case open
HP Microserver Gen8 – case open

Hello everyone,

I know what you’re thinking “two new posts in less than a month, can this really be possible?”, well I’m as surprised as you but if you’re reading this then I guess it happened. Let’s see where it leads us. In the last couple of years I’ve hardly written anything, and when I have it’s only been updates about my ongoing health situation. So today I’d like to begin changing that trend and talking about more geeky stuff again. Between my bouts of illness I have been doing the odd techy thing when I can. I’ll give you a quick outline of what I’ve been up to and projects I’m interested in, then hopefully post more about each one individually in the future.

I still have my HP Gen 8 Microserver and it’s going strong. I first wrote about that a couple of years ago when I started down the road of centralising my computing set up. I still have a laptop but it’s on it’s last legs and to be honest I hardly use it these days anyway. I’ve been through a few different iterations but my server now sits underneath the stairs and goes about it’s business pretty quietly and efficiently. It’s connected to a UPS along with the broadband modem and router, so even in the event of a power cut I can keep going for a few hours. It can also alert me of power problems which is handy if I need to do anything. We don’t get many power cuts but it pays to be on the safe side. I recently got some additional memory and it’s now at peak capacity, 16GB. I hacked it to replace the Intel Celeron chip with a fast quad core Xeon at the beginning of 2016. It also has 12 terabytes of storage across 4 drives in the main bay, plus a 64GB USB stick which holds the host OS internally. It’s really quite and pretty powerful too, I’m pleased.

This forms the basis of my IT setup and I was using Ubuntu Server 14.04 with KVM to virtualise all kinds of machines for different purposes. The main change I’ve made in the last 6-8 months is a move to Proxmox VE for the host OS. It’s essentially just Debian with a few tweaks but the web control panel is really nice and makes life a lot quicker if I need to clone a VM or perform other general tasks. This is all possible through a Bash terminal of course and I was happy just using Virsh until I realised how much easier life could be. The web front end and other components they add to Debian to make Proxmox VE are all licensed under GNU AGPLv3 which makes me very happy! It does nag you to set up an enterprise subscription occasionally but I ignore this and it’s not a problem, I understand they have a business model. So the reason I don’t use the laptop much now is I can work straight off a VM on the server via SPICE or VNC and it seems to do the trick. It even works on my Pixel C tablet pretty smoothly. The writing is on the wall for the laptop I’m afraid. It’s 5 years old though and beginning to fall apart anyway. You may be wondering why the hell I need a setup like this at home and a few people have asked. Beyond the obvious fact it’s just cool on a geeky level, I want to get back into semi-serious coding and using VMs for testing and deployment is perfect.

A screenshot of Firefox displaying the Proxmox web interface
The sexy Proxmox web UI

I have a static IP at home and 19.5mbit upload speed thanks to Plusnet, so I’ve also repurposed my original Raspberry Pi as an OpenVPN gateway using the PiVPN tool. That’s been up and running about 6 months too without any problems, touch wood. So I can access my home network from wherever I am on any device and this is a big bonus when developing on my home server.

I haven’t done much programming in any serious way for years but at one time I was a bona fide, card carrying, software engineer and developer. Since I can’t do as much physically these days I’ve decided to try and contribute to some Open Source projects online when I’m able, and who knows maybe reclaim my status as a real developer in time. To this end I’ve been playing with a few different projects that interest me. The main one being Airsonic, a fork of the Subsonic music streaming server. It’s all written in Java, which wouldn’t be my first choice of language but obviously I love music and I wanted a decent audio streaming solution for music and podcasts on my server. I did study Java at university, even if it was 14 years ago so I’m fairly sure I can pick it up again. I’ll post in more detail about Airsonic separately because there’s a lot to say, but basically I really like it and use the software for streaming all my music and podcasts to mobile devices and more these days. The only slight problem is it doesn’t manage podcasts as well as I’d like. I thought about trying to make my own solution for this (perhaps in Python) and then I realised I was falling into the trap so many people do with Open Source projects. Why reinvent the wheel when all you really need to do is tweak it a bit to suit your purposes? So my grand plan is to get to grips with the code enough to add and test the features I want, then contribute it all back to the community. That’s a long way off but at the time of writing I have got a few different testing versions of Airsonic working on different VMs and I think I’m getting to grips with Tomcat (shudder). It caused me no end of problems in my uni days of trying to write JSP applications, but we’ve both changed a lot since then. Hopefully for the better. I’m prepared to give it another chance.

On this journey of reacquainting myself with Java and Tomcat I did get sidetracked quite often. First into Dart, not darts of the pointed kind which I also love. A friend suggested I look at Dart and see how I liked using it as a language. I did a few tutorials and I have to say I’m quite impressed. I was able to build a little TODO list app with AngularDart in about an hour. It ended up looking like Google Keep and that’s impressive! Of course it’s a lot easier following an exercise or tutorial than writing your own code though. So we’ll see how I get on if I decide to use Dart in any serious capacity.

The other tangent I got pulled into was Android app development. Not something I’ve ever really bothered with but the temptation to install the Android SDK was too great, since I was already playing with Java again. I ended up creating a little test app that doesn’t do anything much but it was fun to learn about. I got the Android Studio working and it seems pretty impressive as an IDE. Despite the fact I’m wary or letting an automated tool generate lots of code for me. I have no hope of understanding what it does or fixing it should something go wrong. I learnt that the hard way many year ago with Dreamweaver and Javascript.

Finally on a techy note, the keen-eyed among you will have noticed I’ve been back on FLOSS Weekly a few times in the last 6 weeks. Randal has been really supportive and keen to get me back which I appreciate. So you can find a few episodes featuring me over there at the TWiT website. I’m not sure if I’ll be able to get back into podcasting seriously anytime soon but who knows. Fingers crossed. The good thing with FLOSS is I really don’t have to do much other than turn up and talk. There isn’t the hours of preparation work involved in producing a show like Linux Outlaws for example. I know this might get people excited expecting the return of Rathole Radio and waiting to see me do stuff with Sixgun Productions again, sadly I’m just not up to that right now but hopefully one day soon.

I’ve also been managing to get to a few LivLUG meetings and I’m very keen to continue supporting that of course.

So there we go, that’s a brief round up of what I’ve been up to in a tech capacity for the last 18 months or so. Not a terrific amount but I still hope to do more, definitely around coding and development. I’ve also watched many films and TV programmes, listened to a bit of music and metric ton of podcasts. So I’ll pass on any thoughts or feelings about them as they seem relevant. Until then, if you made it this far, thanks for reading.

Take care of yourselves and I’ll see you soon,

Dan

12 Comments

    • Dan great to hear that you are hacking again. For a tinkerer like me I love to hear others experiences it encourages me to delve more once I know something is possible. Look forward to the next post.

  1. Congratulations on the return to writing software, and especially to contributing to free software. That’s awesome.

    I get paid to develop with Java. It’s okay, not completely awful. Java Server Pages (JSP), Java Server Pages Expression Language (EL), and Java Server Faces (JSF) are terrible. You have to learn all sorts of special syntax and unintuitive scoping rules. So the amount of pain you’re in for with Airsoft will depend on how they build their web pages. πŸ™‚

    I always used the open source virt-manager tool to manage my own virtual machines. It doesn’t have web access, it’s a traditional desktop application. But it makes setup and management straightforward and I don’t have to remember the virsh commands I need.

    Good luck. I haven’t listened to FLOSS Weekly in years, maybe I’ll grab some episodes.

    • @Mike S – Luckily Airsonic isn’t a JSP application, it does use Tomcat but it’s much more modern. I used the WAR package to get it working. I think JSP is essentially dead now and it’s probably a good thing. I didn’t like it much. When I was at Uni we did Applets, Servlets and JSP but this was circa 2003 so it’s a long way back. It seems to be popular to bitch about Java now but I never had a problem with it. I did a lot of .NET and C# in the years after uni and it always felt like a rip off of Java anyway.

      Virt-manager is very cool on a Linux desktop, I’ve used it many times. There are other web interfaces for KVM as well powered by libVirt. Things like oVirt and Kimchi. I could never get those working properly and the selling point of Proxmox for me was it also does LXC containers neatly in one web interface. The Android app for managing the VMs is nice on the phone or tablet and you can always just open a browser and hit the web interface from anywhere if you need to. All this is probably overkill for my use case. I am only running about 5 VMs on one physical server at any one time, I just like playing with the stuff. Proxmox has storage pools, live migrations and loads of other things I’m never likely to need, it’s really designed for large deployments and multiple data centres. It’s a good solution though.

      Thanks for the good wishes πŸ™‚

      • JSP seems to be dead for new development. But I get paid to maintain existing applications, so it’s been less than 24 hours since I had to monkey with a JSP. That’s life.

        I didn’t realize how many more features Proxmox has. That’s awesome. I managed two VMs at home with virt-manager. At work they use VMWare vSphere – I’d love to talk them into switching, but the VMWare fans outrank me so it won’t happen. But I might mention Proxmox.

    • @jwp – Yeah using an on-screen keyboard for Bash commands is a pain, I feel you there. Luckily my Pixel C has a hardware keyboard attached with full size keys and it’s very nice to use. I also have another external Bluetooth keyboard I can use and a mouse too. Android works great with a mouse out of the box. As soon as you connect a mouse the pointer just appears and you’re off. Here’s a pic of folio keyboard/case I have on the Pixel C, it’s the official Google one, a couple of years old now but going strong – https://techbug.my/wordpress/wp-content/uploads/2015/12/Pixel-C-Folio-2.jpg

Leave a Reply to Mike S.Cancel Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.