Happy Kubuntu Release Day!

KubuntuWell, it’s been a long time coming, and now Kubuntu 7.04 Feisty Fawn is released. You can read the release notes and official announcement here. Kubuntu is an excellent project to work on, and JR runs it damned well.

On December 9th of 2006 I went into #kubuntu-devel on freenode and told them I was bored and asked them to give me something to do. Since then I’ve submitted several patches–many of which are in feisty fawn–and had more fun than you can shake a stick at. All of you aspiring hackers and UI designers and artists, I encourage you strongly to consider contributing to this project. It’s a blast, and it has results.

For those of you who intend to go to kubuntu.org or ubuntu.org to download the latest version, you will notice that things are running a bit slowly. Please be patient as quite a few people from around the world have also eagerly anticipated this release, and are very excited about it as well.

More Doggie Photos!

Okay, so Penguin has been growing on me and my wife for some time. She’s been doing well in training, and she’s been learning how to behave in the house. She gets to spend the night out of her crate, and we’re beginning to trust her more around the house. We’re very happy.

I just wanted to share that we do have more doggie photos on the Penguin page of this blog. Or if you’re lazy–like me–you can just click here.

DRM-Fascists Just Don’t Learn…

Wow. So, Sony, you think that DRM stops people from sharing content, eh? Is that so? I search the torrents (I just searched, didn’t download, so you can heel your blood-thirsty attorneys) for two of the films mentioned in this article (Casino Royal and Rocky Balboa). Casino Royal came up with more than 62 active downloads from various–undoubtedly anonymous untrackable–sources, and Rocky Balboa came up with more than 277 various–also undoubtedly anonymous untrackable–sources.

Why would I mention this? Because DRM isn’t working. You can still share this content without any restriction. Those who want to download the content are going to do so regardless of restriction. Hell, a third of those download sources are probably in countries where they thumb their noses at our overbearing copyright laws. So why then, Sony, do you insist on making the lives of ordinary folks harder because of your paranoia that is obviously not paying off? DRM is a cat and mouse game, and until you can get the consumer market on board with DRM–not gonna happen–and convince the to buy new devices every six months, DRM will always be countered rather quickly. All you’re doing is screwing things up for the rest of us.

For those of you who didn’t read the article before, click here to read it.

UDS Sevilla Coming Soon! manchicken’s Travels!

So I’m looking forward to the next few weeks before UDS. You see, with all the travelling for work (I just finished three of four consecutive weeks travelling), I’m looking forward to the peace and quiet before I fly from my peaceful little house in a town in a corn-field to Sevilla, Spain. UDS will be fun, but man I’m tired of travel.

Also, don’t forget, Ubuntu-Illinois will be meeting at my place on the 19th! Here’s a link: (click here)

Here’s the UDS-Sevilla wiki page, too: (click here)

Excuse Me Sir, But…

Okay, so have any of you heard “excuse me sir, but…” lately? I heard it three times today and none of them had done anything prior to excusing themselves that would warrant an excuse.

When did it become okay to apologize before doing something to hurt or inconvenience someone unless it was requested or unnecessary? We’re not talking about a nurse saying “sorry, but you’ll feel a little pin-prick,” we’re talking about “excuse me sir, but can I waste 15 minutes of your life while I ramble on about an expensive dish network system that will lock you into a 12-month contract with huge penalties?”

Anyway, I just thought I’d complain about this tonight. Dish Network, shut up and leave me alone. The rest of you, thanks for reading my rant.

I Call an Ubuntu Illinois LoCo Team Meeting

Howdy folks! So the Ubuntu-Chicago folks have been active for a while, and they’re a great team of folks. But what about the folks in central and southern Illinois? How sad.

So, it is my delight to call this first meeting of the Ubuntu Illinois LoCo team. On Saturday the 19th I invite folks to join me at my house in Champaign, IL–manchicken’s house of hack–for pizza, beer, and Ubuntu from 12:00 until 17:00.

During this meeting I would like to pass on information from the Ubuntu Developers’ Summit, and I would like to discuss how we could coordinate some local development efforts.

If you will be attending, please RSVP (ubuntu-illinois-rsvp *AT* notsosoft *DOT* net) so that I know how much pizza to pick up. If you have special dietary needs let me know and I can see if I can accommodate you within reason (sorry, but I can’t afford the caviar and champagne diet). As soon as you RSVP I will reply with the address and contact information.

This event is open to all Ubuntu users and developers. I’m a big Kubuntu guy, it’d be nice if a GNOME Ubuntu person and an Xubuntu person wanted to come and help lead some development discussions for this as well. If any other UDS attendees are interested in showing up let me know and I’d love to have you join me in presenting some of the ideas.

Anyway, my rambling aside, I hope to see you all at manchicken’s house of hack on Saturday the 19th of May at noon.

Also, if you join irc.ubuntu.com and join #ubuntu-illinois (which forwards to #ubuntu-chicago) we can discuss the possibility of a hackathon.  If you’d be interested in such a thing make sure you mention that in your RSVP.

Why Perl is Ideal for All of Your Automated Testing (2 of 4)

In this installment I will explain why Perl is the ideal language to automate your tests for any application at the unit level.

