Adventures In KVM Land

Hopefully this saves someone doing a Google search some time. Running something like sudo ubuntu-vm-builder kvm trusty tahir on Ubuntu 14.04 at least seems to sometimes generate the following error (emphasis mine):

Preparing to unpack .../linux-image-virtual_3.13.0.52.59_amd64.deb ...
Unpacking linux-image-virtual (3.13.0.52.59) ...
, stderr: grep: /proc/cpuinfo: No such file or directory
This kernel does not support a non-PAE CPU.
dpkg: error processing archive /var/cache/apt/archives/linux-image-3.13.0-52-generic_3.13.0-52.86_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-52-generic /boot/vmlinuz-3.13.0-52-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-52-generic /boot/vmlinuz-3.13.0-52-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-3.13.0-52-generic_3.13.0-52.86_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ends up this is an older known bug. Adding --addpkg linux-image-generic seems to work as recently as Trusty Tahir.

MySQL To Percona Server Gottcha

Decided to replace the aging MySQL 5.1.x on a CentOS Box with a newer Percona Server 5.6. First step was to update MySQL 5.1 to 5.5. This went relatively smoothly after I figured out some mySQL transaction kung-fu and ran mysql_upgrade. Step two was to replace it with Percona Server. It installed fine. Almost to simple. So naturally I ran:

etc/init.d/mysql start

which resulted in a dreaded:

Starting MySQL (Percona Server).... ERROR! The server quit without updating PID file (/var/lib/mysql/SERVERNAME.pid)

After a few minutes of pouring through the logs I noticed this little nugget:

2015-04-25 19:18:16 18234 [ERROR] /usr/sbin/mysqld: unknown variable 'table_cache=7K'

Apparently around MySQL 5.1.3 they replaced table_cache with table_open_cache. A simple rename in my.ini, and we’re on our way. Now running a little faster thanks to some much newer DB binaries.

When Is It Really “Open Source”

From Phoronix:

Up to this point the graphics driver for the BCM2835 and its VideoCore processor found in the Raspberry Pi was backed by an open-source kernel driver but a closed-source user-space. Today — through cooperation with Broadcom — the Raspberry Pi Foundation was able to release the user-space bits to to this driver. Therefore there was then a full open-source ARM graphics driver with OpenGL ES 2.0, EGL, OpenMAX IL, etc. The one caveat though was that a firmware blob must be loaded at boot.
..
It turns out that Broadcom shoved much more into their firmware binary blob than just some basic setup routines and other non-critical tasks. Broadcom’s OpenGL ES (GLES) implementation is even lodged within this GPU driver firmware.

I’m not really sure it’s “open source” when you cram all the good parts into a binary blob. Essentially what they did was make the API slightly more open. I’m a bit disappointed at Broadcom. I’m a big fan of the Raspberry Pi, I own 2 already. However I’d like to see it open enough that it can improve and grow software wise.

MySQL Going Closed Source

I was a little concerned when MySQL AB was purchased by Sun, however Sun had a pretty long history with open source and mostly seemed to know how to balance things. When Sun was purchased by Oracle, I was quite uneasy knowing Oracle has a way of killing everything that isn’t Oracle. Seems like that time has finally come. Thankfully there are some forks of MySQL already. It might be time to start reading up and making sense of them.

Getting ant Working In CentOS 6

I was seeing this error after installing ant on CentOS 6.2 via yum:

$ ant
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.launch.Launcher
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: org.apache.tools.ant.launch.Launcher. Program will exit.

Odd, generally yum packages work out of the box. The problem ends up being that ant can’t find ant-launcher.jar The solution is to add the following to your .bashrc

export ANT_HOME=/usr/share/ant
export JAVA_HOME=/usr/lib/jvm/java

Once you do that it should find the necessary jar and work just fine.

Hopefully that saves someone else the hassle of figuring this out.

CentOS 6 Dropped yum-updatesd

I’ll admit I didn’t follow the RHEL/CentOS 6.0 release cycle as closely as I should have. I’m just now jumping into it. Today I learned yum-updatesd was dropped upstream. YUM isn’t perfect, but I did appreciate yum-updatesd. I liked the email notification feature. It doesn’t seem like there’s any alternative that easily gives me that back.

I may just end up compiling this one from source to restore that functionality unless I can find something better. Of course there’s an irony of compiling something from source to handle a package manager.

Open Source Licensing Choices

InfoWorld has an interesting story on GPL’s decline (might be a strong word) in favor of some more permissive licenses, notably Apache, MIT, and BSD. I think this part hits the main deciding factor:

