A Django site.
February 28, 2008

Clint Savage
herlo
Sexy Sexy Penguins » Tech
» POW: Gobby, the little engine that could! (collaborate)

Its been a very long time since I’ve done the Product of the Week, so I am going to change the name to Product of Whenever. This suits me better.

In July of 2001, I was introduced to a little editing tool many of us now know fondly, the wiki. I was travelling to New Zealand looking for work. During my month’s stay, the fellow I traveled with showed me his wiki-wiki. He explained how collaboration could work and the simplicity of the system made it even great for a one person quick web page. Immediately, I was hooked. When I returned from New Zealand and enrolled in school, my mind quickly went back to this funky wiki-editor thing I’d seen. Being a geek even back then, I promptly installed one.

Fast-forward almost 7 years. We’ve seen the wiki evolve from a little app that could be used to make an entire website of information so grand that even the largest collectors of physical data can’t compete. We’ve seen tools like DocuWiki - the documentation wiki, MediaWiki - which needs no introduction and Tomboy - the little desktop wiki. Many other wiki’s emerged to help people collaborate all around the world. How great a time it was…

This article isn’t about wiki’s, rather it is about collaboration. This article is about a different type of collaboration, one that’s more real-time than a wiki can be. In some ways its more limiting and in others, much less. The feature I’m referring to is real-time collaboration. And the tool that enables this, gobby, and its closely related cousins, sobby and obby.

INTRODUCING GOBBY

The Gobby Editor

Gobby is a collaborative text editor, with a bunch of cool features. While gobby is still young and not quite feature-full, its quite amazing what it can do out of the box. The collaboration abilities of gobby come straight out of the box. One can choose to create a session on the local network, or create a server version, with sobby, where everyone can connect to a centralized server to collaborate. I’d like to also point out this application can also run in Windows according to the authors’ website, though I’ve heard rumors that it doesn’t work as I’ve not personally tried.

To get started with gobby, its easily installed:

# yum install gobby
.. snip ...

Once its installed, gobby will easily load from Applications -> Internet -> Gobby Collaborative Editor. Up pops the window we showed you above, albeit a little more bare. The toolbar is the most important piece here.

Gobby is disconnected at initial start.  Click create or join a session

There are two distinct features here, plus the ability of a regular text editor. On the left, are the connection buttons, one can join or create a session. On the right hand side, are user and document lists, and a chat button. The left hand side controls how to connect, the right controls once you are connected. Of course, the middle does have tools of a normal editor.

Clicking the Create session button provides this dialog, allowing for a local session to be created and maintained.

gobby-create.png

This session can be just one person, but is definitely better with at least two. Notice that you’ll need to pick a colour. This feature is what makes it easy to tell who’s edited what parts of every document in gobby.

The other option is to join a session. Joining a session also lists any local sessions currently available.

gobby-join.png

Once the session is created and/or joined, its just a matter of using gobby like an editor. The fun part about gobby though, is when the collaboration begins. When working on a document, others can work on it as well, at the same time. Which can be confusing, and troublesome the first time you play with this tool. Give it some time and you’ll be hooked.

In addition to creating an obby session with the gobby application, its also possible to create a persistent connection with the sobby server. Unfortunately, sobby doesn’t have features that let it run as a SYSV service, but it is possible to get a server up and running quite easily even still. The organization I run, UTOSF, has one currently up and running at gobby.utos.org. If you want to join up, please let me know and we’ll get you connected.

Take the time to get to know this awesome collaboration tool, and start working with your friends who code, or document or even just for simple brainstorming sessions.  The possibilities are endless.

Cheers,

Herlo

November 28, 2007

Clint Savage
herlo
Sexy Sexy Penguins » Tech
» POW: Agave

An interesting tool I came across in the last week or so is this week’s Program of the Week: Agave, from the GNOME Community. Recently, we’ve been working on a new logo for the Utah Open Source Foundation, and needed to come up with some simple color schemes that would work well with our logo. In doing so, I came across Agave and started playing with possible combinations of colors we could use.