There’s been a lot of difference of opinion on what unit testing is supposed to be. I think this is a good discussion, but I don’t think it goes anywhere near addressing this point. Therefore, I shall define what unit testing is in my words, and that is the definition that we’ll use for this explanation. Unit testing, in my view, is testing at the simplest level–or unit–of an application code. This will be at the function level, at the class/object level, at the instruction-set level, etc. The unit test is a test that cannot be made any more atomic without being redundant on a dependency’s own testing.

In this scenario…

int add_two(int a, int b) {
  fprintf(stdout,"Adding %d and %dn",a,b);
  return (a + b);
}

int add_three(int a, int b, int c) {
  return add_two(add_two(a,b),c);
}

with unit-level testing you would create a unit test for both add_two() and add_three() individually, and not for fprintf(). (yeah, I know that is making it very obvious, but some folks may need the verbosity)

Okay, so now that we understand unit testing, the question remains… why Perl? What an excellent question! So many people know how Perl is used for web applications and also for various other programs and scripts, but one thing you may not have known is that Perl also has an outstanding set of modules that make up an awesome testing framework. Check this out:

Perl Testing Reference Card

This is a reference card put out by the Perl QA folks, and it’s been passed around a lot. I like it. Clearly there has been a lot of emphasis put on automated testing in Perl (one of the reasons why it’ll work).

Perl is portable. There is a stable and usable Perl for every operating system I’ve used, and most that I’ve heard of, and most Perl scripts seem to be mostly portable. The only time one seems to be non-portable is when the use of an external library (via XS or other means) is found.

Perl can make use of other non-Perl languages. Anybody here program anything in JavaScript? Well, there’s Test::JavaScript for your testing needs. There’s even JavaScript modules if you want to directly interact with JavaScript through SpiderMonkey. What about Java? Inline::Java will take care of those folks. Python? There are Python libraries. C? Inline::C. Ruby? Inline::Ruby. Anything win32 could make use of the Win32::API module.

Perl focuses a lot of time and energy on testing. I think we could all make use of this effort. I also think most of us (all of us if we’re being honest with ourselves) could agree that we all could use more automated tests.

Will you be able to shoot holes in my argument? Sure. Is the word “ideal” for all of those situations a bit of a stretch? You caught me. But if this gets you thinking about automated testing, and gets you thinking about Perl, then my job here is done. See you tomorrow folks, when we’ll talk about integration and functional testing.

Why Perl is Ideal for All of Your Automated Testing (1 of 4)

Okay, so I know some jive-turkeys have been talking some serious smack about Perl, and you may even be one of them (if so, you’re a jive-turkey). Here I will attempt to show you how Perl could meet your needs in testing ANY application, in ANY language, in ANY environment, regardless whether or not your program is written for command-line interaction, GUI interaction, or web interaction. That’s quite a claim, no? Well I can totally prove it!

This will be a four-part series on manchicken’s automated testing theory, using Perl. This first installment defines what automated testing should and should not be. Next we will break down into three different posts on how Perl is ideal for unit-level testing, then integration-level testing, finishing up with user-interface-level testing. As always, feel free to link, comment, complain, etc. Try to stay on topic though. Thanks.


What is automated testing?Quick rant on automated testing

Okay, so a lot of you know that I like automated testing. I just wanted to get a few things across before I start making points beyond this. Here are my stances on automated testing:

  • Automated testing should be done before code is written, and updated during the whole life of the code.
  • Automated testing should run quickly, and be safe to run on both development and production environments.
  • Automated testing should not require human interaction beyond the preparation for a run and then firing off test run… until it is done of course.
  • Automated testing does not eliminate quality assurance personnel or the job they do. It merely changes them to finding new problems and designing tests rather than spending oodles of time regression-testing.
  • Automated testing should be controlled experiments. This means it should be done the same way every time. No random data patterns, no assumptions, no pulling from external databases. Fixtures help here.
  • Automated testing should be at various levels: code-unit (object or function level), library functionality integration level, and user-interface level.
  • Automated testing should make the developer’s life easier as well as the QA engineer’s life.
  • When reading automated tests, the test plan should be obvious.
  • In automated testing, hard-coding data is not a bad thing.

ArtistServer.com Gets Served!

Well boys and girls, you’re used to me complaining about people and companies and things that I think are bogus or wrong etc. but hold onto your seats, because I’m about to say something nice and neat about someone!

ArtistServer.com, you are being called out! How dare you sit there in your little website and offer me the coolest music by independent artists with licensing terms that I like? What audacity you have by allowing me to download as many of them as I want! I can’t believe the how beautiful of a thing this is.

I have been a quiet admirer of artistserver.com for some time, but now I’m just so excited about it that I just can’t keep my peace any longer.

ArtistServer.com provides you with music in MP3 format, and allows you to search by keyword, genre, and even license type. There’s a lot of CC-licensed music out there that is simply outstanding. All of it is DRM-free, and there’s more than anybody could possibly keep track of. New stuff is coming out all the time!

In addition to more content, I would like to see flac or ogg files available, and I’d also like to see an option to hide all restrictively copyrighted music.

Please, everybody, join me in patting ArtistServer.com on the back for helping to bring us to a new age in music distribution.