warning: Creating default object from empty value in /var/www/drupal6.pyxos.net/drupal-6.28/modules/taxonomy/taxonomy.pages.inc on line 33.

New Site and Domain - silfreed No More

While I've owned (and will continue to own) silfreed.net for about 9 years now, I think it's time I reasses my online personality.

"silfreed" will probably be a part of me for a long time, but more and more in online and open source circles I'd like people to know who I really am, not some pseudonym.  This will make it easier to communicate with people and make connections.

So, as of today, I'm beginning my migration away from silfreed.net.  I'll probably the old domain for a long time, but I'm looking forward to the new personality I can offer from the new one.

As usual with these things, please let me know if you know anything broken.

Speaking at CPOSC in October

I'll be speaking at CPOSC this October in Harrisburg, PA.  I will being giving a talk about Mozdev's architecture and history; about how it has grown over time from an all-volunteer effort to my current employment with Mozdev and where Mozdev is going.  I plan to go over some of the architectural changes that have come about through its lifetime and how we've tackled certain challenges.

Registration at CPOSC is limited to 100 people and seats are going quickly.  The conference is being held Sunday, October 19th in Harrisburg, PA; if you're interested in coming I'd recommend signing up soon!

sshing to multiple ports at the same host without warnings

I ran into an article that addresses a long-standing problem I've had with OpenSSH's known_hosts file; it doesn't store the port for a host so you can't ssh to different ports behind a router without getting warnings about fingerprint mismatches. The article descries how to access multiple machines at the same host. Below is my workflow.

$ ssh host.example.com

Here I accept the fingerprint. This saves into my standard .ssh/known_hosts file. I logout of the server and ssh back with a new port and temporary known_hosts file.

$ ssh -o "UserKnownHostsFile kh2" host.example.com -p 2222

I get a different new fingerprint prompt and also accept it. I logout of the server then copy this fingerprint to my existing known_hosts file:

$ cat kh2 >> .ssh/known_hosts && rm kh2

I can now ssh to the same host with different ports without warnings about man-in-the-middle attacks.

$ ssh host.example.com
$ ssh host.example.com -p 2222

Version controlling my home dir

For awhile now I've noticed that things in my home dir aren't setup optimally for my work flow. I've been trying to run with SELinux enabled and I run into development problems when I try to run web applications out of my home directory. Various parts of my home directory are version controlled separately due to the software projects they're part of, but not as a whole.

What I'd like is to setup some other place for "projects" (Mozdev code and docs, other software projects, RPM building, etc) and then version control my home dir.

The problem is I'm not sure how much this helps me. Things like IM clients still are going to want to log things to ~/.somedir/log which is evil. SELinux contexts for files in /home/myprojects is still going to be wrong; I'm not going to be able to run webapps out of there, either. Moving my docs out of my home dir might be a pain due to xdg-user-dirs needing to be setup correctly to point at the document dir

I'd really love to have a lean, mean homedir that is version controlled that I can port around between boxes. Have people attempted this before? What about the above problems?

Program your Logitech Harmony remote in linux

Concordance has finally made it's way into Fedora!

I've been maintaining packages separately from Fedora for awhile now; the review has been there since October 2007! Unfortunately there were some legal concerns about the trademark over the name of the project ("harmony") originally, then when 0.20 was finally released with a new name the package required some work since the library was split off from the cli.

At any rate, if you need to program your remote from Fedora, all you need to do is:
yum install concordance

You can then login to the Logitech Harmony website and use the program to update your remote (even firmware on some models)!

Reflecting on FUDCon

This past weekend was great; I met a lot of people I've only seen in IRC or on mailing lists, hacked on MyFedora (mockup) a bunch, attended and filmed a bunch of sessions, and just tried to get some of the "Fedora vibe" and see how everyone interacts.

Todd and I arrived at the hotel late Thursday night, around 22:30. We visited the lobby for a bit to see if any Fedorites where there, but there weren't. I informed Todd about the dress code for the NCSU State Club and we promptly decided to hit Walmart. Unfortunately, they closed at 23:00 so we were SOL for the night. Back to the room to hang out on IRC for a bit and sleep.