This tutorial will cover some of the simple, but effective features Agave provides to help provide a good contrast in designing logos, websites and more.

To install Agave, I simply did the following:

# yum -y install agave
.. snip ..
Installed: agave.i386 0:0.4.2-5.fc8
Dependency Installed: gconfmm26.i386 0:2.20.0-1.fc8
Complete!

Once Agave is installed, it is immediately available from the main Applications -> Graphics menu in GNOME. If you use a different desktop, its possible to type agave at the command line. Agave starts up similar to this screenshot:

agave-start.png

As is shown above, its simple to see that the three colors here would go nicely together, maybe a bit bright for a website, but not too bad for a logo maybe. In our logo, however, we didn’t want such bright colors, plus we wanted to base it on a color that already existed in our already established brand logo seen below:

utos_bc.gif

This logo is well known in our community, and thus we wanted to make sure to keep the look and feel as our org morphs into its true form. Out game GIMP and with the color picker tool, I obtained the bluish color needed for contrast. Agave only needs the value to give several different options through its several available views. The first view shown is the triads view, in other words, a scheme with three colors that fit well together:

agave4.png yields the triad agave3.png

But the real power of Agave is in this section of the application:

agave-power.png

The color picker provides for easy to choose colors on the left.

On the right hand side, is the color scheme chooser which allows 6 different choices; Complements, Split-Complements, Triads (3 colors), Tetrads (4 colors), Analagous and Monochromatic. In addition, on the toolbar near the top, is another feature that allows random color schemes to be chosen.

When we’ve finished our site and logo, I’ll update this article with the results.

Try out Agave today and maybe even paint your house using its recommendations!

Cheers,

Herlo

November 21, 2007

Clint Savage
herlo
Sexy Sexy Penguins » Tech
» POW: apg, Automated Password Generator

This week’s program may seem like a bit of a cop out, but it really isn’t. I’ve regularly found myself in need of some quick passwords to hand out to users that are both semi-secure and easy to remember. With apg, this can become a reality.

First, install apg:

# yum install apg
.. snip ..
Install      1 Package(s)
.. snip ..
Total download size: 101 k
Is this ok [y/N]: y
.. snip ..
Installed: apg.i386 0:2.3.0b-5.fc8
Complete!

apg does provide several switches which help to provide an easy way to distribute passwords. Recently, I generated random, yet pronounceable passwords for about 30 users of an application I was using. it was quite nice to let the users login and feel safe with my choices of passwords.

To start with apg is quite easy to generate a set of passwords:

$ apg
NatnawmIx
GhisImAv*
Bahiwaihet
adMuhevep
Ombachat
cier]bipt

These passwords are the default set from apg, providing six pronounceable, 8-10 digit, In my opinion, its better to lose a bit of security to make a password easy to remember, than to have a user have to write the password down, more or less defeating the purpose of the password in the first place.

Because of my opinion, (and no, I’m not a security expert by any means, just using common sense), its probably a good idea to have a look at some of the switches provided by apg:

-a : 0 (default) will make the passwords semi-pronounceable, 1 on the other hand, will be pseudo-random

-n : tell apg how many passwords to display

-m/-x : the minimum/maximum length of the generated passwords

Here’s an example of these options in use:

$ apg -a 1 -n 2 -m 7 -x 10

apg has more to give us though. We can use some standard Linux password checking utilities to help us:

-r : checks the generated passwords against a particular dictionary file.  /usr/share/dict/words, for example.

Adding this to our previous example (and removing the -a option) will verify the password doesn’t have any dictionary words:

$ apg -r /usr/share/dict/words -n 2 -m 7 -x 10

The last component is -M mode, which can request/require that a password has a particular set of attributes. Its a bit more complex than the others above. The mode consists of eight letters, S, N, C and L, in both upper and lower case.

