Well, that could have gone better

I volunteered to give a presentation to Linux Users Group of Rochester (LUGOR) about LVM, the Logical Volume Manager. I knew I had half an hour, and so I made a presentation, rehearsed it several times, and knew I could go through it in half an hour. I did it on my laptop, using VirtualBox to stand in for a computer that I could virtually add and remove drives from. I was told the room we were presenting had a projector that took HDMI input, and my laptop has an HDMI output, so I figured I was set.

First hitch was arriving to find out that we had been bumped from our room because some musicians were warming up for a concert they were giving elsewhere in the building, and the new room had a projector that only took VGA or DVI. Oh, and also I’d evidently gotten my signals crossed and I was really supposed to present next month. But no mind, the guy who was supposed to give the second talk today wanted to go first because he was sick and wanted to bail early, and the guy who was supposed to give the first talk wanted an hour not half an hour and would rather postpone. So the guy who wanted to go first talked first, and got me all intrigued about “ownCloud”. I may be setting that up one of these days.

Then the first room became available again, and we trooped back to it. And then I plugged in my laptop, got the two screens non-mirrored all set up so I could do the Powerpoint presentation part of the show, and then the projector screen started randomly flashing between what it was supposed to be showing and a green screen with something about HDCP displayed on it. I didn’t know it at the time, but that means that the copy protection stuff on my laptop isn’t compatible with the copy protection stuff on the projector. We spent some time trying to wiggle wires, change settings on both the laptop and the projector, etc, and finally I gave up.

Another guy gave a good quick little presentation on the Raspberry Pi. Amazing power in such a small cheap package. I’ve got one on order for another project, but it might be many weeks before I see it.

While he was talking, one of the other members handed over his laptop. It was an Acer that isn’t as high end as my MacBook Air, but it had two things going for it:

  1. It had already proven it could display to the projector, and
  2. It had VirtualBox installed on it.

I copied my VirtualBox disk files and my PowerPoint over to his laptop, and when the Raspberry Pi presentation was over, I started my presentation. And that’s when the next problem reared its ugly head. Every time I booted my VirtualBox instance on my laptop, it takes about 10 seconds or so. Every time I booted it on his computer, it took literally 10 minutes or more. Since I had to reboot several times in the presentation (because I was simulating adding and removing disks), this caused the presentation to drag out drastically. Fortunately there were lots of things to talk about during those long pauses. Charles, the organizer, used one of the pauses to explain in great detail what exactly I was doing with the VirtualBox and which parts of what I was showing belonged to it and which belonged to the guest OS and which belonged to LVM, something which I fear I hadn’t even though to explain in my presentation. With all the long pauses and delays, my “30 minute talk” ended up being somewhere between an hour and an hour and a half. And worse still, on the very last boot of my talk, I discovered that if I increased the number of virtual CPUs from 1 to 4 the boot went much, much faster. I’d only ever used 1 virtual CPU on my own laptop and hadn’t noticed any problem – I don’t know if that’s a difference between my i7 processor and the loaner laptop’s i5, or because mine is hosted on OSX and his is hosted on Linux. I wish I’d discovered this earlier in the talk, though.

If you care, slides are available at https://www.dropbox.com/sh/y4822v4k6am0s9s/IFhrMz-HEW/lvm.pptx but probably not for too long.

Cautiously optimistic on the pain front

This morning, the intense pain I had in the left hip is almost completely gone. I can sort of feel it lurking at the edge, but it’s not actually causing me any pain. The other, more familiar pain in the right hip has been fading slowly over the last two days and I think it will be away (on vacation) quite soon.