Up early Friday to get breakfast and pants at Walmart. The State Club at NCSU was an awesome place; I should have pictures up soon, hopefully. While there were a number of sessions going on, I ended up in the Fedora Infrastructure room working on MyFedora with John (J5) Palmieri, Luke Macken, and Toshio Kuratomi. My python's not nearly as good as my PHP (mostly just lack of understanding basic structures and what classes are available), but I was able to pickup enough about the TurboGears framework they were using to get the widget configuration written and aide in the basic design of the RSS widget so that we can write new widgets in only 3 lines of code!. I was really surprised at the number of people that turned out for the hackfest, and apparently so was Fedora; at 78 people total, it was over twice what they were expecting and had planned for lunch! The staff at the State Club were great, though; the food was excellent as well.

Friday evening Todd and I went out with a large group to eat and sat down with Kevin Fenzi and his girlfriend. Afterward we all went back to the hotel bar to hang out with a bunch of other Fedorians.

Saturday was the Barcamp and was I was surprised to see how many showed up for this event. Max's opening State of Fedora address was great; it was very nice to get insight from someone that has to have a high overview of what Fedora has done and where it is going. He also announced Paul Frields taking over, and even from the little I was able to see of him, it looks like we'll be in good hands.

I managed to get to about 4 sessions out of the various blocks throughout the day. Everyone attended Michael Tiemann’s talk on “Fedora in the Enterprise" which turned out to be a great discussion on how enterprises can and need to contribute to the open source process. Next I attended Mike McGrath's talk on Fedora Infrastructure and how they're both similar and different from your regular IT shop. After lunch (provided by Fedora) I hit up the MyFedora talk lead by John, then decided to take a break and hang out in the big room while the Cobbler talk was going on. I picked up at the end of Seth Vidal's talk on Yum/CreateRepo to ask about "suggested packages". I was glad to hear that they've definitely have though of this, and while there are some technical problems (RPM would need to support it) it's more of a problem of "how do we present this to the user". I'll definitely have to keep an eye on this and see if any of the other upcoming technologies like PackageKit could help frame this any better. My last session for the day was the TurboGears talk by Luke. Out of all those sessions, I managed to film the State of Fedora address, Fedora in the Enterprise, Fedora Infrastructure, MyFedora, and the TurboGears sessions - I have some transcoding to do, it seems ;-)

Saturday night was FUDPub; first at the Flying Saucer where Fedora bought the first round (thanks!) and then onto a couple other bars; one with karaoke, one without. I mostly avoided the karaoke one and hung out with people at the other one (I can't remember either bar's names).

We arrived a bit late to Sunday's hackfest; I got to work on MyFedora again and almost managed to get user-to-widget associations saving. Well, actually, I think that part works, but there's some minor detail about restoring the widgets. Sunday wasn't nearly as productive as I would have liked, but with people running around trying to rebook cancelled flights and exhausted from such a great weekend, it's not surprising.

We ended up leaving around 14:00 and got back to my place about 20:45. Long drive, but the trip was definitely worth it to meet all the people and learn lots of new things; most of which I probably am not even aware of yet. Here's to another great year for Fedora!

FUDCon 2008 this weekend

Heading down with Todd Zullinger today to Raleigh, NC to hit up FUDCon.

I'm pretty excited about this trip; I've been a user of Red Hat products for about 9 years now, and while I've done some packaging for several years I've only recently become a Fedora contributor and have been trying very hard to improve my packaging and am finally getting into seeing what other areas I can help with.

While both Todd and I are signed up for the GPG keysigning session (I wish there were more people going to that), I think I'll probably head over to the yum hackfest to see what I can learn about RPM and yum to see what could be done to improve "suggested packages" support.

I also have a lot of interest in the sysadmining, so I might checkout the Infrastructure hackfest, and I'd also love to see a better init system, so I might head there.

Overall, there's a ton of stuff to try to take in at this short gathering, and I hope I can make the most of it.

I'll also have my new Canon HG10 camcorder and a recently-purchased Canon DM-50 shotgun microphone to bring to the event, so I'll be taking videos of the sessions. Feel free to try to grab me if you have any other ideas for things I could take videos of.

My biggest concern with the videos is going to be what quality to store them in; 5.5 hrs at 15Mbps doesn't sound like much for the whole weekend, but I don't know if we want lower quality or not (if the final result is just YouTube, it probably doesn't matter). I would appreciate any ideas people have about this.

Mercurial repo for RPM package development

I've setup a Mercurial/Hg repo for my packages.

I was going to try out git, but decided Mercurial would be my first venture into DVCSes.

The wiki at Mercurial's website was pretty helpful in getting a central web repository up and running; create a single script and point it at the repository (which is just a directory that you've run 'hg init' on), some light virtualhost config and hgrc settings, and you're pretty much done.

