I’ve been labelled a *nix fanboy! I win!

Apparently I am now a linux zealot because I want to ssh easily into linux vms:

A brief summary of my daily computing environment: I use an android phone currently, iOS iPads, Osx on laptops, win8 on a desktop machine. I develop software components that target most of the above, as well as various flavors of linux for appliances and cloud hosted environments. On a less frequent basis I use a surface RT that I bought at launch. Each os has its pros and cons, each machine has its merits.

I have no emotional attachment to any os because deep down they aren’t all that differentiated. And I can’t afford the luxury of irrational attachment — I need to target users wherever they are, and I need to use tools that are the most efficient. My own usage, and that of most users, is inherently spread across many vendors and many oses, and I don’t see that changing. Multiplatform and interoperability is just a fact of life.

So when I said wanted ssh, I don’t want something better/different than ssh. I want exactly ssh because I need to connect to a variety of environments and ssh is the only reasonable common denominator. Powershell remoting may be super awesome and wonderful, but it doesn’t solve any problem I have, and just introduces a new non-interoperable tool and protocol with its attendant complexity. Not at all helpful — doesn’t save me time, just creates complexity. I am not saying that Powershell remoting is bad, it just isn’t useful in an inherently multiplatform environment. If your environment is Windows only, then by all means embrace Powershell if that works for you.

And when I say I want easy copy/paste, I don’t want copy/paste with some completely different keyboard and mouse interface. Ctrl-C/Ctrl-V and Cmd-C/Cmd-V have become second nature to me, I have a lot of muscle memory built up around those. Giving me copy/paste using some other keyboard interface or mouse interface is not very helpful (nor is command window text selection that works on blocks instead of lines). I don’t need or value innovation in the copy/paste interface, it doesn’t make me more productive.

So for those reasons, for me, OSX is substantially better than Windows as a development tool today. Which frustrates me because these are stupid little reasons, and there is no reason why Windows couldn’t add these features, it would only make Windows more valuable, and would make my life better. And frustrates me because I still have some affinity for Microsoft, and these seem like such petty features over which to alienate developers. If I was in charge, I’d make sure Windows was excellent at modern cross-platform devops, as well as having Windows-centric features. I can’t see the negative in this.

Experimenting with CoreOS

CoreOS seems like a very nice idea — a minimal linux kernel with just enough libs to run and manage containers. So a container-ready linux kernel, systemd to launch and maintain containers, and etcd to communicate settings (key-value pairs) across containers. The project is motivated by high scale datacenter needs, but i think it is a much more general idea, i see applications in the appliance space as well — managing the software load on a widely deployed set of appliances is hard for many of the same reasons that managing the software load in a datacenter is hard.

I have been using a Centos kernel for my appliance experiments but am going to try a quick coreos experiment. There are some things I don’t understand yet — coreos at this point is focused on virtualized environments and the bare-metal support is just coming along. SystemD is cool but if the containers are centos based, not quite sure how that is going to work out. and networking within the appliance is confusing to me, the coreos docs suggest that one of the containers can manage all the traffic distribution but i am not quite clear on how that works at all levels — dhcp, dns, iptables, nginx, etc etc etc.

So lots to learn! Digging in…

I’ve been stuck in linux startup morass this week

Kickstart and Anaconda. Grub. Syslinux/isolinux. UEFI boot vs BIOS boot. USB key boot vs ISO image boot. Secure boot. Virtual Machine boot vs physicalized boot. Building packages. Integration with Puppet/Chef/Ansible/Salt. What a mess of configuration parameters, configuration files and syntaxes, constrained execution environments, etc. Design piled on top of design on top of design. Clearly the entire hairball should be reconsidered.

The most annoying impediment to deal with was the btusb bluetooth driver that singlehandedly would prevent the entire system from booting. Struggling to understand the design decisions that led to a system that can be taken down by a stupid race condition with the bluetooth driver. Bluetooth, for gosh sake.

How do you permanently delete files from Github, use ansible to modify a file, and other nits

Random things I’ve stumbled on in the last week, and that I am sure I will need to know again.

ASUS Zenbook UX31a and Ubuntu — seem like a fine pairing

I need to be able to do some Linux-based dev work while mobile. I’ve limped along using OSX and also using VirtualBox, but neither of them are really optimal, notably for ARM-targeted work. For instance, building a Raspberry Pi kernel and then emulating it under OSX is very very tricky, and doing it in a VM is slooooow. So I decided I need a real Linux laptop to carry around.

I’m trying out the ASUS ultrabook — the Zenbook UX31a. Awesome name, but whatever. Some tips on Ubuntu install on this machine:

* Turn off Bluetooth in the BIOS. Under Ubuntu, Bluetooth seems to interfere with WIFI. You can find several solutions. One is to turn off Bluetooth which is no loss in my book. The other is to turn of 802.11n which seems like a poorer choice. With Bluetooth off, everything seems to work swimmingly.
* I tried to install Ubuntu beside Win7 and use multiboot. It seemed problematic as the Zenbook already comes with a multiboot config for Windows, system restore, and some bag of Intel utilities. Attempting to install Ubuntu next to all this just seemed to piss the machine off, it persisted in firing up chkdsk and “fixing” the disk. There is probably some smart way to reconfig the multiboot but I gave up (oh and I see that I might have needed to use the 64bit version of Ubuntu for this to work). I ended up creating a “System Rescue CD”:http://www.sysresccd.org/SystemRescueCd_Homepage, backed up all the factory installed partitions to a USB drive, and then had Ubuntu install slam the whole disk. I wanted to keep the factory installed images in case I ever wanted to drop back to Windows for any reason (for instance if I need to get warranty service).
* The “Ubuntu forums”:https://help.ubuntu.com/community/AsusZenbookPrime have a fine list of tweaks to apply to get the system fully working. I did the SSD changes, the webcam utility install, the power management tips, and the “highly experimental” touchpad support. Nothing seems to have exploded.

So, up and running. All seems well. The machine is lightweight and seems like it will serve well. I am a little annoyed with the ugly intel and windows decals slammed on the machine that seem impossible to remove, they mar the lines of the machine.