Going to Fosdem

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

Looking at the schedule, i think it's going to be hard to decide what i want to see and do. I am forgoing the planned schedule everyone seems to prefer.

Is anyone still looking for a roomate at Fosdem?

More bad documentation

I said i would get around to finishing up the documentation for Fedora Devshell today. This was a lie, apparently it takes a lot of time and hardwork to write documentation. Now I have other things to do too. The result is some documentation that should explain alot of the basics. In the future, i need to figure out a way to insert alot of this code into the Python code itself, and get a nice pretty document, perhaps on the wiki itself. You can find the documentation here:

API and Internals

Writing Documentation is hard

In order to make fedora-devshell useful to more people than myself, i decided to get around to writing the documentation. I don't often 'get around' to doing things, but hopefully for those of you who were wondering what the buzz was about, this should clear things up. The following documentation is very tentative, for a number of reasons, mostly because i haven't even made a 0.1 test release available to anyone, just raw source code. There will be changes though, and hopefully, you will all get to see what the workflow will look like through this preview. Tonight i've managed to cobble together a preliminary header page, with some features, and a walk-through on building a Haskell package.

About Fedora Devshell
Getting Started With Fedora Devshell

Hopefully, tomorrow i'll feel motivated enough to finish up the documentation, and give it a final home on the wiki.

Keysigning verification

A FUDCon post should be forthcoming as soon as i've caught up with my regularly scheduled reality. In the meantime, i should have sent everyone key signings from the signing party we had at FUDCon. This time around, i gave caff a test. Could the people who keys i signed and either got a signature or are expecting one but have not yet received it please send me an email to verify this?

Thanks in advance.

#fudconf11 is for newbs

Here i am after the first day of FudCon 11 (U.S. Version). So far, i had five things on my agenda to do, and i got absolutely nothing done. That's not to say i didn't do anything. I got plenty of chances to pimp out fedora-devshell to many people. More importantly, Benjamin Kreuter and i got started on documenting it, and found a few fundamental problems with our data model. Come to the BarCamp tomorrow, and find out more about fedora-devshell.

Afterwords, we went to the Cambridge Beer Company, for some very good barley-wine. It's barely wine, but it packs the same punch.

Yukon Ho!

Right now i'm headed for Boston which is marginally warmer than the Yukon. It's not so bad, because Pittsburgh's marginally warmer than the Northwest Territories, so i've come prepared.

I have to say that i'm not a morning person at all. I can't say i've never been awake at 7AM, but that's because i was awake at 3AM-7AM and usually have plans on staying awake for just one more hour each hour. Rather, i've never had to listen to that screeching nerve racking sound my alarm clock makes at 7AM in a very long time. It's not fair. I haven't been up before the sun in a so long that it is just unnatural.

On that note, some people just have no sense of humour that early in the morning either. I told my teenage sister that i hate getting up before the sunrise. No one likes an overachiever, and it just seems wrong to anger the $deity by overachieving in such a fundamental way. Well, she went off in a huff about how she always tries to put the extra effort in, and how i shouldn't be so closed minded. Like i said, some people just don't have a sense of humour.

On another note, Pittsburgh's "International" Airport has yet to fail me. Well, except for that International part, it's no more international than a frankfurter comes from Germany. Yet once again though, i've managed to make it through the security curtain in under 10 minutes, with loads of technology, and even a regular sized tube of toothpaste. TSA personnel here are always polite and friendly, and do their best to make sure people are relaxed despite the degrading experiences some security guys in DC thing we should undergo. There are always a few perks to living in Pittsburgh, though it seems to have alot to do with you leaving Pittsburgh.

Lazyness and Cabal Packages

Often times, when i'm working on random Haskell things, i find i'm doing the same actions over and over again. I've also found i've done the same groups of commands repeatedly, and alot of work could be automated. Last winter, Luke Macken and i had a bit of a chat about some ways we could work out a bit of a solution to the problem. He already had some code put together to make a quick developer shell for doing common Fedora related tasks.

My goal was to create something that can handle a workflow to automate most of the steps in making RPMs for basic Cabal packages. Cabal is the package manager for Haskell, similar to Python Eggs, or Ruby Gems. Since it's so well developed, 95% of the steps required to make an RPM can be automated to a few brief statements. Yesterday, i spent the better part of the day hacking together a module in fedora-devshell that can be used to download Cabal packages from Hackage, the Haskell source package repository, compile them, and install them either to root or to home. The user can also do it step by step, and intervene where necessary.

If you would like to follow along, you can get the source below. (GPL v2+)

http://fedorapeople.org/gitweb?p=ynemoy/public_git/fedora-devshell.git;a=summary

In this example, i'm assuming that all the source packages will go in ~/haskell, where i normally work. fedora-devshell does a bunch of things half baked, because i'm still working on them. The only modules and concepts you will need though are Package and Cabal. Package refers to any generic Linux/Unix package, and cabal refers specifically to a Cabal package. Essentially, ~/haskell will have a bunch of Packages, and each Package will have one or more Cabal package, although only one active package. And that's it for theoretical stuff. Just remember, a Package can have a different name than the Cabal package will.

To take a random tarball, and make a regular Package out of it, run:
~/haskell $ ports.py cabal xmonad-test copy_in /some/location/xmonad.darcs.tar.bz2

This will create a directory ~/haskell/xmonad-test, which will have a tarball, and two expanded trees of the tarball, one is the modifiable one, and one is a copy of the original. In the future, fedora-devshell will make it easy to modify the source, compile and test it, and then make diff files to use in RPMs or to send upstream.

to compile the Cabal package, you need the following steps:
~/haskell $ ports.py cabal xmonad-test configure
~/haskell $ ports.py cabal xmonad-test build
~/haskell $ ports.py cabal xmonad-test install

This will install it to $HOME.

You can also use the shortcut
~/haskell $ ports.py cabal xmonad-test install_source

If you want to do it all in one, with a tarball, you can just do this
~/haskell $ ports.py cabal xmonad-test install_sourceball /some/location/xmonad.darcs.tar.bz2

Let's say you want to get some version from Hackage
~/haskell $ ports.py cabal xmonad-test get_from_hackage xmonad 0.8

Or, if you want to download the latest
~/haskell $ ports.py cabal xmonad-test get_latest xmonad

You could install from hackage:
~/haskell $ ports.py cabal xmonad-test install_from_hackage xmonad 0.8

Or even just
~/haskell $ ports.py cabal xmonad-test install_latest xmonad

Essentially, it's yet another package installer for Cabal. If you're a regular haskell wondering why you need this, then it's probably not for you, because there are other tools that can do this better. If you're a packager though, it's a sneak preview of one of many tools that will be integrated together in fedora-devshell that will make your life alot easier.