The bulk of the work for me has been on the backend; getting VMs setup in vmware server on my file server; moving my packages to my file server instead of my laptop; migrating the packages, specs, and sources into a packages/ directory (instead of being along side RPMS, SRPMS, and tmp/).

I still need to make sure mock works well in all my VMs and get InstantMirror on my home firewall, but things are starting to look like they're setup pretty well for my little home packaging setup.

Hopefully getting the development process easier for myself will make me more willing to do more packaging and make me realize how many packages I have to merge into Fedora.

All your boxes are upgraded to F8

I finally have all my boxes upgraded to F8 (via yum; viva la Live Upgrage SIG!). It really wasn't as bad as I anticipated, and in fact, probably much better than my anaconda-based upgrade for F7 since I had all my third-party repos enabled for the upgrade and didn't have many stragglers after it was all done.

Two of my home servers were still running FC-6 (!!). These boxes presented some problems getting upgraded since they were running some more esoteric package sets. My one server gave me fits of problems with getting unmet dependencies for packages that clearly existed. This one was an x86_64 box and was giving me a "missing dependency" for glibc.i686. /me shrugs. "yum upgrade" rather than "yum upgrade yum* rpm*" seemed to get it fixed. I did have to remove a number of packages beforehand, but that didn't bother me much.

Overall I am very impressed with the F8 release. My statements earlier about Fedora not having enough direction were apparently completely without merit, or were just the result of not having enough first-hand experience with what had been going on. Hopefully I'll be able to give a bigger hand to development for F9 and keep the great work going.

Logitech Harmony software for Linux

I found a new project that looks very promising for loading config for my Logitech Harmony 880 remote. Naturally, I built Fedora 7 i386 packages for it. I'd really like to get more codes programmed on the remote for controlling my MythTV box, and with having software for Linux so I don't have to boot to Windows all the time, it will be much less of a pain.

Some Clarifications and Concessions

My recent blog post about direction and online updates sparked some interest - and some interesting discussion. Through that discussion, I wanted to post some clarifications and concessions about the original article.

Concession: I wasn't correct about my statement that Fedora has a "lack of direction" - it's direction is exactly that its maintainers can try to do what they want to improve the distribution.
Clarification: Fedora is not an easy place to get along at - Just read fedora-devel list and you will find that most people post messages that are incredibly selfish and full of negativity - this doesn't feel like "community" to me. Even in my discussion on the #fedora-devel channel, my previous post was immediate construed as "OMG apt-get rulz FTW" fanboy love instead of the actual criticism that online updates should be supported. It still took an hour of discussion to get it understood what I was desiring and for some agreement and constructive ideas to come around
Concession: apt-get upgrade might not rock - I don't have strong experiences here and shouldn't have stated that it was great.
Clarification: Fedora should support online upgrades - "Online upgrades" means you can upgrade from release X to release Y without needing to reboot into some installer (rebooting for a new kernel or FS changes are fine). Fedora does have the YumUpgradeFaq wiki page, but the very first bullet point is Don't. This mentality needs to change in order for online upgrades to succeed.
Concession: someone needs take charge to make online updates happen - As gregdek pointed out, things don't change if someone doesn't champion it. At the same time, OSS is not only about "scratching your own itch", it's about community. Just because a user requests a feature doesn't mean we should expect the user to implement it every time.
Clarification: I'm excited about Fedora, and I'd love to help make it be better - I've been a Red Hat user for 8-9 years; and I've tried other distributions in the past. The issues I've pointed out are the ones that have been bugging me for awhile now, and the ones I'd like to see changed. I wasn't really prepared for the first reply to my blog to be "well do something about it", but they're right.

I had a good discussion with skvidal, wwoods, f13, gregdek, and others in #fedora-devel about how upgrades currently work, the progress being made towards media-less upgrades, and the problems faced by online upgrades. I hope to have the ideas and concepts laid out into a wiki page soon where everyone can contribute their ideas on how to improve things.

I'm also a little disappointed that no one made it to my last point - or perhaps they were so enraged by my first two points that they just stopped reading - about packages with optional features. I know it's been discussed a little bit on the fedora-devel list, but I have no idea what it would take or what maintenance would be like. That's probably something else I should work on writing ideas down about.

What Fedora needs is some direction - and online upgrades