S :  must use special symbol set for every generated password.
s :  should use special symbol set for password generation.

N : must use numeral symbol set for every generated password.
n : should use numeral symbol set for password generation.

C : must use capital symbol set for every generated password.
c : should use capital symbol set for password generation.

L : must use small letters symbol set for every generated password (always present if pronounceable  password generation algorithm is used).
l  : should use small letters symbol set for password generation.

As you might be able to tell, the list above is almost directly from the man page for apg. This is on purpose as it is very well explained (and recommended to read each and every man page for any tool used). Many a good trick has come directly from the man pages.

Let’s see these options in use:

$ apg -n 2 -m 7 -x 10 -M SCnL
Hej=Nio
nefMit/

What is noted right away during several iterations of these modes is the fact that rarely, if ever, is a number included. It seems the lowercase modes are not strong suggestions except in the case of “lower case letters”. However, using the uppercase mode values works every time as expected.

apg is a simple, yet effective tool for generating passwords. My hope is that you decide to use more secure passwords in the future with tools like apg.

Cheers,

Herlo

November 14, 2007

Clint Savage
herlo
Sexy Sexy Penguins » Tech
» POW: Bluetooth Improvements in Fedora 8

The POW is going to be the improvements made in the Bluetooth functionality in Fedora 8. I’m actually quite impressed with it as its been a bit of a challenge to keep my little mouse connected in the past.

Fedora 8 provides a new extended technology with its bluez-gnome package. In fact, the simplicity of it is that I only have to be able to click and approve a new device.

When I first turn on my bluetooth mouse and start to move it around, it doesn’t work, but up in the top right hand corner of my GNOME desktop is the bluetooth manager. It has a message for me:

bluetooth-authorize.png

The message indicates a click to authorize the device, namely the bluetooth mouse. (One note here, I was originally unable to use my touchpad, so I had to resort to other tactics [not pretty] to enable my mouse. Probably ought to have some other options available instead of clicking.)

Clicking on the notification window above brings me to an authorization window.

bluetooth3.png

At this point, authorization is quite simple. Click yes for a one time authorization of the mouse (Note the Bluetooth Travel Mouse indicated in the description), and to authorize it more permanently, choose Always Grant Access.

That’s it. My Bluetooth mouse is now enabled and working. I’d say this is much friendlier than what I used to have to do, including running hidd –connect <bluetooth id> after pressing the little connect button on the bottom of the mouse. This is sure nice now!

Its possible, that at some point, disconnecting the device might be necessary. To do this, right-click on the nice little Bluetooth logo at the top right of your screen.

bluetooth5.png

Choose Preferences. Up pops the Bluetooth Preferences window. From this window, three tabs are available. In the first (and also selected) tab, there is a section at the bottom of the window which lists the devices that are currently bonded and/or trusted. Choose the device from the list and then the appropriate action. The choices are Disconnect, Trust or Delete.

bluetooth4.png

In addition to just configuring your devices, it appears it might be possible to do things like Bluetooth DUN with a Treo, or enable data synchronization between laptops. One thing I’ve always wanted to try is to get my bluetooth headset working so I could do Skype or Asterisk phone calls through my headset, to my computer and out through the service.

Cheers,

Herlo

November 7, 2007

Clint Savage
herlo
Sexy Sexy Penguins » Tech
» POW: Codec Buddy

This week’s Program of the Week is a bit ahead of its release. The package is Codec Buddy, and is currently slated for release in Fedora 8 tomorrow.

Codec Buddy, with a little help from the Fedora and Fluendo development teams has grown into something that could be great. I see Codec Buddy really helping those who want to use and play non-free media sources from within Fedora. If you are currently running rawhide, you probably already know about this, but very soon, many other people will start to understand how Codec Buddy works as well.

One of the goals of the Fedora Project is to be free of any proprietary software. Though I don’t see that many people using Fedora without at least a few proprietary components, media codecs, drivers, etc. Maybe one day…we can always hope.