In much, much better news, my shoulder is doing better. A little while ago I blogged about how hopeless I felt because when I did my physio exercises, I’d be in pain for 3 or 4 days afterwards, which meant I wasn’t doing them often enough. A day or two later I saw my doctor and he did something where he had me lying down on my back and he reached under me and pushed his fingers into the base of my trapezius muscle and pushed down on my shoulder. That very day, I did my physio exercises and wasn’t in pain the next day. So I erged a bit that day, and I wasn’t sore the next day. So I did my physio, etc. After my business trip (where I didn’t do my physio or my erging, although I did try to stretch), the pain was starting to come back a bit, so my physiotherapist suggested that I just lie down on the floor with a tennis ball under my back, and relax and let my shoulder come back down to the floor. I’ve been doing that (although with a dog toy rather than a tennis ball, because that’s what I have to hand), and it helps a lot, although not as completely as what my doctor did. It might be time to start seeing a massage therapist again. But meanwhile, I’m erging!

There’s pain, and then there is pain

As well as the knee pain, which is and has been pretty much a constant feature (although with intensity that waxes and wanes) in my life since the late 1970s, I get this strange hip pain. The hip pain, which feels like it’s emanating from the “point” of my hip, comes around every now and then, and stays for a week or two, and then it goes away. It means that during that time, I can’t get comfortable sitting anywhere and I end up moving from chair to chair to bed to chair trying unsuccessfully to get comfortable. Other than that, it doesn’t really interfere with my life. It came back a week or so ago on my right hip, but it’s hardly noticeable because of the new pain in my life.

We got a lot of snow over Christmas, and the city wasn’t very good about clearing the sidewalks. And unlike in Ottawa, the sidewalk plows don’t spread sand or salt. Consequently, the sidewalks ended up being thick with ice, except in the few stretches where the home owner was diligent about clearing their own sidewalk. Consequently, I got very sore groin muscles from walking the dogs on the slippery ice. (For those who’ve never experienced it, when you walk on ice you need to keep your weight entirely over your front foot and you walk with a sort-of penguin-like shuffle. You also need to use muscles you don’t use as much in regular walking to keep your legs from splaying out and falling on your ass.) And after that started to fade, I got a horrible pain deep inside my left hip. You know how you put a knife blade in the joint to get a turkey leg off the carcass? Yeah, that’s what it feels like is going on inside there. Sometimes it’s just sore, sometimes it’s very stabby, and sometimes it takes my breath away it’s so painful. It’s very inconvenient when I’m walking the dogs, and it comes on really bad and I find myself wishing I could just stop in the middle of walking the dogs and call Vicki to pick me up. I’ve tried various stretches that sometimes help with the other hip pain, but they don’t seem to be helping this one.

So right now I’ve got the pain in my right hip that I used to consider bad, and the pain in my left hip that’s 10 times worse. And I’ve still got dogs to walk and erging to do and all that stuff.

Well, that wasn’t as easy as I’d hoped…

In my job, I often have to make accommodations for the security desires of my clients. That can be a massive pain in the ass, but it’s better than working in an office.

So when I started this new job, I worked on my Linux box and my Mac laptop, with a massive preference to my Linux box because it’s got two nice big monitors, a really nice clicky keyboard, and I have all the ergonomics dialed in. I had Postgres running on both systems already for other purposes, and it wasn’t hard to install the software we were using as the base system on both. I kept the software in sync between both of them and the client’s dev server using git. Everything was beautiful. For accessing things like time sheets and corporate email, as well as connecting to their dev server, I had to use Citrix, which was a minor pain, but fortunately I didn’t have to do it very often.

But then the client said “oh, that test database we gave you has real employee ids and the like, and so we need you to take some security precautions with it. Specifically, you need to turn on full disk encryption on your laptop, and purge the copy of the database on your desktop.” It took a bit of work, but I managed to get it so that my software would still run on the Linux box and connect with PostgreSQL on the laptop over an SSH tunnel, and so I’m in compliance with their wishes – I do have to remember to shut down the test server on my Linux box and the SSH tunnel before removing my laptop from the LAN, but that’s ok. That’s what you’ve got to do in this brave new work of computer security.