Some of the biggest problems I see in Fedora these days are the following:

  1. Lack of direction

    Since Fedora is a distribution for developers by developers in order to test out new technology, the main tree ends up being a hodge-podge of whatever each individual maintainer feels like working on. Unless there is an individual or small group of individuals that desires things to be a certain way, then you have to abide by those rules (take for example, no kmods in Fedora).

    If Fedora had a better sense of what it should be doing it would polarize developers along the same path rather than everyone working for their own goals.

    For example, I haven't seen any real ground-startling features for Fedora 7 or 8. Sure, Fedora 7 had "the merge", but that mostly was for maintainers benefit (arguably) and again was driven by very few people. For Fedora 8 one of the "big features" was supposed to be a rework of the init system, but that's again been pushed off. Instead we get features like "online desktop" and "NetworkManager". While these do improve user experience, they are very small nitches that don't involve developers for all of Fedora - just tiny groups of people. Everyone else is left to do whatever they want, so long as they don't piss off one of the groups that are in control.

  2. Upgrades aren't supported - All hail Anaconda - the great upgraderinstaller!

    Fedora (and RHEL/CentOS) needs to be able to upgrade online, using a tool like yum (or smart, or apt - I don't really care which tool it is - right now it seems smart could handle it better than yum). Most of the other distros can do this without problems (Gentoo, Ubuntu, Debian).

  3. No optional featuresets for packages - You have packages that either include the feature or do not.

I'm not sure how to fix the problems, but I do know that Fedora needs to make the following happen:

  1. Make upgrades work - Even with Anaconda it wasn't possible to upgrade from FC-6 to F-7 without broken packages - an online upgrade would have arguable gone better, but it "wasn't supported". "yum upgrade" should work like "apt-get upgrade" between versions.

    With the rolling release like we've been having the past couple versions, it's very easy for someone with an up-to-date release have newer packages than are available with the release of the next version.

    Case in point: FC-6 had KDE 3.5.7, but F-7 shipped with KDE 3.5.6. Immediately after release 3.5.7 was available as an update for F-7, but an upgrade from FC-6 to F-7 wasn't supported due to libata changes (hda->sda). This stuff needs worked out so that you can update from one version to the next easily.

  2. Optional package features - Offer packages that can somehow enable/disable features based on what other packages are installed. Be able to install package foo that has either mysql or postgresql support, or both - even if they're compile flags. That is to say, if I have mysql currently installed, and I install foo, I get foo w/ mysql. Or if I try to install foo without mysql or postgresql, provide some way of saying that they can be supported if you install them.

Both of these problems are hard. They require coordination across all of the package maintainers. Perhaps they're features that could polarize the maintainers to a common goal and make Fedora better.

FC6 Xen now working

For awhile now my file server has been running Fedora Core 6. I never have a good time to upgrade it to Fedora 7 because I'm always using it.

In the beginning I had envisioned running multiple VMs on it for compiling packages; it's an x86_64 box, so I would gain an arch (currently only i386) and would be to compile both the Intel architectures on one box. I'd free up space on my laptop since I wouldn't have 4 VMs sitting on it (that rarely work with VMWare anyway).

The problem has been that he Xen kernels have locked up my file server for awhile. I'm not sure when it started, but things would just hang when udev was starting.

The recent kernel-xen-2.6.20-1.3001 package seems to have fixed that though. So I setup a bunch of VMs one day and got them updated.

Well, all but a FC6 VM. For some reason I constantly have problems running that as a domU.

Unfortunately I then realized that my ivtv drivers weren't loading because there weren't any packages available. My file server also serves as my MythTV backend, so there was a day there were I missed some recordings. Axel's moving this week, so kernel packages have been stalled while he gets things situated. So, I'm back to a regular 2.6.22 kernel.

One thing I did notice is that the tickless support in 2.6.22 definitely helps on this server - it keeps things much cooler than the 2.6.20 kernel does.

Oh, and the VMs I'm running (or want to run) include:
Fedora Core 6 x86_64: not working
Fedora 7 x86_64: working
CentOS3.9 x86_64: wouldn't install
CentOS4.5 x86_64: working
CentOS5.0 x86_64: working

So I still need to get FC6 and CentOS3 installed, but things are going pretty well, I think. After the ivtv drivers are available I should be back to trying to get things going.

Packaging for Fedora

According to bug 241403 my package for QGIS has been accepted into Fedora, and pending getting a sponsor I should be getting commit access soon! I've also submitted bug 246460 to get qtpfsgui into Fedora as well.

If this works out well, I'll probably begin working on getting EPEL commit access as well. I know I have several packages for RHEL available, but I'm not sure how well they'll mesh with EPEL's guidelines.