To that end, I am a big media buff. I regularly watch TV shows and movies that use proprietary codecs. As an example, most people don’t realize that using the reverse engineered DVD encoding provided by DVD Jon could be considered illegal. Fedora doesn’t want to be encumbered by these risks, and truthfully, I don’t blame them one bit. Considering that my backlog of mp3s and DVD rips will require an additional bit of software not normally included with Fedora, I think this is a great software solution. Give the user what they want without compromising the integrity of the project.

Codec Buddy is provided to help the average Joe understand the world of media formats. Its job was originally to provide a short description of why Fedora doesn’t include this in its distribution. Then point to where one might find more information about these formats. Codec Buddy has been altered a little, but attempts to accomplish the same thing using the Fluendo website.

Fluendo is the company that employs many of the individuals that work on the gstreamer project. Its quite a noble project, providing media codecs (installable formats) for many of the audio and video we like to use every day. Its great to have open source companies like Fluendo helping open source grow.

Codec Buddy works by launching a small application when someone tries to access a media codec not currently on the system. For instance, I’ve attempted to play a show I’ve downloaded.

Launch Totem

Opening Totem

Open the file

Opening a media file

Start the video

Start the video

As the video attempts to play, a prompt appears, indicating the media isn’t supported. Codec buddy then provides a few options to enable playback for this particular media format.

Choose your codec wisely, young padawan

The available items are MP3 Audio Decoder, MPEG Playback Bundle and MPEG4 Part 2 Video Decoder. By default only the MP3 Audio Decoder, which is also the only codec that will be installed without payment, is checked. The other two codecs are available for a small fee, which helps Fluendo to provide these codecs.

Clicking the “Get Selected” button will immediately start the download of the MP3 Audio Decoder (if it was selected).

Downloading the MP3 Codec

A license agreement then appears, make sure to read this and if you agree, click Accept.

Agreement

Once the agreement is complete, its time to purchase the remaining codecs. Choose Start Web Browser and in a few moments, the Fluendo website should appear. This should allow you to purchase the remaining codecs needed for the video I want to watch.

Open Web Browser

The Fluendo website has a good list of available codecs beyond the choices available in Codec Buddy.

Fluendo website

The purchase will seem similar to many others on the web, add things to the cart, and pay.

Fluendo is a good start. I’m sure there will be many people interested in purchasing these codecs here. However, I believe however, that the biggest problem is that most people can get these codecs for free on Windows, Mac and even other Linux distributions. So far, the thing I feel is missing here is the explanation for why charge for these codecs and who benefits.

Fluendo is a great resource and provides some kick-ass codecs. If there is no explanation as to why we need to pay for something that one can get for free. Potential customers who don’t understand the reasoning behind it might go elsewhere, or worse even, choose another distro or operating system.

I love fedora for the freedom it gives me to choose my path. I love fedora for its focus on making sure things are free and open, both monetarily and in liberty. I love fedora for trying things like Codec Buddy, I want it to succeed. I hope that with a few suggestions, both fedora and Fluendo can make Codec Buddy the informational tool that it was originally intended.

Cheers,

Herlo

October 24, 2007

Clint Savage
herlo
Sexy Sexy Penguins » Tech
» POW: bash-completion - Bash Auto Completion in Fedora using yum (and more)

In an attempt to consistently blog, I am starting a new series here on fedora-tutorials.com. Program of the Week (POW). Hopefully, this will excite and inform all of us about the cool programs available in Fedora. So see you next Wednesday for another program.

Over the past year or so, I’ve been on the hunt for several things that I find in other Linux distros that I cannot find in Fedora. Its not very common, but on occasion I do run into something that’s not there on Fedora. One of them was the ability to automagically complete many of the command lines for many things.