Originally associated with variants of Unix, these “permissive” licenses took their names from the universities at Berkeley and Massachusetts: the BSD and MIT licenses. These licenses allow you to do almost anything with the associated software, including making it closed, proprietary software to which the four freedoms no longer apply. This is also a source of controversy, as some people consider it wrong to take open source software and prevent others in the future from using, studying, modifying, and distributing it.

Many corporations out of licensing concerns forbid GPL, rational or not. In my experience if you want to keep your project open to as many enterprise and corporate uses as possible, BSD, MIT or Apache is your best bet. I don’t think many these days still forbid all open source. Some still forbid GPL. They will use GPL licensed software, just not the code.

Deciding what license you pick is an important part of any software project.

Linus Torvalds Said No To Steve Jobs

Wired has a great piece on Linus Torvalds. Linus is one of the most under appreciated people in the world. We all interact with his work daily, yet very few even know what his work is, much less him. Even Steve Jobs apparently realized that:

Torvalds has never met Bill Gates, but around 2000, when he was still working at Transmeta, he met Steve Jobs. Jobs invited him to Apple’s Cupertino campus and tried to hire him. “Unix for the biggest user base: that was the pitch,” says Torvalds. The condition: He’d have to drop Linux development. “He wanted me to work at Apple doing non-Linux things,” he said. That was a non-starter for Torvalds. Besides, he hated Mac OS’s Mach kernel.

“I said no,” Torvalds remembers.

Had he said “yes”, the world could be a very different place. Mac OS X surely would be different, same for iOS. Linux would also be different as the kernel would have likely lost some steam as different folks forked and went their separate ways. Linus is a driving force and a constant in the Linux world. Linux runs many of the most popular services in the world from Google to Facebook to the Android OS among others. It’s being free, open and a rock solid OS is part of what helped these companies grow.

It’s amazing to think how far that chain reaction would go.

The Rise Of Open Data

There’s lots of talk about open source software in use all over the place. Linux runs everything from servers to cell phones. You can find it powering the entertainment system on your next flight. You can find it anywhere you use technology.

We talk much less about open data, but it’s equally interesting. The first and most prominent source is of course Wikipedia which is of course one of the largest sites on the Internet by most metrics. It’s data is widely used in many applications from being accessible on the Kindle to priming Facebook and presumably Quora (I don’t think they have ever confirmed it) with pages. It’s been downloaded and analyzed many times. Even the edits have been scrutinized by researchers to learn how people interact with each other.

Lesser known is OpenStreetMap, a project that may eventually challenge the long dominant Google Maps. OSM is to maps what Wikipedia is (or was) to encyclopedias. It’s website is still a bit crude and if made better would likely encourage some usage from folks who are opposed to Google on privacy grounds. Even more interesting is that OSM’s data is pretty widely consumed. Apple appears to be starting to use it. as they look to break the dependency on Google, a competitor for maps. Laminar Research uses it to generate a “plausible world” (their words not mine) in X-Plane 10. Think about that, a simulator using real street map data to generate a world that looks in many ways like the real world. It’s amazing.

Data has been ignored for so long, it’s just starting to get recognition. It was partly ignored because processing data used to be expensive. Cheap computing means data can be created, stored, processed, sifted and sorted, save and sent quicker and more affordable than ever before. We’re still at the beginning of this revolution.

The Case Against 24 bit 192kHz Music

Chris Montgomery aka “Monty” wrote an amazing essay on why 24 bit 192kHz downloads are silly and not worth while. Among those lobbying for it include Neil Young. Given Montgomery’s experience with audio encoding (OGG/Vorbis), he’s without question an authority on the topic.

Articles last month revealed that musician Neil Young and Apple’s Steve Jobs discussed offering digital music downloads of ‘uncompromised studio quality’. Much of the press and user commentary was particularly enthusiastic about the prospect of uncompressed 24 bit 192kHz downloads. 24/192 featured prominently in my own conversations with Mr. Young’s group several months ago.

Unfortunately, there is no point to distributing music in 24-bit/192kHz format. Its playback fidelity is slightly inferior to 16/44.1 or 16/48, and it takes up 6 times the space.

There are a few real problems with the audio quality and ‘experience’ of digitally distributed music today. 24/192 solves none of them. While everyone fixates on 24/192 as a magic bullet, we’re not going to see any actual improvement.

Go read the rest. It’s worth while. A couple nice jabs at self proclaimed “audiophiles” are included as well.