But now we’re entering a new phase of the project, where my code has to talk to a web service that a different group at the client site provides. And that web service is only available inside their firewall. That gives me a few choices for development:

  1. Do my local development without benefit of the web service calls, “comment them out” or the equivalent, and only test them when I “git pull” the code down to their dev server. Not a great option, because the code I’m testing locally is even further away from their code.
  2. Write a dummy web service on the Linux box or my laptop or both, and use that for testing. Probably feasible, but more trouble than I’d like to go through.
  3. Get a VM on their site where I can do development and testing both.

The last option is probably the easiest. It also means I can get rid of my copy of their database, and therefore get rid of full disk encryption on my laptop (which means no more typing my password every time the display blanks). The downside is that the VM will probably be Windows, which is nowhere near as nice to do development on as Linux or Mac, especially if you don’t have admin privs and so you can’t install the stuff you like. (I’m guessing I can’t install Sublime Text, not sure even if I can install gvim.) The real clincher is whether I’m going to be able to install a version of the base software or not, because if I can’t do that, I can’t work. If I can install it, then I probably can work that way – it’s a simple as that.

But if I’m going to do that, I’m going to want to log in from Linux because of the ergonomics I mentioned earlier. I’ve been using my MacBook Pro (or even this shitty Dell laptop I have for testing purposes) to log into Citrix because I didn’t want to install the Citrix client program on Linux. But needs must, etc. I looked on the Citrix web site and they have a .deb “for 64 bit Linux”. I downloaded it and clicked on it, and it said that it needs to install 246 other packages to satisfy dependencies, including 32 bit versions of nearly every major library out there. Sorry, Citrix, that’s not my definition of a version “for 64 bit Linux”. Ok, I thought, I know a way around this! I’ll install a 32 bit version of Linux in a VirtualBox VM, install the Citrix client in that, and use that to log into the work site.

Well, that turned out to be an adventure in itself. Mostly because I’m using Kubuntu (which is Ubuntu with KDE instead of the god-awful Unity Desktop), which is a little too resource hungry to run in a VM. So I was installing vanilla Ubuntu, Unity Desktop and all. But there was something weird about Ubuntu – I would install it and it was fine, but then it would download the required security updates, and suddenly the “VirtualBox Guest Extensions” stopped working and they refused to re-install. And what that means is that I could share any directories between the host OS and the guest, and more importantly, I couldn’t get the guest to expand to use the entirety of my beautiful 2560×1440 IPS monitor. And that’s a deal-breaker. I tried installing from scratch, and I tried using a pre-built Ubuntu image, and both times if failed after installing upgrades. But I tried a Debian pre-built image, and that worked fine, even after installing upgrades. The only drawback of Debian is that they don’t have proper Firefox, they have their weird-ass IceWeasel browser, which lags way behind the current version of Firefox. So I had to install real Firefox from a tar file, which is like a throwback to the bad old days of Slackware. But that worked fine, and the Citrix 32 bit client installed without any drama, I was able to log into Outlook and Putty on the client side, and so I’m ready for when they get the VM set up for me.

Get it together, guys

If there is one thing that iOS and Android developers seriously need to come together on it’s a common standard for showing “my app is currently waiting for something to arrive from the internet”. I mean, half the time in Android all you can see is a tiny barely visible exclamation mark or something on the wifi signal strength meter. The spinner on the titlebar that seems to be the “normal” iOS one is at least slightly more visible, although I think we need something more visible when your app is actually blocking (as opposed to just filling stuff you can’t see yet). Some apps have taken it upon themselves to replace the “default” spinner (or lame exclamation point) with a much more visible one in the main screen – in the Facebook app on iOS it’s both, and they aren’t 100% in sync – but there is a lot of different spinners and throbbers in different apps, and it’s inconsistent and confusing. Then you get the god-awful flashing color bars in the G+ app on iOS. Please stop trying to be clever. Maybe if Android’s wait notification wasn’t so lame people would actually use it, and then at least we’d have some consistency. (It doesn’t help my case that Chrome on my iPad currently has the spinner up on the title bar spinning even though nothing is loading.)