One of them, and probably one of the biggest, was the fact that yum did not have tab completion for available packages. Today is my lucky day! While chatting and helping my students with their labs today, one of them mentioned to me that he could tab complete a particular command on his box. I of course inquired, because it interested me, as to the package name. It turns out my bash tab completion dreams were just about to come true! He told me about this amazing package that would let me use tab completions for things like the service command, man and of course, yum.

I was blown away! So immediately after this discussion, I started searching for this elusive package I’ve never heard of before. Sure enough, as he informed me, bash-completion does exist and does some amazing things. After hunting around a little on google, here’s some of the stuff I found. I’ll also include the links at the bottom of this post.

as root try this: (note [Tab] means you should hit the tab key)

# service ht[Tab]

What you’ll notice is that one of three things happen. If you’ve got the bash-completion package installed already because you’re ahead of the game, it should auto-complete for you. Without bash-completion, this doesn’t happen, but its also possible that since bash already has some completion in place, it might auto complete a directory for you, but that’s definitely not what you want.

If you’ve not already installed bash-completion, I’d suggest you do it now. On Fedora 7, run the following command:

# yum install -y bash-completion
..snip..
Installed: bash-completion.noarch 0:20060301-3.fc7
Complete!

Now that bash-completion is installed, we need to invoke the tools. Normally, this is not needed, and a reboot/re-login will take care of this as well, but since I wanted to use this right away, I did the following as an unprivileged user:

$ source /etc/bash_completion

This doesn’t seem to do much, but its actually quite powerful. The source (or .) will load the environment variables from the /etc/bash_completion script into my current environment. Luckily for us, when we now log into root, /etc/bashrc will accomplish this for us without any intervention. To test that it worked, try running the following command as the same unprivileged user:

$ unalias[Tab]
.=     ll=     ls=     vi=     which=

Note that when I pressed twice, a list of the currently available aliases appeared. Nice ey? Let’s complete this:

$ unalias w[Tab]

Now produces:

$ unalias which

And completes the string as expected. Now we’re getting somewhere! But why did I really want to explain this?

Oh yeah! yum

With bash-completion, yum can now provide us with a list of available packages, similar to the auto completion capability in apt-get or aptitude from Ubuntu or Debian. Say for instance you want to see all of the packages available for install that match what you’re looking for, but don’t want to run yum list or yum search because, in truth, it just takes to long! Now you have an alternative:

# yum -y install bal[Tab]

Produces:

ballbuster.i386  ballz.i386       balsa.i386

Adding another ‘lb’ to the end of that string (and then the tab key of course) should help us to complete to the package we’d like to install.

# yum -y install  ballb[Tab]

Then completes to:

# yum -y install  ballbuster.i386

Hitting enter then installs the ballbuster package, and its quite a fun game!

.. snip ..
Installed: ballbuster.i386 0:1.0-1.fc6
Dependency Installed: ClanLib.i386 0:0.8.0-4.fc7
Complete!

Of course, there are hundreds of others tab completions available (and there’s a good way to list many of them too, even if its a bit cryptic). Try these on for size:

Are you a developer?

$ svn c[Tab]
cat checkout  ci     cleanup   co     commit    copy    cp
$ make [Tab]
all clean dist-clean

What about a systems administrator?

# modprobe -r b[Tab]
battery    bay        blkcipher  bluetooth  bridge     button
$ man cron[Tab]
cron     crond    crontab
$ ssh herlo[Tab]
herlo-f7   herlo-lap  herlo.org
$ grep --[Tab][Tab]
 --after-context=  --directories=   --invert-match   --only-matching
 --basic-regexp    --exclude=       --label=         --perl-regexp
.. snip ..

To help you wade further through, try out the following two commands:

  • complete -p
  • declare -f

Be aware that these are advanced components and can really be confusing if you’re not a developer and just want to use the features. The complete command seems to provides some tools to do additional auto-completion. I also think that its nice to be able to extend this functionality to other applications as well.

As promised, here’s a few links to help your completion introduction. Note: Some of these links provide more than just the simple tab completion: