Wanted: a Graphic Designer
(could someone please cross post this on the fedora-art-list plskthx)As a return favor to Beth Lynn Eicher, a local Pittsburgh resident who organizes the Ohio Linux Fest, i've offered to pass this message along.
Wanted: A Graphic Designer
The Ohio Linux Fest team is looking for a volunteer to do some graphic design for the upcoming conference in 2009. From what i gathered, the primary job would be to maintain a consistent look across materials distributed and create any logos or other graphic design work needed. For more info, get in touch with me via the usual channels.
This is entirely volunteer work, which suits the nature of an Open Source conference. Still, the organizers are willing to provide something in return. This can include advertising either for the Fedora Project, the Art SIG, or your own private graphic design work. Attendance at this event is well in the thousands, and you could have your logo displayed in many places and your name mentioned several times. It is also a way to contribute more to Open Source upstream without having to write a line of code.
Awk in Python: Incrementing the Release tag
Yesterday, i commented on how you could get Awk like behavior with Python. The more FP oriented reader might notice that they are pretty much Arrows. At this point, you may wonder why i'm doing this in Python if Haskell would be better suited to doing Arrows. Lately, i'm wondering the same thing, and i think it's about time i start programming more in Haskell. I think it would have to be a project i don't actually expect anyone to use.Today, as a demonstration, i decided to start with something recognizable. Currently, in the Fedora Developer toolchain, we have a number of scripts and tools that do various tasks. Unfortunately, these tools are written in a style very close to shell scripts, which makes it hard to script actions on top of them. One goal of Devshell (among the many), is to have a library of common tasks that can be later scripted or built up upon. Rather than being forced to work at the shell script layer, any code that can access Python functions and objects can run these commands.
The first victim to undergo the scalpel is rpmdev-bumpspec. The following result is not 100% compatible with the original shell script, but it is part of a small library that will be able to modify a spec file in more than one way. Currently, any tag can be edited, the release tag incremented, and changelog entries inserted. It currently lets you also query any spec file for any RPM tag via python, and it handles calling out to the command line in the background. It will even zip it up into a list of dictionaries for your result. It also divides cleanly between the definition of a spec file and how to modify it.
Take me to the code!
Recreating Awk like behavior in Python
In Fedora Devshell, one feature i would like to support is turning a revision control branch of fedora specific branches into a set of Patch lines, and converting a set of patch lines into a revision control branch. I figured there would be two ways of doing this, the first parsing the entire spec file and recreating it later, the second using stream editing via the well known Unix tools such as ed, sed, and awk.The problem i had there is that while full out parsing is useful in certain conditions, you risk having the result of the parser not being exactly the same as the input. For example, if a developer stuck a Patch: line in a spec file after the BuildRequires, but the rest were before the BuildRequires, a poorly written parser might reorder the file, unnecessarily. This is the kind of headache that would make writing a full out spec file parser a several day long project that would be prone to error and annoying to test. I decided to go with the latter method.
Awk is a really cool program if you ever learn to use it effectively. The problem though is that scripting code from Python to Awk would get unwieldy. It would require creating one more layer over a DSL, domain specific language, that is just as troublesome as writing a full parser. Still, i would liked to have programmed in a set of semantics for making all kinds of changes to a spec file from the bottom up. Instead, i've recreated some of the core features from Awk in Python, as a sort of complex parser.
This pythonic awk parser lets you create all kinds of patterns and composites of patterns. It also lets you create various handlers or composites of handlers for various patterns. Finally, it lets you compose a series of patterns into a single awk "program" represented by an instance of the Awk object. Since the process method accepts an iterable and yields a generator, multiple awk programs can be chained together. This only took a few hours to do.
Click here to see awk.py in the fedora-devshell.git repository.
Fedora Test Day - Nouveau - Experience
Today i participated for the first time in a Fedora Test Day. Conveniently i had a few hours free today, so i decided to devote some time to making sure my nVidia chip will work well in the next Fedora release. The short answer, it does :)The long answer, it does, but only after i had to jump through many hoops to find this out. Being the slightly environmentally conscious person i am, i decided to attempt to spare the life of a tree or two, and pull up a USB stick for testing. I would also gain the highly beneficial advantage of being able to store bookmarks on the USB key. This way, after rebooting, i could quickly call up the next test i would need to run. As a side point, i think it might be beneficial in the future, if images generated for Test Days would have a bookmark directly to the tests needed to be run. I think it might save a bit of time for people who are testing it on their only machine.
According to the instructions on the wiki, i installed an updated version of syslinux from rawhide in order to copy the image to USB. Following that, i ran the livecd-iso-to-disc tool which ran successfully. However, when i went to reboot the machine, the USB image could not load initrd, and the process failed. Apparently, i was not the only person who had that problem. Then i tried taking a few different steps.
First i tried to see if i could install livecd-tools from rawhide. Not only did it try to pull in the kitchen sink, but it was also missing dependencies. Yum could not even complete the operation, were i to let it.
Second i tried to recompile the f11 SRPM for f10 via mock. While it completed successfully, and the resulting livecd-iso-to-disc program could complete successfully, i still could not get the LiveUSB media to boot up.
Third, i tried setting up a rawhide VM. Since i used boot.iso which is essentially a netboot install, it took the better part of an hour to install. Also, after stripping out office utilities and other nonsense, i was told that there was not enough room to install Fedora in the default 4GB of space virt-manager uses. I hod to go back and tweak the install, and for a KVM instance, it was really slow as molasses. It certainly didn't give me the warm fuzzies inside, let alone visions of a pony prancing in a field. I'm assuming that the space needed not only included installing the OS plus working space to do so, but also the space needed to download the half gigabyte of packages. I'm wondering if this counts as a bona fide bug.
Finally, when the VM was ready, i installed the livecd-tools package and copied over the iso to the VM. Then i ran the tool, went and made dinner, went off to stammtisch and came back 4 hours later, and it was still running. All the virtualization in the world is not gonna help you when you're IO bound. At this point i broke down and burnt myself a damn CD. Somewhere out there, a family of trees is crying for their daddy or mommy. Here's where there is some pretty epic fail. I'm sure it's not a bug that the tools in Fedora 10 are not adequate for setting up a LiveUSB for Fedora 11. I'm sure there are always aspects to a kernel that the previous OS can never anticipate. Looking at the sheer number of people who participated in today's test day, i may be the only one here complaining, but for the love of $deity and all that is holy, is it so hard to make it possible to put Fedora 11 on a USB stick via Fedora 10?
Well after that, the tests went really well. I gave everything a good working through and it's always a pleasure to see Fedora getting better. Given the turnout, i think that the Test Day is so much of a success that the QA team is gonna be far too busy to even look at my ideas here.
It would be nice to put a sticker here saying "I participated in a Fedora Test Day", just like we do with elections.
Cooperation for peace?
Sometimes i feel that many Americans just don't understand peace. This is a poor generalization, because many people are intelligent, well educated or well traveled, and get a fair look at the way many different cultures can live together. But sometimes it seems that the supposed Joe Public doesn't get it, out of living in the monoculture that is the US. I want to highlight something that might not get picked up by the mainstream media otherwise, even though it's a bit off topicEdinburgh Scotland Muslim Leaders Offer to Guard Synagogue
As contributers to Open Source, we all know how to contribute our resources to all sorts of projects regardless of who is involved. Sometimes it's hard to see this willingness to get along outside of our daily Open Source work. I wonder if the solution we need in the Middle East and western India, as well as in parts of Western Europe isn't just western leaders getting together in smoke filled rooms, but the lessons we know from working with Open Source.
(As a side note: "Vos iz neias" is a colloquial yiddish phrase that means "What's up". The link points to an online resource of news relevant to primarily Orthodox Jews.)
A Random Idea for Mirroring
Just a random idea to come across my brain.Problem: Frequent and even automatic live and installable ISOs are known to be good for testing and event just making sure nothing breaks. They should at minimum be part of any tinderbox style testing, and preferably mirrored for easy global access. However, ISOs are not rsyncable and require massive amounts of bandwidth to be sent over frequently to the many mirrors.
Preexisting bits: We have all the requisite packages already being sent to all the complete mirrors on a regular basis. We also have jigdo, which can compose media from a mirror or a local data store.
Solution: Create either a push command from the mirror manager, or a pull command available to the mirrors to let them know good media can be composed from the current existing up to date bits. After a mirror updates itself, it can then use an automated script to generate media using the preexisting media compose tools we have and jigdo if needed. The md5sums can be used to verify that the media composed locally is the same as the media composed by our tinderbox testing system.
Pie In The Sky: In a local infrastructure where one mirror box pulls from the central mirror, and then the local boxes mirror the local source, the local mirrors can be configured to just pull an ISO from a local source. Likewise, a compose box could be set up to do the composing separate from the mirror, which could also make the ISOs available.
Well, it's just an idea. If only there were another 8 hours to the day.
Abonneren op:
Posts (Atom)