• entries
  • comments
  • views

About this blog


Entries in this blog


What This Documentation Covers:Part 0 - Introduction to sbopkgPart 1 - Introduction to SlackBuilds.org Part 2 - sbopkg overview a. Download & Install b. First RunPart 3 - Walk-ThroughPart 4 - Command-Line UsagePart 5 - Configuration File** Please read Chess Griffin's official documentation **man sbopkgman sbopkg.confPart 0 - Introduction to sbopkgSlackware has a package manager and it is you.Luckily, you have lots of tools that can help you manage your packages. One resource you have are SlackBuilds at slackbuilds.org (often abbreviated as sbo). A new tool has been written by Chess Griffin and a number of Fine Contributors called sbopkg.As Chess describes it:Sbopkg is a command-line and dialog-based tool to synchronize with the SlackBuilds.org repository.....Sbopkg will allow the user to browse his or her local copy of the repository, read the ChangeLog, and view the README, SlackBuild, .info, and slack-desc files for each package. Sbopkg will also allow the user to select packages to build and it will download the source code, check the md5sum, and build a Slackware package.What does sbopkg NOT do?It will not check dependenciesIt will not automatically install the packageIt will not track what has been installedHow does a SlackBuild work?I don't know. It just does.Part 1 - Introduction to SlackBuilds.orgTo better understand how sbopkg will help you, it is good to understand how a SlackBuild traditionally works.Traditionally, you would do this:1. Download the SlackBuild2. tar -xzvf SomeProgramScript.tar.gz4. Download the Source Code for someprogram4. tar -xzvf SomeProgramSource.tar.gz5. mv SomeProgramSource/ SomeProgramScript/ 6. cd SomeProgramScript/7. su(password)9. chmod +x someprogram.SlackBuild 10. ./someprogram.SlackBuild11. cd /tmp12/ installpkg someprogram_sbo.tgzHow would you like to skip steps 1 - 10? Well, that's what sbopkg does!Part 2 - sbopkg overviewa. Download & InstallCurrently, sbopkg can be found at http://code.google.com/p/sbopkg/Download the latest version (let's assume it's sbopkg-0.0.4-noarch-1.tgz) to your Desktop. Open a terminal:% su(password)# installpkg sbopkg-0.0.4-noarchAnd now it's installed!In /etc/sbopkg/ there is a file called sbopkg.conf.sample which you should edit to suit your machine.Since it's wise to keep a good sample file around, make a copy of this before editing it, and rename it sbopkg.confNow open sbopkg.conf in your favourite text editor. The manditory change is the default location for your local SlackBuilds.org repository, which is initially set to /home/sbo. You will need to set this to something more like /home/username/sboOther settings can be tweaked as well; if you wish the Slackpkgs that you will be building with sbopkg to be stored somewhere other than in /tmp then you can set TMP= to whatever folder you'd rather store them to. And so on. If you have no special requirements, however, most of the defaults can be kept.Save the changes and quit the text editor.b. First RunTo start sbopkg, simply become root and type In sbopkgAn ncurses interface will appear.RsyncThe first selection will synchronize a local folder on your computer (made during installation) with what packages are currently available on the SlackBuilds.org website.ChangelogThis displays the most recent updates and changes made to the packages in the SlackBuilds repository.BrowseHere you are able to browse through all of the packages available in the SlackBuild repository. The packages are subdivided into general categories, like Academic, Desktop, Development, Games, Graphics, Libraries, Misc, Multimedia, Network, Office, and System.Within each category you'll find a plentiful selection of applications you might want to install. Cache[/]Holds the source tarballs that are downloaded and saved when a package is built. NOte taht this does not hold the actual packages; these are built and saved in /tmpLogThis shows you the exact verbose feedback of the packages you have or have attempted to create with sbopkg. You can read your logs at any time, and you may also choose to delete them or not.ExitPredictably enough, this quits the sbopkg program.Part 3 - Walk-ThroughThe best way to learn how to do this is to do it. So let's take a fairly complex example, such as the vector graphics application Inkscape, and install it step by step.To begin, we run sbopkg as root:% su(password)# sbopkgIf this is the first time we are running sbopkg, we'll want to start with Rsync. This will update our local copy of the SlackBuilds. We also may want to look at the ChangeLog to judge whether or not an Rsync is in order.The next step will be to select the package we want to install. Select Browse, and then the Category you wish to peruse. In this case we'll choose Graphics.In the Graphics category, locate Inkscape and hit Return. You'll be taken to an information screen about that package. The first option is the README file; skip over this; no one ever reads them anyway. Oh wait, actually, don't skip it. Read it! Read it carefully! This file tells you what your system needs to have on it before attempting an installation of the software you really want to install.From the README file, we see that Inkscape requires libsigc++, glibmm, gtkmm (which in turn depends upon cairomm), gc, and PyXMLFrequently, a packages dependencies are also found as packages in SlackBuilds. So we'll leave Inkscape alone for a moment and go install the dependencies first.To navigate out of the Inkscape information screen, his return to Exit, and then Cancel to return to Graphics, the Cancel again to return to the list of Categories.Now that we're in Categories, navigate to Libraries. Here, you will find all the Inkscape dependencies you need. It's a good rule of thumb to install the dependencies in the order they are listed in the README file.This means that first we'll select Libsigc++, listed here as libsigcxx. Press Return to go to the information screen. Read the README. You can also look at the .info file on this item, which will give you version and maintainer information.You can both view and edit the SlackBuild script itself. To view it, select SlackBuild. To Edit it, select Edit. Be aware that this will create a libsigcxx.SlackBuild.sbopkg file in your local copy of the SlackBuild. This is so that any edits you make are easily deleted with the Delete option.Finally, there is the option to Build a package. This will run the libsigcxx.SlackBuild (or your edited libsigcxx.SlackBuild.sbopkg if one exists).Once this is finished, you may continue to do the same process for each dependency, but in this case, since even the dependency gtkmm has a dependency (cairomm), it's not a bad idea to go and actually install the resulting package before continuing on to the next dependency.Installing a Slackpkg is as easy as opening a new tab in your terminal or changing to a new virtual terminal and using the Installpkg tool:% cd /tmp ; ls% su(password)# installpkg nameofpackage_SBo.tgzSlackware installs the package for you, and you can continue to resolve dependencies.If you come across a dependency that is not available via SlackBuilds.org, you may have to use a little known internet tool known among the elite hackers as Google. :^) This should help you find the dependency, which you can download and install manually with the typical ./configure and make && make install commands. You may also want to visit the software's official site, often given in the README in the Information window in sbopkg.After you have installed all dependencies, you are ready to resume the SlackBuild of Inkscape.Return to the Graphics category, find Inkscape again, and select Build.This will create a Slackpkg in your /tmp directory. Once the build is confirmed by sbopkg, you may Exit sbopkg.At this point all you have left to do is cd into /tmp and installpkg. That's it!Now go find another cool free app to install, and have fun! Part 4 - Command Line UsageIf that the fancy ncurses interface is just too much eye candy for your text-only console sensibilities, you may also use sbopkg straight from the command line. This is well documented by Chess Griffin in the sbopkg man page, accessible via this command:% man sbopkgThe syntax for the CLI version of sbopkg is:sbopkg [options]To do an rsync from SlackBuilds.org to your local SBo repository, use this command:# sbo -rTo view the most recent SlackBuilds.org changelog, use this:% sbopkg -lTo find a package and read its README file, use this command:% sbopkg -s NameOfPackageShould you wish to search for and build a package from your local SBo repository (ie, after you have done an rsync of SlackBuilds.org to your local system) use this command:# sbopkg -b NameOfPackageIf you need to manually specify where the directory containing your local SBo repository is, then use this flag:-d /path/to/directoryShould you need to override your default configuration file and point sbopkg to a different configuration file, use this:-f /path/to/non-default/config/filePart 5 - Configuration FileThe default installation of sbopkg installation looks for a local repository in /home/user/sbo with the version of Slackware set to the latest stable version of Slackware (12.0 at this time).However, should you wish to modify these settings, it is as simple as editing /etc/sbopkg/sbopkg.configThis is very well documented by Chess Griffin here:% man sbopkg.configYou can also use the command line option (-f /path/to/non-default/config/file) to direct sbopkg to a different configuration file.[EOF]


command line apps

artv61 ("evilAzimuth") asked me the other day in IRC if I had a link to a site that listed and explained some of the really essential command line applications -- one that might help a new Linux user learn the command line. I thought that I did, but then realized that actually the source I was thinking of was the O'Reilly Linux Pocket Guide or Linux Essentials or something like that, and was not online but on a book shelf somewhere. While I would still recommend that as a source of good basic commands to know, I figured there ought to be one online as well.

Yes, there are probably other lists like this online but first of all, I couldn't find them and second of all, this one will be better.


Foreground, brings a backgrounded process back to the front. How is this used? If I'm in vim (which I am, right now) and I need to get back to a bash prompt so I can check something in the fg manual, I can hit control-Z to send vim to the background (vim then becomes "fg 1"). Now I can check the man page, and I could control-Z the man page when I'm finished (it will become "fg 2") and again get a prompt. So now I can type in "fg 1" to get back into vim and resume typing, or I could type fg 2 to get back to the man page to look at that again. Go ahead, try it!


Lists currents jobs in that console. This list will contain all the apps you've sent to the background with control-Z and can now bring back to the foreground with fg.

bash$ jobs[1]   Stopped                 irssi[2]-  Stopped                 man fg[3]+  Stopped                 vim foobar.txt


Just learn ls and all of its many many view options. ls -alh and ls -m and even ls -FahGsilt and all that stuff.


The unix command everyone loves to talk about when demonstrating "how cryptic unix is", grep is one of those cool commands that you'll use every day. Of course, it searches for a string. Try it with a -i for case insensitivity!


At some point you're going to have to modify ownership of files. You will probably also have to modify them recursively.

chown -r klaatu:users ../../foobar/ 

That command would change ownership of all files in the foobar directory to klaatu=owner and users=group. That will give me, as Klaatu, the right to do whatever the Owner is permitted to do to that file.


Modify permissions of a file for User, Group, and Others.

There are different ways to set this, and it behooves you to learn the alphabetic method as well as the mathematic.

But the easiest way to do it is just like this:

bash$ chmod gu+rx foo.txtbash$ chmod bar.txt go-r

The first command would grant Read and eXecute perms to the Group and Others

The second would revoke Read access to Group and Others

...and keep in mind that where foo.txt and bar.txt reside will effect whether the Group and Others can get to them, as well; if the files are nested in a directory with 700 permission (Read Write and eXecute for User ONLY) then no matter what kind of permission you give other people, they won't be able to access the file because it's in your home directory and they can't get through the door, much less read or write or execute a file you've given them.

tar and gzip and bzip and zip

A lot of ways to compress your files. Each with their own special syntax. Can I break it down easily? Let's see...

tar cf archive.tar foo.png bar.ogg --> tar's foo.png and bar.ogg together into a archive.tar

tar xf archive.tar --> un-tar's archive.tar into foo.png and bar.ogg

gzip archive.tar --> gzip's archive.tar into archive.tar.gz

gunzip archive.tar.gz --> un-gzip's archive.tar.gz into archive.tar

tar xzf archive.tar.gz --> un-gzip's and un-tar's archive.tar.gz into foo.png and bar.ogg

bzip2 archive.tar --> bzip2's archive.tar into archive.tar.bz2

bunzip2 archive.tar.bz2 --> un-bzip2's archive.tar.bz2 into archive.tar

tar xjf archive.tar.bz2 --> un-bzip2's and un-tar's archive.tar.bz2 into foo.png and bar.ogg

zip archive.zip foo.png bar.ogg --> zip's foo.png and bar.ogg into archive.zip

unzip archive.zip --> unzip's archive.zip into foo.png and bar.ogg


Well, you have to know ifconfig these days. If you want to get onto a network, including the Big One (www), you will end up looking at ifconfig. It will give you your IP address, the broadcast domain, the MAC address, and so on, of all your network interfaces. Very important stuff. You can also bring up or down the interfaces with ifconfig <interface> up (or down). And more.


This seems to be fairly Linux-specific, because it's not in Open Solaris or any of the BSD's I've tried, or that bastard stepchild, OS X. But iwconfig gives you lots of ifconfig-style commands for wireless interfaces. Commands like:

bash$ iwconfig wlan0 essid freePublicWifi

...although connecting to an open network called freePublicWifi might be something to be careful about......


...that magical last step of getting online via a text console; invoke dhclient to probe the essid you've linked your interface to obtain an IP Address via DHCP. Essential if you askew Network Manager or wicd and so on.


You can sit there and fg/jobs things in the foreground and background, or you can switch between virtual consoles with control-alt-FunctionKey ... or you can install and learn screen. Screen will allow you to create new shells all in the same, well, screen -- and then switch back and forth between them all. And you can even switch to one of those screen sessions remotely. That is, if you were running screen at home, and then grabbed your eeePC (or Acer Asp1re or whatever) and went out to a cafe to work, you could jump online and ssh into your box at home, run a screen -raAD, and you'd be using your terminal session that you just left at home, switching back and forth between irssi and alpine and mplayer and all the rest. Really neat.

I have my profile in Konsole set so that when I start Konsole, instead of running /bin/bash, it runs /usr/bin/screen (well, along with a few other commands, but not relevant to screen) -- so I'm automatically screen'd when I start any terminal session in KDE.


Again, this is kind of specific to Linux but the idea is typically the same across *nix systems. It stands for Make FileSystem, and usually has a number of variants like mkfs.ext2 or mkfs.ext3 or mkfs.vfat or whatever. I usually type in just the command first and let its built-in help guide me:

bash$ mkfs.ext3Usage: mkfs.ext3 [-c|-l filename] [-b block-size] [-f fragment-size]        [-i bytes-per-inode] [-I inode-size] [-J journal-options]        [-G meta group size] [-N number-of-inodes]        [-m reserved-blocks-percentage] [-o creator-os]        [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]        [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]        [-T fs-type] [-U UUID] [-jnqvFSV] device [blocks-count]bash$ mkfs.ext3 -L gortdrive /dev/sdb/dev/sdb is an entire device not just a partition!  [O]k?

...and this will create an ext3 drive from /dev/sdb and the drive will then show up on my desktop as gortdrive.

mount and umount

mount /dev/sdb /media/zip --> mounts a drive that you have plugged into your usb port at the /media/zip location in your filesystem (yes, I use "zip" because it's easy to type and remember...and no, it's never really a zip drive)

umount /media/zip --> unmounts /dev/sdb from /media/zip ... as long as you are not IN /media/zip or using a file that is located there.

Granted, if you're running X then probably HAL is going to do all of this for you. But if you're not, you might need to do this manually.

Getting the /dev/ naming scheme down took me a while, at first. I'm still not clear on it all, mainly because I never pay attention to what's inside my computer...but I guess I have an IDE harddrive so it's /dev/sda and its first parition is /dev/sda0 and its second partition is /dev/sda1 and so on. If I plug in an external drive, the first drive I plug in is /dev/sdb, the second drive will be /dev/sdc, and so on. This leaves the dvdrom drive, which has always pretty much been /dev/hda because, I suppose, it's on another bus entirely. Luckily, the /dev/hda is usually linked to a generic /dev/cdrom so quite often I don't have to worry about it at all. I wish I knew the trick to easily figure out these names, but I still don't know the trick, I'm just at the point now where I kind of just know it regardless of what machine I'm sitting in front of. But sometimes there will be a surprise curve ball thrown in for fun; like the Apple TV I'm hacking away at to get Linux onto....it sees the external cdrom drive I'm using to boot from as /dev/sr0 -- which is a SCSI cdrom interface, but obviously it's not really scsi but somethign emulating scsi...I think IDE does that, but the drive is plugged into a usb port, which is fine, but how is one supposed to know that without googling for "what is the external cdrom drive called in appleTV whilst hacking linux onto it"

Well maybe someone will comment on this post and explain it all.


A quick and handy way of ejecting a disc from your dvd drive. eject /dev/cdrom

There may be other uses for it, I'm not sure. I just use it for the optical media drive.

This will surely be deprecated any day now. Down with optical media!!


Directs output to an additional place... so if I wanted to do a netstat but wanted to record the output of it to a local document AS WELL AS see the output on my screen, I would tee it to a file like so:

bash$ netstat -veN -A inet -c | tee netstat_070709.logtcp      185      0       wsip-98-174-208-105.hr:ircd CLOSE_WAIT  klaatu     107890tcp        0      1       p3slh056.shr.phx3.secu:http SYN_SENT    klaatu     114528tcp        0    454       p3slh056.shr.phx3.secu:http ESTABLISHED klaatu     114421tcp      329      0       simmons.freenode.net:ircd   ESTABLISHED klaatu     107044

...and this display would continue until I cancelled it. And then I could look at the file netstat_070709.log and, sure enough, I'd find that all the netstat data had been logged therein.

all the other typical unix commands

Come on, I'm not gonna sit here and expound the virtues of text jockeying in unix. go read a book on it. cat, redirects, pipes, echo, more, less, tail, and all that good stuff...learn it all!

your office app...

vim or emacs

You need to learn one of these two, or both, text editors. It will help you edit config files, it will get you closer to the command line (I'd have never learned the fg trick if I wasn't living in vim all day, realizing that I needed a more efficient way of :wq and then re-opening vim <path/to/document> all the time), and it will give you keyboard skills you can re-use in BASH (emacs) or ZSH (vim).

How do you learn these apps? both have tutorials on your computer; do those, then start living in them. Resist the urge to open up Abiword or OpenOffice or whatever, and just start using a real text editor.

your web browser...

lynx or links or elinks

Textual web browser. A real life-saver when you're flying along without X and suddenly you realize that you need to check something on the great wide world web. Start up one of these handy text-only browsers and surf away. If the site doesn't work with an elinks-style browser, then you probably shouldn't be taking time away from your work to go look at it because, as we all know, web 2-point-oh is for hipsters who never get any work done.

your media players...


Want music whilst you work? Invoke mplayer for all the music you could ever want to hear. You can also use it to watch videos...although not without X. Well, you might be able to watch a video as ascii text or something, but I digress...

your image manipulation program...

image magick

A graphics processor; one I use quite often when doing graphic work. It will take your GIMP'd RBG png's and translate them to CMYK pdf's with alacrity and ease. And it does a lot more than that, too. Best way to find out what all it can do is to just go to their site: http://www.imagemagick.org/script/command-line-options.php because they try to fit it all in a man page but...there's just SO MUCH!

your audio editor...


An audio normalizer with a level and gate to maximize audio contrast and adjust average perceived volume. You may have heard podcasters talk about a little app called Levelator, a non-free Python app that breaks every time anyone upgrades their Linux OS. Well, this is the free non-breaking version of that, I guess. (It's actually the other way around, I think; Levelator is the non-free breaking version of normalize, but whatever...)

sox and play and rec

sox is a swiss army knife for transcoding audio, or editing audio, or mixing audio.

play is sox's play module.

rec is sox's record module.

your video editor...


For transcoding videos and audio (with the -vn tag) -- very very handy. I use it many many times a day, every day...but then I'm a podcaster and video editor...

your internet chat...


Not just a badge of coolness in IRC, but the best way to IRC. When I first started signing onto irc servers, I literally couldn't figure out what to do until I started on irssi. Then, suddenly, it all became so obvious. I've done a few quick-starts on irssi on my podcast, The Bad Apples, but here it is again:

bash$ irssi --nick klaatuirssi > /server irc.freenode.netirssi > /join #linuxcranks

...and then start chatting. Politely. Don't forget to say "hi!" to notKlaatu

GNU freetalk

This is a jabber client, so you'll probably want to see finch (thanks, threethirty, for letting me know about that one) if you use or need to chat with AIM or other non-jabber/xmpp accounts. I do not, so I use the really swell GNU freetalk, which is a simple command line prompt with irssi-like syntax. I am not a heavy user of instant messaging these days, so how well it holds up to, say, 20 simultaneous convo's I cannot attest, but it certainly works great for my needs.

your email client...


Cuz I'm just not cool enough to use mutt, I guess. I tried mutt but I'm not knowledgeable yet to understand THAT much about MTA and MUA and stuff like that, so I'm gonna have to hold off on it. Until then, alpine is my dream email client and the one I have open in the background (remember fg?) or in a konsole tab ALL the time. It takes a bit of setting up, but there are great HOWTO's on alpine on Hacker Public Radio, by me, ready for your enjoyment. It covers Alpine, IMAP, and GPG...pretty much all you need for a very nice alpine setup.


What's inside your computer? Find out with lspci; it'll tell you all the important stuff on the inside of your computer, so you can find out what drivers you need to go look for, or whatever.


What is going on with the USB ports in and around your computer? Find out with lsusb; it'll tell you the ports (internal and external) and if anything is connected to them.

./configure and make and make install

Simple as 1-2-3. ./configure && make && su -c 'make install' will compile and install an application from source code. Hey, like it or not, Linux geeks love the cutting edge. Oh, sure, a few bearded sys admins out there beat their chests proudly proclaiming the virtues of old and stable apps, but they still yearn to compile from source and so in the same breath they mention that no distro ever compiles postfix or openSSL or openSSH correctly and so they compile it from source themselves. So you're GOING to compile from source code if you're a unix geek, so you may as well start brushing up on those magic three commands.


SSH is, I think, one of the top reasons people get into Linux; otherwise they're stuck admin'ing a couple of 50 computers and they are finding they are actually having to get up and walk to each computer to do one stupid task -- and then one day it dawns on them: with Linux, they can just ssh into the computer, perform the task, and be done. And from there they learn about shell scripting, and it's all over.


bash$ ssh -X klaatu@

will sign you in, securely, as klaatu to the computer located at

Having problems? I find one of the most common issues is not having SSH running on the target machine. So get up, walk over to, login manually, and run something like...

bash$ su -c '/etc/init.d/sshd start' 

and this will start the ssh daemon, so that it's ready and waiting for incoming connections.


I think of this as a variant of ssh; it's a COPY function with which you can securely cp a file from your local machine over to a remote machine...or you can grab a file from a remote machine and cp it over to your local one. It's pretty cool.

bash$ scp gort@ ./foobarGort.txt

would copy foobar.txt from gort's machine over to mine, and rename it foobarGort.txt


 bash$ scp foobarKlaatu.txt gort@ 

would copy foobarKlaatu.txt from my machine over to Gort's, as foobar.txt


This is one of my favourite apps because it's the one I use to make my backups. And I backup FREQUENTLY.

bash$ rsync -av /home/klaatu /media/backups/klaatuVault 

There is more you can use it for, but I tend to only use it for that simple command, simply because utilizing too many of its network capabilities makes me nervous due to that "r" in rsync as opposed to an "s".


This is a cool app to know about because it will encrypt stuff for you, nad give you a way to verify identity when emailing. I have it set up on all of my machines and email clients. I'd go into how to use it except that it's a little complex. I have a very good intro to it in the 2nd or 3rd season of The Bad Apples, and a lesson on how to integrate it into alpine on Hacker Public Radio.

....so that's all well and good but let's look at this logically:

In order to know the *nix command line, do you need to know commands? or do you need to know the shell, or do you need to know files? Well, actually, all three.

The shell, of course, is the thing that allows you to type something and have the computer do that thing; it is BASH, TSCH, CSH, ZSH, and others. In order to interact with the command line efficiently, you need to learn how the program works; some things you probably already know, like use the UP ARROW to re-enter the previous commands or use TAB to auto-complete words in a directory or echo $PATH to see your path, and so on. These are all pretty common BASH shortcuts. Should you, then, learn BASH? BASH is one of the more ubiquitous shells out there, so quite possibly you should brush up on BASH, or choose another shell to learn...but learn at least one of them.

I find that BASH or BASH-like shells are available on any *nix system I come across, including the ones that I do NOT have the power to modify. Those are the ones that matter because they're the ones you will, of course, be stuck using some time in a pinch and you'll be cursing yourself for not having learnt the "industry standard". So when I refer to an "industry standard", I don't mean "the best" or "the one to which we should all succumb", I just mean it's the one you're gonna run into when you are in a rush, in a pinch, need something to get done 5 MINUTES AGO, and cannot change.


The point: learn BASH for its industry standardness. Explore other shells if you want, for fun.

BASH Essentials

There are lots of books on this subject, and probably lots of sites; you'd do yourself a favour by checking one out. There should be a book on BASH at your local library because it's been around forever. Otherwise there's a book-length dissertation on the subject via "man bash"

UP-ARROW reviews previous commands; how many it will remember depends on your HISTSIZE setting.

TAB auto completes words in a directory

Control-Key commands are really important to know because some of them just speed things up for you, but also because sometimes you will find yourself at a keyboard that has no arrow keys, or a console that doesn't recognize the delete key, or whatever. If you know emacs-style navigation and such, you will have no trouble even so:

CONTROL-A moves you to the beginning of the line

CONTROL-E moves you to the end of the line

CONTROL-L clears the display (it's just like typing "clear" at the prompt)

CONTROL-R searches your HISTORY for a previous command (like doing a "history | grep foobar")

CONTROL-F moves your cursor forward

CONTROL-B moves your cursor backward

CONTROL-D deletes

CONTROL-W deletes the string before the cursor

CONTROL-K kuts a string

CONTROL-Y yanks the string from memory and pastes it where ever you want it pasted

<command>-& invokes a command and returns a BASH prompt to you. That is, if you want to run, say, mplayer, so you can have a bit of music while you do important BASH stuff, you can type

mplayer ~/music/clayHawkins_theFalls.ogg

and the album will play but your BASH prompt will be occupied by mplayer's progress report (giving you the current bitrate and how far along in the album you are, and stuff like that). So you can enter:

mplayer ~/music/clayHawkins_theFalls.ogg & 

and the album will start playing, but instead of seeing constant mplayer output, you will be returned to your normal BASH$ prompt. Nice, huh?

...and so on and so on. Bsically, go learn emacs and your BASH skillz will be accordingly wicked. Hate emacs because you overheard some people who seemed like they knew what they were talking about saying that they didn't like emacs? Well, they were wrong...but if you really hate emacs then learn vim and go get the Z-Shell (ZSH) and use that. But keep in mind that some day you will hack into some device running a busybox shell with an emulated keyboard with no arrow keys, a mis-configured delete key, and no Escape key, and you will want to get stuff done. Knowing the emacs key bindings and BASH functions will be VERY helpful.


This is the kind of thing you just kind develop a feel for after a while, but in a nutshell:


You must know the etc directory because it has a lot of system configuration files. The way your computer starts all the little apps it runs after you turn it on, the way your graphical environment starts and how it recognizes your peripherals...they are all in this directory. Learn all about /etc/ and you will understand why your computer is or is not doing the things you want it to do.


the hidden files in your home directory contain configuration files (and more) for your personal environment.


Contains the GRUB files to control which kernel you can choose from at boot time...unless you use LILO, in which case you will be interested in /etc/lilo (see? I told you /etc was important).

/sbin and /bin and /usr/bin and /usr/sbin

are all directorys full of applications that either root uses, or you use directly yourself.

--- and that's all I can think of to say on the subject. Long live the unix command line.


Some time ago, I realized that to be a good little anarchist, there were certain things in my life I'd have to start to do without. After I got out of the proprietary OS trap, and stopped playing the whole "must have a job, must have good credit" financial scam, and stopped voting, and ditched some of those false ethics that capitalistic society needs for us to believe in so that their whole 10%-rich-vs-90%-poor social model to work, I started focusing my attention to entertainment.

Now, I'm not that difficult to entertain. I read a lot, I mess around with Linux a lot, and I'll make whatever kind of art I'm inspired to make at any given moment. But sometimes one wants to sit back and, say, watch a movie or listen to an album or something. The problem with the latter forms of entertainment is that they support the broken business model that is Time Warner, Vivendi, EMI, and, what, a couple other big companies?

So, in short, I figured out I had to start really being serious about local and independent art.

The problem there is, how do we define "independent"? It's always been a problem with art, because sometimes "independent" simply means "not in the same vein as the current competition" (which is why some people will define bands like "Bat For Lashes" as "independent" even though they're signed with Astralwerks >> Virgin/EMI), but sometimes it is a more objective statement meaning that an artist is independent of any "big" established business....and of course then you get into the question of what "big" really means. Is an artist not independent if their records are being sold via K Records? they <em>are</em> on a record label, after all. If a group of three independent artists band together to create a cooperative organization to promote their art, are they no longer independent? And so on.

This was the eternal question for me until at last I started really getting familiar with Free Software and that most marvelous document, the GPL. If we judge Free Software to be free if it is GPL'd, then I reckon the way to judge Free Art is by way of its Creative Common status.

This makes a lot of sense, but the problem is that there's actually not all that much art out there that is creative commons.


slackware v13

Slackware.com seems to be down atm. With version 13 just around the corner -- with the big official switch to KDE 4 and the new official 64 bit version -- well, my imagination is running wild. Will the site re-appear tonight with all the new iso's one could ever hope for?

Nah, probably not. I probably just need to re-set my router. But anyway, I'm going to pretend like it's much more exciting than that.


HowTo use a walkie

Walkies, aka "Walkie Talkies" or "CB Radios" come in two varieties: the expensive kind that you rent, or the cheap kind that you buy. They are different in these ways:The cheap ones (two for $50 or less) are a little noisy and have less range.The expensive ones (too expensive to buy but ok to rent) frequently have a cleaner signal and a greater range.You can choose either one, depending on your budget, but renting is usually the better option. You can rent them from equipment rental houses; sometimes they are specifically film equipment rental houses, or sometimes they are construction rental stores, or event equipment rental...just open up a phone book and call around.The rental usually comes with the walkies, ear pieces for each walkie, and a charging station.Keep in mind the range of signal; the cheap ones will have an advertised range of one mile, maybe, but what they mean is half a mile in realistic conditions. The expensive ones will advertise 5 or 10 miles and what they mean is 1 mile. If you need something stronger than that, you're looking at some serious radio gear that you're probably not using for a Linux fest or a film shoot, so you should check trucker supply stores and places like that, or consider going cellular.You want to distribute the walkies among the key members of the organization. This isn't because you want to create an elite group of special people who are more important than everyone else involved, it's just a matter of practicality. Not everyone needs a walkie; it would be prohibitively expensive, and there would be way too many people chattering on the line. So just the team leaders of the event need a walkie, and if you've managed to organize an event then probably you've already assembled some kind of hierarchy or structure to your group of participants.For instance, at the top of the group, there is some kind of leader. The leader needs a walkie. Under this leader there are probably some chair members or a group of assistants or (in film terminology) keys. Each of these people should get walkies. Under the key personel there are probably supporting groups; generally the leader of each group should also get a walkie. There may be one or two people within each group that should also get a walkie, but usually this is where walkie assignment ends.All in all, walkie assignment really is discretionary. You know who needs to be available via walkie and who can simply receive second-hand orders from key personel, so assign walkies as your budget and common sense dictates.Walkies come with a number of channels. These channels exist for two reasons. First of all, so that you can select clean channels over which you can communicate since sometimes there is another group using walkies nearby, and if you are all trying to use channel 5 then you may end up interfering with one another. Secondly, so you can isolate different groups within your own organization in order to reduce chatter.Choose two or three channels to use for your event; how many you need will depend on the scope of your event. For small events, you may want one channel for key personel, one channel for everyone else, and all other channel for private conversations. In this scenario, everyone with a walkie would have their walkie tuned to, say, channel 1. All general instructions would be broadcast here. The key personel might switch over to channel 2 for specialized conversations that lower minions might not need to hear; why bother someone doing crowd control with details about what restaurant to use when you order everyone lunch? the crowd control person doesn't need to hear about lunch plans, doesn't need to think about treasury concerns or time concerns, or anything like that. Now, after the key personel have ironed out all the food details, they would switch back to Channel 1 and broadcast for everyone to hear that a person from Joe's Diner will be arriving around 13:00 with food for the guest speakers; this will let the crowd control person (and everyone else on that channel) know that when someone claiming to be from Joe's Diner arrives, to let them through and to then announce to the key personel that the food has arrived.Chennel 3-10 then might be reserved for private conversations. If, for instance, two key personel members (let's call them Klaatu and Gort) are discussing lunch options and two other key personel are discussing parking logistics, then suddenly Channel 2 is going to become pretty chatty. It makes sense for one of those two conversations to move to an alternate channel. This is done with a simple "Klaatu, go to 3" -- which tells Klaatu to move over to channel three. Gort will also move to Channel 3 and the heated lunch debate will continue in relative privacy.Keep in mind, of course, that walkies are not secure on any level. Not only can an outsider with a walkie of their own tune into your conversations, but any member of your team can switch to any channel and listen in. So don't sit on Channel 5 and poke fun at Klaatu, and do not convey sensitive information like login username and passwords for your computer (unless they're temporary and don't actually matter to you).In a larger event, you might find that you need even more specialized channels. On a feature film shoot, it's typical for there to be no main channel, but lots of specialized ones; the art department might take Channel 1, while the camera crew will take Channel 2, and the lighting team Channel 3, and so on. Whatever channels remain will be private channels. The theory remains the same, it's just that you have more specialization.Walkie etiquette has its own protocol and jargon:Protocol:1. Do not fill the channel with chatter.If you can't figure something out within two or three exchanges, then go to a private channel. Not only do people not want to hear you talk back and forth about something that doesn't concern them, but it also prevents anyone else from broadcasting a more important message. So switch to a private channel, figure out what you need to figure out, and then switch back to the general channel and make the announcement.2. Use appropriate language and be professional.Everyone on your crew may say that foul language doesn't bother them, and they may all be open to jokes and silliness, but you never really know how they feel. Whatever your event is, if it is important enough to rent walkies for, it's important enough to be professional. Some jokes and wisecracks are fine, but keep it to a minimum, and keep the language clean. Remember that without face-to-face communication, there's no body language to offset remarks that might sound rude, so be polite or you may be making some new enemies without meaning to. But most importantly, remember that you have no idea who is listening in on your conversation. Anyone around the area with a receiver of some sort can tune into your frequencies and listen in. If you want to be faultless, don't start broadcasting questionable content over the air. 3. Hold down your TALK button longer than you think you need to. Really. People press TALK and start talking, and their first few words are not broadcast; they release TALK and their last few words are not broadcast. And then people have to ask them to repeat. So hold it down, wait, talk...finish talking, wait, release. It takes a little bit of extra effort to remember this but becomes habit pretty quickly.4. Run your channel how you want to run your channel. If you're key personel and are the top dog of a chennel, then you can pretty much run your channel however you please. Keep it professional, but your group is isolated on its own channel and only your group knows what needs to be conveyed via their channel. You will hear some groups being very vocal and chatty, while other groups maintain radio silence until really important logistical information needs to be conveyed. It just depends on the group and its needs. Feel free to customize.5. IDENTIFY yourself. Remember that you are on walkie; people don't know who you are when you speak. If it is important for people to know who you are, then you must state your name for them. You might think you have a distinctive voice and vocal style -- and you might actually have those things -- but there is a chance that someone listening doesn't know who you are, so identify. Statements like "I have the paperwork here in the entrance hall" doesn't give a listener much confidence in being able to find you; they want a name so they know who to look for, or else so they can ask for you if they don't know you by sight.6. Make sure your walkie isn't TALKing without your knowledge. There's nothing quite as annoying as someone leaning up against a wall or something and having their walkie's TALK button pressed without them realizing it. They then start talking about the weather or something, and everyone gets to hear about it whether they want to or not.Jargon:"Basecamp"It is important in most events to identify some common location as the administrative center. You don't have to call it "basecamp" necessarily, but there should be some place that can serve as a lowest common denominator so that if nothing else, when Klaatu needs a flux capacitor from Gort, they can arrange to meet in basecamp, or Gort can drop it off in basecamp and Klaatu can pick it up when he's available, and so on. Sometimes it's easiest to call this location "basecamp" rather than "that one room where all the equipment is, you know, the one at the end of the hallway near the bathrooms"."Go to <channel>"Move the conversation to channel 3 so as not to fill the current channel with chatter that doesn't yet matter to anyone else. If you are chatting too much about something that doesn't matter, you may be told by superior personel to take your "convo" (conversation) to another channel; better to self-regulate."Back to <channel>"Once your private conversation has ended, it is customary to announce to the other person or people you are speaking with that you're going back to your main channel. This not only lets them know that you are no longer available on the private channel, but also reminds them to go back to their main channel. There's nothing quite as annoying as forgetting to go back to your main channel and missing out on important general chatter."What's your 20?"Where are you located right now?"Does anyone have eyes on <person>?"Typically this is asked over the general channel when you are looking for someone but they are not responding to a "what's your 20" request. Keep in mind that this is a "have eyes on" request -- meaning that a response like "I thought I saw <person> going over to the coffee machine" is NOT acceptable. Answer only if you actually see the person being asked for in your field of vision at that moment. "Breaker breaker"Say this if you are interrupting a convesrsation or when there is important information to be conveyed or when you are interrupting a conversation that is in progress."Testing"A simple test to make sure you are broadcasting. Typically this is done when you first turn on your walkie and hook up your earpiece, just to make sure you are being heard and can hear. Someone will respond with a confirmation that yes, you are being heard. If you are someone hearing a test come through, you can answer that yes, you heard the test...but don't answer if someone has already done so. There's no point in getting twenty people confirming that a test broadcast was successful."Going off walkie"If you are for some reason going to turn off your walkie, then you'll want to announce that so everyone knows that you will not be reachable. I hate going off walkie and never do it, but sometimes there are times when you simply can't have the walkie turned on; maybe you are speaking with someone very important and don't want the walkie chatter in your ear. Or maybe your ear hurts and needs a break. In any case, it's good practise to announce when you'll be unavailable just so people don't try to talk to you in the meantime."Back on"Announces that you have come back on, having been off walkie."What channel is <groupname> on?"If you have just come on walkie, or you suddenly realize you need to speak with a specific department that you usually don't communicate with, you might ask to know what channel they are on. This obviously depends on the structure of the organization; but in the cases that there is a general channel, this is a fair question to broadcast. Someone from that group might be on the general channel at that moment and will tell you their channel, or else someone else may know the channel list by memory and will tell you. Either way, this is a fair question that you hear broadcast fairly often."That's a wrap"Means that the event is over and that all walkies can safely be shut down. Granted this is a film term and there may be other jargon to convey this in other industries, but this is the one I know. The point is, there should be some statement made at the end of the day so that people know that no further official conversations are going to be held. They may need to keep their walkies on for their specific group, but at least they know that once their group is finished, it's safe to shutdown. You probably also want to announce who should receive all the walkies; ie, "Give your walkies to <person> in basecamp when you're finished with them" -- this lets people know who has been assigned to gather and account for all the walkies and earpieces....and, well, that's a wrap. Good luck.


Further adventures in being a noob and trying to play on networks:So I've got Fedora 11 running in Qemu and I'm out at this cafe and I can't get online in Qemu. My host OS can get online fine, just not the [Q]emulated OS.So I do the usual network troubleshooting...

bash$ ping google.comHost unknown

Well that means I'm not even getting outside of my virtual machine, because if it could get out of the machine it would at least have told me the host was unreachable. But this message is telling me that it can't even take a stab at who or what I mean when I say to ping "google.com"OK, well since hostnames are pretty much the sole domain of DNS, I figure there's one place to look: /etc/resolv.confWell, first I do an ifconfig just to make sure I'm all configured. Turns out I didn't even have an IP address...lol. What a noob. But that's easily fixed:

bash$ ifconfig eth0	  Link encap:Ethernet  HWaddr 01:1F:23:F4:2B:19		  UP BROADCAST MULTICAST  MTU:1500  Metric:1		  RX packets:0 errors:0 dropped:0 overruns:0 frame:0		  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0		  collisions:0 txqueuelen:1000		  RX bytes:0 (0.0   TX bytes:0 (0.0 		  Interrupt:16

Now, don't be fooled...I'm not really hardwired in. I'm just virtually hardwired from my Qemu machine to my real machine's wifi connection.Anyway, to get the IP address:

bash$ su -c 'dhclient'bash$ ifconfig eth0	  Link encap:Ethernet  HWaddr 01:1F:23:F4:2B:19		  inet addr:  Bcast:  Mask:		  inet6 addr: fe70::22e:44aa:fec8:29c2/64 Scope:Link		  UP BROADCAST MULTICAST  MTU:1500  Metric:1		  RX packets:0 errors:0 dropped:0 overruns:0 frame:0		  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0		  collisions:0 txqueuelen:1000		  RX bytes:0 (0.0   TX bytes:0 (0.0 		  Interrupt:16

OK, now I'm back on track. I have IP address, I still have no inets. Just to be sure, I pinged again and got the same response so, yeah, I really do have DNS problems.So we need to look at what /etc/resolv.conf says:

bash$ less /etc/resolv.conf: generated by something-or-anothernameserver

...or something like that. Totally unfamiliar and obviously not working. Well, my host OS is getting out onto the www so why not look at its resolv.conf file:

bash-hostOS_$ less /etc/resolv.confdomain freeUnsecureWifi.netsearch freeUnsecureWifi.netnameserver

So I just copy all that information into the /etc/resolv.conf of my virtual machine's /etc/resolv.conf and...I'm online.End of story.Alternate Ending:Then I thought, well, maybe I should try using openDNS's nameservers just for kicks.

bash$ vi /etc/resolv.confdomain hackerpublicradio.comsearch hackerpublicradio.comnameserver

And well whaddya know, it still works. I like Linux.


i am always having to look this up. now at least i'll have it here:

ffmpeg -f x11grab -vc theora -s vga -r 24 -b 1200 -g 300 -i :0.0 ~/Videos/screenCapture1.ogv

option by option:

-f x11grab = take video from X...ffmpeg must have been compiled with enable-x11grab included; your distro or version may or may not have this enabled!

-vc = Video Codec...usually you will have ogg theora, xvid, [ff]mpeg (the default), and x264 available

-s = size. see the ffmpeg man page for details; vga is something like 800x600 and there are many other sizes available. know that it starts from the top left corner counts pixels from there.

-r = frame rate. lower frame rate gives smaller file size but looks a little less smooth

-b = bitrate. higher bitrate looks better but makes for a larger file size

-g = GOP size...300 provides a pretty nice looking image without increasing file size too much; it's got one intra frame every...i dunno....300/24 = 12.5 seconds or so.

-i = input...in this case it's :0.0 meaning your main screen. or display. or whatever it's called.

As you can imagine, there are a LOT more options available to you via man ffmpeg. Probably the most notable would be the offset, so if you wanted the capture area to not start at the very top left, you could tell it to, say, go down 10 pixels and over 10 pixels and THEN capture vga-size images, or xga-size images, or whatever.


I was making a little tutorial on a really cool audio app called Qtractor the other day, and for this I was doing quite a few screenshots. Some of the screenshots were pretty big so I went into GIMP to scale them down. To my surprise, the images looked terrible when scaled down. I understand about interpolation and I understand that an image in anything but its original form is technically compromised, but the text that looked great on my real screen looked embarrassingly bad in the scaled-down screenshot, and I'd only scaled it down by 10 or 15 percent. Something was definitely wrong.So I opened the original image in Krita and scaled it down to the same size...and it looked great. Looked like it hadn't been scaled down at all.So then I tried scaling the original image down with ImageMagick's Mogrify. This was better than GIMP but not as good as Krita.So, back to GIMP, and I messed around with the default scaling algorithm being used (to be fair, I could probably do this with ImageMagick as well -- there's surely an option to change the algorithm). Turns out that the default for GIMP is Linear Interpolation, otherwise known as /p/tarded interpolation, and looks terrible. Why this is the default, I cannot say; maybe it really does have its uses for pictures done, say, in 8-bit graphics.... Anyway, I changed it to "Sinc (Lanczos3)" and tried my experiment again. Miserably failed again -- sort of. For some reason, even though I'd just set the default Interpolation to Sinc (Lanczos3), the Scale dialog box was set to use Linear and I still had to manually change the algorithm being used. It seems to retain that setting, though, and I have not had to re-set the interpolation since.So, if you're using GIMP, set your Interpolation to Sinc (Lanczos3) for best results. Frankly it's still not as good as Krita's results, but it's certainly better than the default.I'm attaching screenshots of each example, with the exception of ImageMagick because I am pretty sure with some more complex commands (like quality control and such) I could get ImageMagick's results to be as good as GIMP+Sinc or maybe even Krita.


Corporate Linux?

Regarding the word "Linux":It seems that "Linux" is sometimes treated as a brand name and sometimes as a technical term. ie, we hear Linux and we think "free, flexible, open, has feature foo and bar and this and that..." but sometimes what the company using teh Linux in their product meant was, it happens to use the Linux Kernel but they've removed the flexibility (usually "for your own protection") and threw out feature foo ("most of our users don't want that") and tossed out feature bar ("for your own protection") and so on.So, to be sure, we should remember and perhaps promote the idea that a distribution is a brand, and Linux is a kernel. So, yes, an Internet Tablet with a Linux kernel plus a X.org stack is better than an internet device with a darwin kernel plus a Cocoa stack...but even better would be an Internet Tablet with, say, Fedora. Or Debian. Or Slackware. Or <insert your favourite brand/distro here>.Would I install Maemo on a computer? Well, not that anyone is saying I should, but No. It's limited and breaks many of the traditional unix/linux ways of doing things that I learned when first getting the hang of how *nix works. And from my research, I don't believe this is a case of me just not udnerstanding how things can be done on a *nix system; they really are breaking things on purpose. They are excluding applications that any dyed-in-the-wool *nix user would have expected to have available to them when they are told they are about to sit in front of a *nix terminal.This annoys me. Would I install, for instance, Android, on my Nokia N800? Well, maybe; I don't know what it's like on the back end; it might be just as broken as Nokia's implementation of Linux, or Apple's implementation of Unix. But, I may look into it some day; do a little research. I guess in a few years maybe I'll just have to hack my own LFS onto myNokia N800 to be truly happy...or I'll just sit down and shut up about it, and enjoy what I have. But it's comforting to think that some day I CAN hack LFS onto it and that Linux is still about choice.Oh and BTW...Richard Stallman is on the wrong track with his GNU/Linux campaign, I think. Thinking about branding -- at least I can be sure that when I see the word "GNU" included in a name, it means, at least in my experience so far, Freedom in the proper GPLv3 (or at least 2) style. Now that's a powerful statement to have associated with a word or your "brand". It means that GNU is the red-ink stamp on things that bring it up to the "truly free" status. Because the brand of "Linux" clearly does not have that connotation; Tivo, Nokia, Novell, TomTom, eeeXandros (and arguably a few other major distributions of Linux, perhaps ones that make installing proprietary drivers really simple or perhaps have software in their distribution-making workflow that is proprietary) have eroded that Linux "name-brand" so that Linux cannot necessarily be taken to mean free or flexible or has-feature-foobar. So it's up to the GNU label, I think, to be that symbol or logo for Freedom par excellence. Just my humble opinion, and since Mr. Stallman doesn't read my blog I doubt he'll agree or disagree...but if I ever meet him again and can get him to listen to me, maybe I'll mention it to him.


Open Firmware

Funny thing, three people recently have come across powerPC computers and have mentioned it to me, and this started to get me thinking again about Open Firmware, the old pre-Intel "BIOS" for Apples computers. The obligatory history: around the original iMac days, Apple took Sun Microsystem's OPEN FIRMWARE and used it for their logic boards. When they switched to Intel, they continued in their tradition of "actually on second thought we hate things that are open" and went to that wonderful proprietary system of EFI.However, there are still Open Firmware systems out there, so I may as well jot down some notes on signficiant Open Firmware commands.To get into Open Firmware, you boot the powerPC Mac whilst holding down Apple-Option-O-FA scary white screen appears, with black text...looks a bit like a UNIX shell but doesn't really act much like one. This is open firmware, courtesy of Sun and crippled as much as possible by Apple.ALIASESThere are aliases assigned to certain bus locations (is that a real term?)...ie, they have assigned the alias "hd" to some location like /pci@f4000000/ata-3@d/disk@2To see a list of such aliases, you can type in:


And that will return a screenful of all the aliases that firmware is aware of. So in theory, if we set a certain variable to "cd" then we should be telling th ecomputer to automatically boot of of location /pci@f500000000000/ata-4@d/disk@1 (just an example)VARIABLES We can see what variables are set in the system by typing in

dev /option .properties

This returns a really long list of all the firmware variables. If you are seeking to add your own oem banner and logo, this would be the place to do that. More likely, if you are seeking to alter the device from which the computer starts, this is the right area as well. In this list, notice that boot-device is set to hd and perhaps tbxi. If you want to set it to a specific device, like ethernet, then you can issue a command like...

setenv boot-device enet

...which should return the value of "ok" and you can double-check that it's been set by issuing again:

dev /option .properties

and looking to see what the value of boot-device is.I have had success doing this with ethernet...and that's about it. For CD and others, it really seems to want you to hold down the 'option' key during boot. Of course, even Ethernet has a snag key -- hold down 'n' during boot -- so going into firmware just to set ethernet as your boot-device is kind of silly.But what you can also do here is define which IP address specifically you want to boot from:

boot enet:,filename,;255:255:255:0;

...which translates into: boot enet:<ip of server containing the linux boot image>,<the boot file..whatever that would be>,<your local machine's address>;<the gateway address>As of this writing, I have not yet had any success with that, but then again I have never really booted off a network much less set a netboot server up, so iI really have no idea what I'm doing.But what I have had a little success with is telnet.TELNETTo put this machine into telnet mode, you first type:

dev /packages/telnet

and, again, you should see an "ok" response. Now telnet is running and you will need to type this:

" enet:telnet," io

let's look at that character by character:" -- yes that's a quotation mark -- yes that's one blank spaceenet: -- that is "enet" for ethernet and a colontelnet, -- that is "telnet" to start the telnet protocol and a comma192.168.33.33 -- you can make up whatever ip address you want to give this computer; so take a look at your other computers, see what the IP address is, and choose an address within that same subnet...ie, if one machine is then you might choose and so on." -- close quotation io --- space and iohit return.The machine gives you an OK, I think, and then just kind of sits there stupidly. You might think it has crashed. But if you ping it, you will see that it is in fact responding to pings. Pretty fancy.To be safe, btw, what I usually do is get on my master computer and start pinging the address i'm about to give the little telnet server on the Mac. You'll see it respond that "host is down" or something like that. Now go to the Mac, do the open firmware magic, and as soon as you hit Return at the final telet command, you'll see the pinging kick in. That is not only extremely gratifying, but it also is fairly good confirmation that you are pinging the computer you think you are pinging.To telnet into the Mac, you simply type into your other computer's terminal:


and straight away your prompt there in the terminal becomes an open firmware prompt, and you can run all the commands...but with the benefits of copy and paste and all other bash-like functions. Now, what this is actually good for, I'm not really too sure. There is really only so much you can do in Open Firmware, and whether it is possibly to install a linux distro via THIS telnet connection, I am not clear about. I did try and failed, but then I failed on a telnet install via normal PC to normal PC as well, so basically installing linux via telnet is just something I am not ready for yet.WHAT'S THE POINT?The point of Open Firmware is, of course, that it's a door into the firmware settings of your "new world" but pre-Intel Mac. If you're a firmware programmer this probably means something to you. Otherwise, there is usually little you'll find that you can do here that you can't do via some OS. So whether you'll ever really NEED to go into Open Firmware is highly questionable.The one time it did save a laptop in my experience was when I had some iBooks that were acting strange, and all the Apple "Experts" (I mean "Geniuses" but I think it's a trademarked term now so one must be careful with it) were all telling me that it was a bad logic board.... on all the iBooks I brought to them. Talk about an odd coincidence! Of course I didn't believe them, and instead went home, got into Open Firmware, and found out what was REALLY going on. It was through open firmware (which was helpful because of course you get to open firmware well before you ever get to an OS, and the OS wouldn't boot) that I diagnosed what each iBook actually had wrong with it, and then I was able to take them all apart and reassemble them into one working iBook. But of course you would know all this if you listened to Season 2 of The Bad Apples, so I will say no more.Now, normally all the other normal things you'd want to do via Open Firmware can probably be achieved by non-volatile RAM settings (google "nvram + OS X")....but Linux doesn't have the nvram application that OS X ships with, so if you need to set these variables while running Linux (which you should be on a Mac) the Open Firmware might your ticket to setting things like boot devices and OEM banner messages and...I dunno...stuff.CLOSINGIn closing, I'd just like to say that Open Firmware > EFI < openEFI but let's face it: chip manufacturers are evil. They lock in their code, they program in Windows, write to the chips with proprietary chip baking machines powered by Windows, and make everyone's life difficult. So next time you close your fancy Linux laptop, or your OS X machines (even though they are perfect and never do anything wrong - if I had a buck for every time I closed my Mac at work and come back to find it either shut down or crashed or strangely suddenly in a deep hibernation that requires it to be shut down and then rebooted, I'd be rich) don't call up the Linux devs. Call the chip manufacturers. And heck, call Apple and HP and Sony and all these manufacturers. If they're good for anything, they would start putting some pressure on these chip manufacturers to go Open Source (haha, they would never do that) or at least start being more open about the code that everyone needs to access in order to get things to work the way it ought to work.TANGENTI know I know, I just closed...but let's face it...would that ever happen in open source? Technological advancement being held up because people won't share code? Well...obviously a rhetorical question.


I've been doing some Mac related stuff again lately...less by choice than by economic force (ie, I need the money), so I've had to deal with those nasty proprietary apps again.This brings to mind, however, a post I once did that is either lost to time or just not easily found in the archive, concerning what free software was available for the Mac in order to make one's Mac-based computing experience better.Well, first of all, there is Linux. If possible, take the Mac you have been ordered to use, and put Linux onto it. That solves the problem really quickly.Assuming, however, that this is not an option, due to the client's expectations, there is an insidious thing you can do: replace all the userland applications with Free alternatives. If, on a Mac, we go into /Applications and do an "ls -m" on it, here are the results:Address Book.app, AppleScript, Automator.app, Calculator.app, Chess.app, DVD Player.app, Dashboard.app, Dictionary.app, Expose.app, Font Book.app, Front Row.app, Image Capture.app, Mail.app, Photo Booth.app, Preview.app, QuickTime Player.app, Safari.app, Spaces.app, Stickies.app, System Preferences.app, TextEdit.app, Time Machine.app, Utilities, iCal.app, iChat.app, iPhoto.app, iSync.app, iTunes.appMost if not all of these can easily be replaced with a good KDE install, but that's just not realistic, due to the fact that the KDE apps do not integrate with the rest of the computer (no drag-and-drop functionality, non-Mac-like mouse behaviour, etc). Basically, saying something like "Install MacPorts and do a sudo port install foobar" (where foobar is KDE or Gnome or *) is essentially the same as saying "wipe Mac OS and install Linux" -- it's not bad advice, not even a bad idea, and it's even something I'd opt to do for myself...it's just not necessarily something you can do and expect a client looking over your shoulder to approve of.So the real answer for most users is to install Cocoa-ported free applications. Luckily, there are quite a few of these.Address Book & MailReplace with ThunderbirdAppleScriptWhy script in a proprietary, runs-only-on-Mac-OS-X scripting language when you have Python and Ruby? Mac OS even includes Python and Ruby for you, so the only reason one really would want to mess around with AppleScript is because there are certain things that only AppleScript can talk to. Oh well. Automator.appEven in the halls of Apple headquarters, where rigourous QA testing occurs, requiring XXtreme automation...I know of no-one who actually uses Automator. It's a bad GUI frontend for really simple scripting. Oh, there is one powerful thing in it: the plugin that allows you to bypass Automator entirely and paste in a bash shell script.Calculator.appSpeedCrunch is a powerful and robust calculator far superiour to the default calculator in Mac OS X and, well, most Linux distros too. But heck, we're trying to replace it all, so why not?Chess.appJinChess supports chess servers, which, if you're a chess fiend, is essential. I'd go with it before I went with Chess.app....but I admit for some people this is a trivial matter and the truth is, I've never bothered making this change myself, opting instead to simply delete Chess.app to get it out of my way.DVD Player.app & Quicktime PlayerVLCDashboard.appWidgets for Mac OS...I dunno. Google Gadgets? None? Can I just use KDE instead?Dictionary.appSeriously, the Mac OS dictionary is one of the more annoying Dictionaries I've ever used. It pops up everywhere. Any system search you do, it seems, the Dictionary definition of whatever you're searching for is the top hit. Even for applications like Quicktime or iTunes. Yes -- Apple has included definitions of their own applications in their dictionary. (Yes, you can turn these features off, but stupid defaults are as bad as bugs IMHO). Alternatives? How about... Dict OS X or Expose.appThis is the application that allows the user to zoom out of all open windows and see them in a kind of bird's-eye-view...you've seen it in Compiz Fusion and KDE 4. It's really part of Finder, and there's no getting rid of that, for better or for worse. It's Apple's pride and joy and the most hated part of Mac OS.Font Book.appFonty Python looks interesting though I've never tried to install it on a Mac.Front Row.appxbmc - the xbox media center. So much better than Front Row (which is the AppleTV interface for your computer, or the other way around) it is one of the de facto replacements for the AppleTV's interface. Not that anyone uses Front Row on their computer, but if they are going to, xbmc is an absolute must.Image Capture.appA dedicated picture importer for digital cameras, since Finder is so inept at what it does. Once again, Konqueror would solve this issue swiftly and single-handedly...but it's still not a practical option, and won't be until some resourceful soul out there ports Konq to Cocoa. iKonqi, anyone?Photo Booth.appWebcam app. I doubt there's a replacement for it.Preview.appA sorely underfeatured image viewer, again picking up where Finder fails. Konqueror would solve this problem, gwenview would do even better, but neither are realistic drop-in replacements. Don't know of a replacement.Safari.appFirefox - you know it, you love itThere are others, like Camino, Opera, Flock, and so on, but Firefox is just the best.Spaces.appThe Apple version of the virtual desktop concept is horrible and bug-ridden. I myself have filed a number of bugs about it. There used to be some independent virtual desktop implementations out there; I haven't actually tried it on Leopard so I can't guarantee compatibility but you could try them: Desktop Manager or Virtue Once again, though, there's nothing quite like the way it's supposed to work; for that, we have Linux...Stickies.appecho "note to self" > sticky1.txt..ok I'm joking but really I'm not going to bother finding a free replacement for stickies.TextEdit.appcreatextTime Machine.appI love backups, I hate Time Machine. I hate it because any time I plug in a harddrive, it prompts me to use that drive as a Time Machine backup drive. Who do I have to pay off to get rid of that dialog box? I also hate it because it's blingy, wasteful, and overly elaborate for what it is. I also have a hard time picturing myself using it, and in fact, frankly, I rarely see users using it. People backup when their friendly sys admin friend reminds them to...that's been my experience. But...there is probably no free replacement for Time Machine that gives them Time Machine functinoality, thank goodness. Last time someone had to do a system recovery from Time Machine, all their , Utilities, iChat.app, iSync.app, iTunes.appiCalReplace with the Lightning addon for Thunderbird.


Currently I'm visiting an old friend of mine in the fine state of Massachusetts, and she's got a few computers and a Verizon modem/gateway/router, runs Windows, and has no clue about computers. When I arrived, I noticed that she had a Dell Inspiron e1505 laptop turned on in the corner and she mentioned that she couldn't get the thing online and, since I knew computers, could I help her fix that? The real goal in that moment was simply to get online, and since I know nothing about Windows, I figured the easiest and fastest way for me to diagnose and possibly fix the problem would be with Linux, so I popped in a live USB stick with Fedora 10 / KDE 4.1 on it, set the BIOS boot order, and booted into the OS I love.To be honest, this is kind of a short story; everything worked perfectly. She couldn't get online under Windows -- reasons unknown, since I don't know how to do the equivalent of an ifconfig and iwconfig and lspci and things like that on Windows, but it was clearly not a hardware issue because the wifi card was recognized and utilized instantly by Fedora 10. I was able to sign on to a network (I say "a network" because there were 10 unsecured networks in range, none of which had any indication of whose they were....but that's another story...). The screen resolution was spot on, trackpad functionality flawless, sound system (at least the output; input has not been tested), and so on. Really, no troubles whatsoever.It is worth noting that the laptop did have a "Centrino" sticker on it; meaning that all the major internal parts were all Intel. So it is not surprising that Linux worked out-of-the-box without any tweaks or mods.The e1505 has a series of extra "multimedia" buttons on it, and these don't seem to do anything under Linux. I'm sure I could either configure Amarok2 to respond to these key events, and I may play around with that next week, but I find that few people seem to use those multimedia keys so it's not high on my list of priorities. Certainly my friend hadn't even seemed to notice the extra multimedia keys at all, so I probably will end up not bothering with them.So, all week the e1505 has been running Fedora 10 off of a 2gb usb thumb drive, and after a while it has become a bit bothersome worrying about this usb protrusion. There's been a lot of traffic around that computer, too, since my friend has had a lot of family coming to visit this week, and of course all of them need to check email and myspace and facebook, etc. There is also a neighbor who comes by sometimes to borrow a cup of bandwidth whenever her internet connection is on the blink. So I was getting worried that someone might pull out the usb drive, or bump into it, and I've been amazed at how transparent to everyone the OS has been. As all of us geeks have noticed, 90% of the average computer user's computing is spent in a web browser, so it's not surprirsing that no-one has noticed that this machine is not running the same OS as their home computer -- although it is worth going on a brief tangent here to mention that Firefox has been treated as an amazing discovery for these people. All of them apparently knew only Internet Explorer but I've loaded my friend's desktop with Firefox and I've put Firefox on the e1505 and people are amazed at its ability to clear personal information when you quit the program. They haven't noticed anything else about it (like add-ons) but the privacy impresses them greatly. (Well, that, and the fact that a real live geek told them it was better than IE...)So, getting nervous about the USB drive's safety, and noticing that so far no one has noticed, much less complained, that they were running Fedora+KDE4.1, I figured it was time to actually install Fedora 10. I couldn't install it as the only OS because my friend had data on her Windows partition that she was afraid to migrate or touch because a lot of it had belonged to her husband, who very recently passed away. But the e1505 has a 12gb partition on its drive relegated to "recovery" -- I guess it's some kind of Windows rescue volume. I borrowed about 8 gb of this rescue partition and installed Fedora (I'm hoping windows didn't need the whole 12gb to rescue itself...but I figure if windows ever dies on her, she's not going to know how to utilize the rescue partition and i'd be the one called to help her, so having a linux partition on her computer will be a lot more helpful to her than a windows rescue partition).The installation went quite well -- although the first attempt failed because I had the partition mounted in /mnt and forgot about it. Whenever this happens, I seem to think it's Linux's fault, but inevitably I look around and see that it's something stupid that I've done. This time, I had Konsole open and I had su'd to root, so to a glance it appeared that root was not in /mnt and no other program was trying to use /mnt.....so I couldn't figure out why Anaconda was claiming that it could not complete the install. I finally saw that I was still root in Konsole, so I exited that and, sure enough, liveuser was hanging out in /mnt. Tee hee. After I unmounted the partition, I was able to install as usual.It took no time to install, and Anaconda even gave me the choice of which OS should be the default. I chose, with not just a little pain, the "Other" option...but I have to say that GRUB or Fedora or both execute this VERY well. To the average user, it looks like a normal boot-up; a black screen at the very start of the boot simply states that it is about to boot, and to press any key for options. When a key is pressed, the full grub menu is visible and you can choose which partition to boot to. Otherwise, the boot process continues and the Windows boot screen comes on and does its thing. This is good because it is transparent to most computer users, so it doesn't frighten them away with new options or unfamiliar menus.After it was all installed, I went in and customized it to the most Windows-ish look & feel I could. Granted, I'm not all that familiar with how Windows typically looks, but I've seen enough screenshots of Vista by now to know what the user expects: black bar at the bottom with important application icons on the far left (i put firefox and dolphin there), widgets on the right (most importantly, an analog clock), and a desktop picture with grass and sky. I also switched the KDE desktop (now 4.2, since I updated the system after the install) to "desktop" view, meaning I was able to have icons or shortcuts on the desktop like Windows users seem to have; so on the desktop, there is a Home folder, a Trash icon, and I added a Firefox icon. Since this will not be her primary partition, I did not bother with setting up an email client and all that; her primary email client is on her desktop computer. I may see if her email provider has IMAP support and get Kmail up and running, and then I'll add that icon as well.I also switched the window decoration to "Laptop", which I felt looked a little more windows-ish (certainly moreso than the oxygen default, which just looks uber-hip but would probably freak diehard windows users out). I installed all the obligatory Flash and mp3 support; I doubt she'll need the mp3 support but the Flash support has already been used (thank you, youtube).Some nice things occuring in KDE:Plugged in a digital camera (Kodak Easy Share, fyi), it was automatically mounted and when clicked upon, immediately offered to open in either Digikam, Dolphin, or None. DigiKam is a spectacular application; it lets the user stay in control of how the pictures are organized, yet provides the user with a great interface to view and tag their photos. Very impressive, and getting a lot of good use from this group of new Linux users. Once again -- they don't seem to show any interest in the fact that it's an application -- they just want to see the pics.Dolphin is getting good...really good. Managing files with it is a pleasure; it's flexible, easy to use, configurable, attractive. Is it just the Nautilus of the KDE world? I don't know, maybe it is, but I like it. It feels very OS X to me, only on steroids, and since OS X is what I knew best before coming to Linux, that is what I like.Network Manager is working great. It remembers its auto-joins and, as far as I can tell, works a lot better than whatever Windows was using.Plasma is fantastic. Really.Some new things I've learned:1. it doesn't take much to trick Average Joe Computer User out of their usual OS. Know what programs they use, make those easily accessible to them, and they will not notice that they are no longer running Windows.2. At least this particular group of Average Joe Computer Users does not go to the START menu or the K MENU or any other MENU. Put icons on the desktop. This is true within Windows and Linux.3. "Network? what's a network? Just get me on the facebooks."That's all, folks. Screenshots of final product attached, complete with a Dolphin window open browsing her Pics from her Windows partition. She may just never have to boot into Windows again...



Qemu is a free emulator for Linux, and it is powerful enough for everyday use with new features popping up with each new release.I'm not virtualizing to serve thin clients or anything fancy like that; I'm just doing the everyday hobbyist kind of emulation that one wants to do when one wants to try out the beta of an upcoming release, or when one wants to first with a distro that is not their own, or when one is doing a tutorial and needs a fresh install for pure screenshots, or whatever.Qemu at its best, IMHO, is a Command Line application. There is a GUI front-end called Qemu-Launcher. I find it unnecessary, partially because the command line options are powerful and quick enough to get your emulated host going, and partially because Qemu-Launcher doesn't seem to actually launch a host for me on my system. Not sure why -- but I'm not going to bother troubleshooting something that is redundant anyway. I find the command line interface quite enough to launch an emulated client.First thing's first: you need to install Qemu. This should be a simple su -c 'yum install' or a sudo apt-get away.

bash$ su -c 'yum install qemu'

Once that's finished, you can do a "man qemu" to see all the options that come along with qemu...or check out the qemu site for complete documentation.One of the first things I do is create a little fake harddrive for Qemu to use as its emulated harddrive. That is, if you want to actually install a distro (as opposed to just running it off of the cd) then you'll need a container file that Qemu can take over, pretend like it's a real harddrive, "format" and install onto. Since this is just a sandbox, I figure a 4gb image is quite enough:

bash$ qemu-img create -f qcow2 qEmu.qcow2 4G

Here's what we just did:qemu-img create # invokes qemu-create and tells it to create a new file-f qcow2 # the image format; qcow2 is qemu's native format; there are other choices if you're going to export this image to some other virtualizerqEmu.qcow2 # this is the name I've given my disk image...you can call yours anything you like; fedora11.qcow2 or debianSqueeze.qcow2 or whatever4G # the size of the container...give it more or less space as desiredNow, I typically use Qemu with an actual cdrom in my disc drive, because the distros I am test-driving are almost always the ones that come on the bundled disc in Linux Format or Linux Pro or Linux Identity magazines. Here's the one-liner for such an endeavour:

bash$ qemu -M pc -cpu qemu32 -cdrom /dev/cdrom -boot d -drive file=~/qEmu.qcow2

Switch by switch:qemu # invokes qemu-M pc # defines what kind of Machine you want to emulate; type -M ? to see a list of choices-cpu qemu32 # what kind of cpu to emulate; type -cpu ? for more choices. qemu32 is the one you'll probably want if you're trying out a modern OS-cdrom /dev/cdrom # this defines the location of your cdrom drive. Can be an .iso image saved on your harddrive, too!-boot d # where to boot from; the "d" option tells qemu to boot on CDROM rather than Network or Harddrive-drive file=~/qEmu.qcow2 # our qcow2 image, remember?After you issue the above command, you should see a window pop open, revealing your emulated host. First it will load its emulated BIOS and then it will boot from the actual cdrom. You can install the distro onto the harddrive image, which the emulated machine will believe is an actual harddrive (you'll know it's not your real harddrive by the size of the drive, if nothing else), or you can just run the distro as a Live distro if available.What if you didn't get a dvd with a magazine, but had just bit torrented the latest iso of a hot new release? That's quite similar; first, of course, have the iso on your harddrive. Have a qcow2 image established. And then run qemu thusly:

qemu -M pc -cpu qemu32 -no-acpi -cdrom ~/Download/F11-Preview-i686-Live/F11-Preview-i686-Live.iso -boot d -drive file=~/qEmu.qcow2

You might notice that I've added a -no-acpi flag here, simply because I've found that Fedora 11 won't boot without it. In an emulated machine, I'm not sure whether you ever really need acpi anyway, so it's probably a safe thing to turn off. Aside from that, the procedure is the same except that instead of point -cdrom to my /dev/cdrom I'm pointing it to the iso file.Some other important options you might want to define:-m 512 # allot 512mb of RAM to the emulated pc-usb # enable usb functionality in your emulated pcCheck the man page or just type "qemu" without any options for a full list of functions. There are a few video and sound and network settings that you might want to play around with.That's pretty much it. Emulation that is free and easy!


first of all, i hate printers, and pretty much have since I bought my first one and realized that they were made to not last. And although it's sort of out of style to be outraged by printer ink costs -- so much so that it's now just an accepted fact of life -- I have to post something about this...My friend was given a Lexmark z611 by her parents because they weren't using it. She asks me a cheap place to find ink. I tell her about the cheapest place I know that sells generic ink, and she goes there and to my surprise it's $20 for black and $21 for color. Meaning that if she makes that purchase, she will be spending $41 + shipping for ink for a cheap little Lexmark.Or, we found, she can go to buy.com and search around their printer section and find a printer for $48 + free shipping.Meaning that, yes, the urban legend that one may as well just buy a new printer rather than getting new ink is actually officially true now (if it wasn't already).Now aside from knowing that it does NOT cost $20 to manufacture an ink cartridge, my outrage stems from the fact that my friend would basically be kind of stupid NOT to just get the new printer. It will have cheaper ink cartridges when she does need to restock (for whatever reason, the ink cartridges for a Canon are cheaper than the ones for Lexmark z611) and it will probably print her digital photos with better quality (why she feels the need to print digital photos is beyond me...isn't that what Picasa or Flickr or Coppermine for..? just post them online and send friends and family a link). So forget concerns about being kind to the environment, or not wanting to encourage printer manufacturers to actually make printers that will last more than half a year; this is just plain, simple extortion. They will NOT give us well-made products. They will keep making cheap plastic printers that shake themselves to death every time you print something, and charge you way too much for ink, and we continue to be a disposable society.My answer? Literally, don't print. But if you can't do this and you have to print, print at your local library or computer center or office center; ie, use someone else's printer. Lexmark and HP and Canon and Epson and Brother and all those must die!!


Hi, niche market of hackers who also work in the video and/or film industry! This blog post is for you. I got an email from a big trendy "writer's store" in L.A. containing three reasons why I should upgrade to <proprietary screenwriting software> v.8Well, I thought I'd one-up them and post four reasons not to upgrade:1. CeltxMozilla codebase, incredibly powerful screenwriting software. Free. Tried and true; it's approved by me because -- yes, I actually have used it in a production environment.And the other three reasons are just cheap rebuttals of the reasons the email gave that I should upgrade to <proprietary screenwriting software> v.8: Scene View - Outline your ideas and re-order scenes in this high level overview!!Scene Navigator - Track important details with a sortable floating palette!!!Scene Properties Inspector (SPI) - Add scene titles and colors to organize the elements of your script!!!!To these I say that Celtx either already has it, or else it's just not worth gaining a gimmicky sometimes-useful-sometimes-useless feature in exchange for your freedom-of-data.There, four reasons to use the free alternative. Enjoy.


Interesting thing happened today; I got to a cafe at 09:50 and just so happened to check my email. Turns out, someone I'd thought had cancelled on an 11:00 appointment was not quite out of the game yet, and it turns out that the 11:00 appointment was on after all. That was OK...I was at the cafe, so in theory all I had to do was sit and wait an hour and she'd show up. Except for one thing....for the appointment (a Final Cut Pro lesson) to work, I needed a Mac...but not just any ol' Mac -- I needed a Mac with Mac OS X and Final Cut on it. Silly me, walking around with a Fedora MacBook all day.So I hurried back to my apartment, grabbed a spare Macbook that currently had a Fedora 11 beta install on it, popped in a Mac OS X installer disc, and started what I knew would be a LONG install. I was able to strip out as much of the extra packages, like X11 (it hurt to exclude that) and Printer Drivers and Languages, so that helped a lot, but it is still a fairly long install. It was most painful to know that I was installing things like......Address Book.app, Expose.app, Mail.app, AppleScript, Automator.app, Font Book.app, Photo Booth.app, Calculator.app, Front Row.app (well heck who ever wants to install that anyway?), Stickies.app, iCal.app, Preview.app, iChat.app, TextEdit.app, Chess.app, QuickTime Player.app, iSync.app, Time Machine.app, DVD Player.app, Image Capture.app, iTunes.app (don't get me started), Dashboard.app, Safari.app, Dictionary.app, diskutil, Disk Utility, Activity Monitor.app, AirPort Utility.app, Audio MIDI Setup.app, Bluetooth File Exchange.app, Boot Camp Assistant.app, ColorSync Utility.app, DigitalColor Meter.app, Directory Utility.app, Directory.app, Grab.app, Grapher.app, Java, Keychain Access.app, Migration Assistant.app, Network Utility.app, ODBC Administrator.app, Podcast Capture.app, RAID Utility.app, Remote Install Mac OS X.app, System Profiler.app, VoiceOver Utility.app, zsh, tcsh, mount_afp, mount_msdos, mount_nfs, mount_ntfs, mount_smbfs, mount_udf,mount_webdav and all the other little apps and utils I don't really need or want to install. OK, true I probably wouldn't have wanted to take the time to go through and pick through a list of all possible applications that were going to be installed and eliminate them, but for many of the major groupings of apps and utils, I most certainly would have loved to be able to do just that.So, when I re-installed Fedora later in the day, it was quite refreshing to see the customization that was possible, like excluding Bluetooth and Zerconf or Avahi or whatever it is, and lots of little things that I just didn't want to have to bother with.That said, the Mac OS install did happen in time, and a very-paired down FCP install also was able to get done, and I was back at the cafe in time for the appointment. Would a Linux install have gone any faster? Eh, probably not. Let's face it, it's gonna take you almost an hour to install most normal OS's....oh, sure I could have done a Wolvix install in 10 minutes....so I guess I'm wrong...I could have done a Linux install quicker. I could have had a super-simple OS on my computer, and then grabbed Blender from its repository or from the Blender site, and I would have been up and running in a few five minute blocks rather than an hour. That's pretty cool. And what delivers it to us? Choice. And what gives us the choice of how we want our system to work? Freedom.Thank you, Free Software devs everywhere.No matter how many times I have an experience like this, and think "oh it's so anecdotal and so rare -- no-one else has these kinds of experiences", I keep being reminded that it's not the rarity of the experience that matters, it's the experience itself. It's the moment where you NEED an install to take 10 minutes (15 by the time the Wolvix liveCD boots) instead of an hour that counts. Sure, everything else notwithstanding, I might not care about freedom to make tiny little distros if my life always afforded me an hour or two for every install I did and no surprise appointments. But that's not how my life tends to work, so the Linux option is a really important and welcome one.So thanks again, Free Software devs everywhere.


Fedora 8 + iBook G4. A Love Story. Installing Linux on your Mac?There are a few things to consider, most beyond the scope of this HOWTO....but let's talk distros. Ubuntu no longer releases for PowerPC, so the knee-jerk choice of Xubuntu PPC or something like that might not be a great choice. Let's face it; all support for PowerPC is pretty much going away, but there are a few distros still releasing for PPC. They are: Fedora, Yellow Dog (Fedora based), Debian, and Slackintosh. So if you're going to install Linux on your PowerPC Mac, you might think in terms of who's going to have stuff in their repositories for you, and who will be releasing updates over the course of the next year or so. And by that time, when all PPC support dies completely, you can go out and get one of them fancy new multi-core processor computers.Anyway, let's talk Fedora 8 on PowerPC (iBook G4 / 933 mhz / 1.1 gb RAM / 80 gb user-installed harddrive)The installation was straight-forward and simple, with only a few notes: I needed a Mac OS partition. Fedora will allow you to use a drive's "Free Space" to create a default partition scheme for the Fedora system.....but it's not free space until you wrench it free from Mac OS X. I figured the way to do this was to simply do a clean install of Mac OS X Tiger, called an "Erase and Install" by the Mac OS install disc. Interestingly, this does NOT erase the drive! After much experimentation, I learned that to really really erase the drive, one must FIRST boot off the installation DVD, navigate to the Utilities Menu > Disk Utilities. From the Disk Utilities, erase the volume in question. After you've erased it, partition it as desired. Designate one as a Mac OS X volume, and the other as FREE SPACE. MASTER BOOT RECORD The master boot record are the few kilobytes placed at the forefront of the physical drive which will give the user the power to boot into a particular partition on the drive. Apple's bootloader is accessed by holding down the OPTION key upon start-up. It will be familiar to anyone who has dual-booted between Mac OS X and Mac oS 9, or Mac OS X and Windows (apparently some people do this). You can use this bootloader, or you can use yaboot, which will be installed by the Fedora installation. Yaboot requires no special keys to be pressed and simply gives you the options to boot into Linux, Mac OS X, CDROM, and so on. INSTALLATION Fedora has an easy-to-understand graphical installer. The first few screens set the language, date, and time. Then it's onto partitioning the drive. As long as one partition of the drive has been designated as FREE SPACE, Fedora immediately recognizes the free space and suggests a partition scheme for its self. It also offers you the option of simply erasing the entire drive and installing itself as the sole OS, or to allow a custom partition scheme. Note that this partitioner — even the "custom" option — will NOT allow you to resize the Mac OS system if you have not already partitioned the drive yourself. It will ONLY see "free space". For example: I initially had an "erase and install" clean installation of Mac OS X on the drive. I'd stripped it down to a 2gb system; no extra printer drivers or fonts, just Mac OS X and X11. So I figured I should have about 68gb free on the drive. Not so! Only about 14gb were really "free space" and so when I went to install Fedora, I only had 14gb to play with. You MUST make a partition of FREE SPACE in order to maximize the room for your Fedora installation, or possibly switch to a terminal during Fedora installation and run cfdisk or some such command-line partitioning program...but let's keep it simple. Also, take note of what /dev/hda your Mac partition is called here. You will need to know it later. If you don't get the hda number, that's OK...but it's easier if you grab it now and write it down. For example, mine was /dev/hda3 After the drive has been partitioned with a fairly typical Linux partition scheme, Fedora then asks you to set up your Firewall (what services you'll allow IN), and configure SELinux, which is a security system, and to create a user account. Finally, you are asked what kind of programs you'd like installed; you have your choice of Office & Productivity, Software Dev, and Web Server. And then the installation begins. Because there are big software programs being installed, it will take longer than, for instance, a Mac OS X installation, which installs pretty much just an OS. So wait for it. After this was finished, I was taken to the Log-In? screen and I was in business. If you are dual booting, you can then boot off the Mac OS X installation disc and install the Mac OS X system on the Mac partition. The master boot record is untouched, and the Apple bootloader recognizes the Linux partition as a bootable option - complete with a Penguin icon. LEOPARD INSTALL 933mhz G4 technically will take a Leopard installation. But not if you have only 256mb RAM. Fedora 8, released around the same time as Leopard, installs without complaint. Kinda nice. USER ACCOUNT From what I can tell, this initial user account, just like in Ubuntu and Mac OS X is a hybrid User/Admin identity....so if a bad guy finds out your user password then the bad guy just found out your root password by default. So after I've installed and set up my system, I set up a second user that I'll use on an every day basis with a unique, non-administrative password. To do this, it's quite simple: go to the System Menu > Administration > Users and Groups. The control panel that comes up is self-explanatory. WIRELESS Airport Extreme cards use a Broadcom 43xx chipset, notorious for being incompatible with Linux. My iBook's Airport Extreme card was no exception. There is, luckily, a way around this problem. It's intense, but it can be done! My research into this problem suggested that I had to "flash" new firmware onto the Airport Card, which seemed a frightening prospect; could I ruin my card entirely? If the card didn't work with Linux, could I at least go back to Mac OS X and still use the card or would it then not work with Mac OS X either? Would I have to learn C and talk in binary? To fix the Airport Extreme card, one does NOT have to "flash" the card. One instead is extracting its firmware from the card and copying it to one's Linux system, thereby enabling Linux to talk to the card. It doesn't write any new code to the card, it doesn't ruin it, it doesn't really touch the card at all. The Airport Express will still work in Mac OS X.....and it will also work in Linux. I gathered a number of tutorials on the subject; the two most significant were from Yellow Dog Linux (now only a google cached page) and one from linuxwireless.org I also received quite a bit of help from linuxquestions.org and two blokes by the names of f_newton and hellork of the #fedora IRC channel on freenode.net Here is exactly what I did: 1. Whilst in Linux, discover the exact firmware version on the card in our system: $ lspci | grep -i broadcom Mine returned this: 0001:10:12.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03) 2. Now we have to go get the software that will go into the card and get a copy of its firmware for us. I don't know the legalities of this, but I know that the resulting file cannot be re-distributed or else Broadcom shareholders would, apparently, have hemorages. Why? no-one knows. berlios.de has the software you'll need. To complicate matters, there are two versions, so get both. To be safe, we'll get copies of all the different firmware options and just leave it up to the Linux kernel, smart as it is, to use the one it finds most appropriate. 3. Now we must compile the code so we can use the software to get the firmware. First extract the downloaded files: $ tar -jxf bcm43xx-fwcutter-006.tar.bz2 $ tar -jxf b43-fwcutter-008.tar.bz2 Second, compile the code: to compile the bcm43xx program: $ cd bcm43xx-fwcutter-006 $ make to compile the b43 program: $ cd b43-fwcutter-008 $ make These should result in lots of feedback code telling you that everything went well; if you see the word "error" or "failure" anywhere, it's a bad thing and you're doing something wrong. But if you're doing well, then you'll have a little program called bcm43xx-fwcutter in one folder and a program called b43-fwcutter in the other. Now you're ready to go steal some Broadcom code. 4. To get the Broadcom code, you'll need to mount the Mac OS partition into your Linux system. (If you don't have a Mac OS X partition then you'll need to go to some machine running Mac OS X with the exact same card and do a slight variation of what we're doing here. You'll get the idea of what's going on pretty quickly, I think.) Essentially all we're going to do here is go into the Mac system, located the firmware in its system, and copy it into /lib/firmware on our Linux system. Here is how to mount the Mac OS X partition: First we need to make a place for the Mac OS X partition to mount: $ cd /mnt $ mkdir macos Now, you need to know the device name of the Mac OS X partition. This is not always easy to find out, but it ought to be "hda" and some number. The way I ended up doing this was simply by trying this: $ mount /dev/hda1 /mnt/macos and if that didn't work, I tried mounting /dev/hda2...then I'd cd into /mnt/macos and look around; if there was nothing there, or at least nothing that was obviously my Mac partition, I would then try /dev/hda3, and so on. It turned out that hda3 was the correct device to mount for me. So now we can begin to steal code. $ ./bm43-fwcutter -w /lib/firmware/ /mnt/macosx/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2 Note that each command is really on one line; it's just a really long command. And you'll want to get the older firmware just in case... $ ./bcm43xx-fwcutter -w /lib/firmware/ /mnt/macosx/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2 This is a pretty quick process, and the end result is that you'll notice files in /lib/firmware by the names of b43, b43legacy, and a whole series of files starting with bcm43xx. 5. Now we should add drivers just in case they're not already in the distro we're using. They can be downloaded from: http://downloads.openwrt.org/sources/broad...80.53.0.tar.bz2 http://downloads.openwrt.org/sources/wl_apsta- You'll need to untar these and place the document called "wl_apsta-" in the BOTH the b43-fwcutter-008 and the bcm43xx-fwcutter-006 folders. Place the document called "wl_apsta.o" in the b43-fwcutter-008 folder. 6. Do this as root: For bcm43xx: # bcm43xx-fwcutter -w /lib/firmware wl_apsta-3. 130.20.0.o For b43legacy: # b43-fwcutter -w /lib/firmware wl_apsta- and for b43: b43-fwcutter -w /lib/firmware wl_apsta.o 7. You're done! The hard stuff, anyway... I rebooted my system so that the kernel would pick up on the new drivers. And when the system was back up, I discovered that, alas, I had no wireless connection. I had kind of expected this because all of my wireless configuration experience had been with Slackware, Debian, and Ubuntu...so the /etc folder was pretty foreign to me on a Red Hat system. But the troubleshooting tools are still the same, right? # /sbin/iwconfig revealed that there was an apparently active wireless device on something called wlan0, which sounded quite foreign to me...but certainly would make sense if that were my wireless card. However, try as I might, I could not get the thing to attach itself to my network. After much trial and error, I realized the problem was really with my network, in a way. Whatever WPA key my network was using just wasn't agreeing with what I was doing in iwconfig — it has to do with wpa_supplicant. Anyway, solutions were found having more to do with network configuration than with the card or drivers itself. No big deal. Just remember that while getting the card online, it certainly helps to have an OPEN network so that the security protocol you're using is not a variable! Don't waste 3 hours like me trying to figure out why your Airport Express Card isn't working only to find out later it's your choice of WPA key. Another invaluable troubleshooting tool was a simple $ dmesg | grep bcm and $ dmesg | grep b43 as well as, obviously: $ lsmod From all of this, I found out that in fact the modules HAD loaded upon reboot, so my iwconfig was not lying. There really was a card called wlan0 active and alive in my system. A sure-fire way to see if the card is sending out signals and receiving signals was to do this: Bring the card onto the network: # iwconfig wlan0 essid NameOfNetwork then scan the network: # /sbin/iwlist wlan0 scan ...which returns a LOT of data about the surrounding wireless environment — all the networks in range, signal-to-noise, etc. Very handy! Network Manager Applet Somewhere along the line, it struck me that I was doing everything the Slackware way, when I'd really kind of expected Fedora to have a more Ubuntu GUI kind of way of doing things. Not that I mind so much, but it was odd because Gnome is well known for its friendly graphic interface. Turns out that I didn't have the nm_applet enabled. The nm_applet is the "Network Manager" applet — a little icon that sits at the top of the screen and helps you find the list of networks around you, which one you'd like to join, and so on. To turn this on, go to the System Menu > Administration > Services and turn on the two nm_applet services there. You may have to prompt it to start in the terminal or a reboot, but the nm_applet will from then on appear in the top right corner of the screen and help you locate your networks without resorting to iwconfig and iwlist. Fedora And so my iBook G4 now happily is running Fedora, and already I've installed Blender and will soon enjoy a much more robust support for a much wider array of codecs than in Mac OS X. Say good-bye to transcoding! The only complaint I have is that I do now have as much RAM as I should have to run Fedora well. But I have ordered an upgrade and will soon be enjoying a faster system. All in all, I'm quite impressed so far with Fedora, and am happy to be running it. I'm also quite glad to have a small, portable machine like this iBook running Linux; taking my Sony Vaio out is OK, but the iBook is even smaller and lighter, so it's kind of nice to have it running a proper form of *nix with all the great software that comes along with it. Fedora 8 PPC - I applaud you! And the people over at Berlios — brilliant work for cracking the Broadcom code!!


Maemo UI

I've had my Nokia N800 for 2 years, I think, and have been enormously pleased with it. And of course with an opener like that, there's a big "but..." coming up.......but...There are certain things about the N800 that annoy me a bit. I wouldn't complain about these things if Maemo was a purely community-driven; in that case, I'd just wait another two years until after I've finished school for programming, and pitch a fix for the issue myself. But Maemo has a corporate entity making money off of it; people pay a few hundred bucks for these Internet Tablets With Maemo, and when you pay that kind of money, you are -- in a perfect world at least -- paying for a good, solid, usable, well-designed OS just as much as you are paying for the hardware. You should be able to show off your $400 Nokia to friends without having to explain why the UI is kind of clunky here and there.So, in short, I guess my point is that Nokia needs to get around to either giving Maemo some attention, or else just switch to Qt or e17 already and really make me happy.IMHO, Maemo doesn't seem to know whether it is a stylus-driven or a finger-driven interface. Witness, for example, the very LARGE jumbo-sized big buttons in the main application menu or the Application Manager (the add/remove software interface), the media player, and many other places throughout the UI. And yet -- even in the same exact application, the scroll bars are teeny-tiny bars crammed right up against the edge of the screen. Sure, I CAN grab onto the scroll bar with my little finger and scroll around, but it's uncomfortable and awkward and discourages me from doing so -- and yet the idea of using both my finger and the stylus just to navigate around the device is tiresome as well. I end up generally just using the stylus because the finger action is so frustrating that it just ends up annoying me, and yet those big jumbo sized buttons mock me while I use my needle-sized stylus to press them. It's like they're saying "go ahead, use your finger to press us, you'll like it!" and then slapping me back down when I need to scroll.The answer has been found in two community Maemo applications. So really there are two possible answers:1. No scroll bars.Fennec, the superb and truly gratifying Mozilla-Web-Browser-For-Mobile-Devices simply foregoes the need for scroll bars and lets you scroll around with your finger on the screen. I don't know if this innovation must be credited to a certain overly-hyped phone or if it is something that existed prior to that, but it's really a smart solution and I'm liking Fennec a lot, largely for this reason alone.2. Big scroll bars."Personal Application Launcher", an applet for Maemo that allows the user to put icons on their little Maemo desktop, has a configuration screen that features really big scroll bars. And guess what? they're great. Finally, nice big scroll bars that a finger can grab onto and move around. Hopefully more Maemo applications will go this route soon because I think when you can't swing having no scroll bars at all, this is the way to go.That's the only real complaint I have about Maemo in terms of user experience. I have a complaint, I guess, about Nokia but it's muddled up with other issues and would confuse things if included in this post.Anyway, just some ideas on how to finesse the UI a bit better for both looks and usability. Screenshots attached.



Funny thing happened to me today. I was demonstrating some software to some clients/students and of course some things went "wrong" and I was able to use these little mistakes as examples of, well, what can possibly go wrong when one is working on something. At the end of the lesson, they were all probably a little overwhelmed but they were also impressed with how well I knew the software I was demonstrating (which, when you think about it, is not really something to be impressed with; if I hadn't known it, I wouldn't have dared demonstrate it...but such is the advantage of being in the teacher position: you look really really smart) and so they asked me "how do you know so much about this!?"I told them simply that it just boiled down to using the software a lot.And when I thought about it, I realized that, in fact, it's really true. Using the software a lot -- and I mean, a lot -- is how one becomes an expert at something. And furthermore, the more diverse situations in which you use the software leads to a more diverse expert.Example:A friend of mine once asked me why I was always installing Linux onto everything, or even installing different Linux distros onto the same computer, seemingly over and over. I don't think I had an answer then, but now I realise that installing Linux on lots of different machines, or different distros onto the same machine, is simply practise. You never know what kind of wacky errors you're going to run into when you install an OS, so never stop installing and eventually you'll either have seen almost every error in the book, or else you'll be familiar enough with the general kinds of errors and you'll be able to make an educated guess as to how to get around them.Same goes with, say, Blender or GIMP or ffmpeg. Use these little applications all the time for everything...and one day you'll realise that there's simply nothing you don't know how to do, or nothing you can't figure out how to do within a reasonable amount of time.Same goes for compiling software, too. And even boring (to me) stuff like office applications and spreadsheets and... stuff.In fact, the same goes for computers in general. Use computers (meaning use Operating Systems -- all different kinds) and eventually you can pretty much find your way around any OS.And now...to macrocosm-ize this idea, UNIX PHILOSOPHY style -- Yes, the same is true of Life. The more people you deal with and the more weird situations you get into, the more you start getting the hang of things. "Social Engineering"? whatever...it's just the practise of living and being familiar enough with the Way Things Work that you can do crazy and cool stuff without, more or less, Fear. A friend once told me that after he tried sky diving a few times, he lost pretty much all fear. I told him that until he'd produced a film with other people's money, he had no idea -- but the point is, it's the risks, sometimes small and trivial, sometimes big and threatening, that really changes our perspectives and makes us fearless.So, whatever that all means to you... The point is, practise makes perfect. Nothing new, just an observation that an old adage is indeed correct.


I have never been much a user of photo management applications. Back on the Mac, the application I hated second to iTunes was iPhoto, and it really frightened me away from photo management tools. I knew, at the time, that I definitely liked Ad0be's Lightroom or, heck, even Bridge, better, but all in all none of those really fit my workflow and I never pursued those.Anyway, one thing I've learned lately is that if you actually go out into the world and start using your linux laptop for more than just learning neat linux commands and networking tricks, you start to get kind of proud of the OS, and you start liking to really pimp it out so people looking over your shoulder, or using your laptop to check their email, are impressed with what they see and experience. This was not important to me for a long time, but lately I've been in the position where a lot of people have been around me, asking me to fix their computers, or asking to use mine for some task, and I've started to kind of enjoy seeing them fly through linux without the awareness that they are in fact using linux.So, as I've posted previously, using lots of plasmoids and pimping the desktop has been fun, and it's been wildly successful. Everyone is using linux+firefox quite blissfully. And then everyone started breaking out their digital cameras.While I am fine using my file manager and/or gwenview and/or gimp as my photo management tool(s), that just looks cumbersome to people who want to see the 100+ photos you've just taken on this-or-that occasion. So I figured it was time to try out a proper photo management tool, and since digiKam seems to be the de facto KDE app for that sort of thing, and there's been a lot of activity on digiKam's rss feeds and facebook fan page, so it was digiKam that I tried. Turns out, digiKam is really really nice. No -- really. As I've said, I've used iPhoto (God help us all), Lightroom (yawn), Aperture (oh noes!), and Bridge (hm), and now digiKam. What can I say about them all? Well...for my money, digiKam all the way. iPhoto is a joke and no one should ever use it. Lightroom is reasonable but proprietary. Aperture is also reasonable, if not over-complex, and proprietary. Bridge is...well, not really a photo management app. Here are digiKam's features, IMHO:1. I remain in control of my data; no hidden database folders, no pwnag of how I manage my photos in the backend. It simply intelligently looks into whatever folder I designate as my photo folder, and shows me, in an environment dedicated to viewing, organizing, and editing photos, what is in that folder and its subfolders.2. Themes. I know that proprietary apps can't give the option of changing its look to the user for fear of losing their precious brand image...but digiKam's themes are really helpful. Lots of different looks that are anything but frivolous aesthetics; this is about how you want to see your photos so that you can better present and edit them.3. Editing. digiKam has a lot of editing tools integrated into it, so for simple corrections, there is no need to go over to GIMP or Krita. It can actually be done within digiKam. And yes, your modifications can be saved as a new version of that photo.4. Intuitive. People come to digiKam and somehow they know how to use it. Not every feature, of course, but if they want to sit down and look through an album, they can do it easily and quickly.5. Need to carefully examine two very similar photographs? Use the Light Table (keyboard shortcut "L"); you can bring a few photos onto your light table and then zoom in and pan around the photos synchronously. Very nice feature.6. Heck, all the "usual" features are in digiKam -- rotate, edit metadata, aspect ratio crop, filter view, ratings, slideshow (with openGL transitions if desired), etc.7. Geo Location. Yes, it can pick up the metadata regarding the location of the photographs and map it out on Earth for you. This is nice, I guess...not something I'll use any time soon....but I will say that the neat little globe that you can grab and turn did impress people. It always boils down to eye candy, doesn't it?8. Want to send a photo to your online <social networking> account? digiKam probably can do that for you. The export menu (yes, it justified its own dedicated menu) is populated by practically every major site you can join; Facebook, Picasa, SmugMug, Flickr, general HTML galleries for you to post yourself, etc. No, sorry, you can't export to myspace or mobileMe...lulz.9. Desktop integration. It's a "K" app, and KDE is all about integration, and they do it well in digiKam. There's the option to open a photo in the file manager. There's the option to view a photo from your file manager in showFoto (a digiKam module, I guess). And most importantly, there's the usual KDE structure of the application itself. Tabs down the side of the window to bring up new options, clear and intuitive menus, qt4 movable toolbars, and so on. I started it up and felt very at home in the app, having been a KDE user now for a year or two.All in all, this is a really powerful and satisfying application. It has not failed to impress me -- a user who does not use photo management apps, nor my friends -- users who expect certain things out of a photo management app. Those are two tough audiences, so, good work digiKam team!


slackware 12 on sony vaio vgn-n250n - a love story _________INSTALLATION ___________ So I downloaded and installed Slackware 12. First, I backed up the stuff I had on the computer just in case I screwed it all up. I didn't have much personal data on there, so it all fit onto one CD-RW. My harddrive was already partitioned, so I didn't have to do anything except define for the installation which partition I would be using. In my case, it is the /dev/sda1 partition. Linux also wants a SWAP partition; that is, a small partition for, what we in the Mac world would call Virtual Memory. I already had a swap partition, so I just pointed Slackware 12 to it. It is worth noting that I might have three distros of Linux running on my notebook but I only need one SWAP. I also have a tiny little partition at the front of my drive to serve just as the Master Boot Partition. This is where the boot loader exists, so that I can choose what partition I actually want to boot into. This is akin to holding the OPTION key down during starting Mac OS X and choosing whether one wants to boot into one partition or another, or into OS 9 back in the old OS X days. Other than these details, installation was as easy and friendly as installation on any system, minus the pretty graphics. __________SETTING UP X________________ The system was installed. I logged in as root and began setting up a GUI environment because I figured it’d be somthing easy that I could get out of the way quickly. Because of my NeXTbook project, I was really familiar with X11. And setting it up in Slackware 12 was, as expected, pretty easy. Compared to what I was having to do with my NeXT project, it was actually really easy. Slackware 12 includes a xorgsetup script that prompts the user for screen resolutions and refresh rates. Sony does not publish any of this information - I have read through all their documentation and can attest that it is nowhere on their site or in anything I received with the computer itself. To find it all out, I had to reboot into Ubuntu, look at the auto-detected settings that Ubuntu had generated, write those down, and enter them in as my set up in Slackware. Thanks, Sony. As I mention in my previous post, the “FINDER” post, in Mac OS X the Window Manager is quartzWM. I guess we would generally or flippantly call it Aqua. Anyway, whatever it’s called it generates and controls everything we see onscreen. If one tries to run X11 on the Mac, quartzWM does its best to control X11, and getting X11 away from quartzWM is a real trick (which I have figured out and will detail in the forthcoming NeXThack episode of The Bad Apples). We generally think of everything we see as THE DESKTOP or THE FINDER, but they are very separate programs; see my previous post for details. The Finder, proper, is the “File Manager” of OS X and simply gives us access to graphic representations of our files. There is a published hack to Quit the Finder and have no access to one’s files except through line commands in the Terminal. So, on my Slackbook my Window Manager is Fluxbox (which, unlike many window managers for linux, does not model itself at all after Wind0ze but is much more like NeXTstep). I have not configured a file manager for it yet, because I happen to know that I have many choices, so for now I will access my files via my xTerm (Terminal). __________WIRELESS CARD DRIVER_________ Now I had to install the wireless drivers. As I said above, I found that the drivers I needed were included on the Slackware DVD, as were some very clear and helpful instructions (much more helpful than Intel’s documentation included with the drivers). So I installed the drivers easily, without a hitch. Well almost: By now I was familiar with the usual Unix installation commands: % ./configure % make % make install Intel’s documentation told me to install the ipw3945d daemon by simply entering %make But that was wrong. I trusted them at first, and it didn’t work, so I went back and typed % make % make install And that worked. Otherwise, it all went smoothly. I rebooted to verify that the ipw3945abg card was really being recognized, and by reading the screen during bootup, I saw that everything was loading fine. Very exciting! But, strangely, when I tried to telnet into my freeshell account, nothing happened. Well, obviously my card was being recognized, but it wasn’t actually being used; it wasn’t on my LAN. Hm. _________GETTING NETWORKD_____________ I did a lot of research and found out that there were three commands relating to getting one’s networking device up and running. These are: % iwconfig # which is wireless-specific % ifconfig # which is for all network devices % modprobe # which loads a “module” into the kernel; in Mac terms, it would load an “Extension”. So I learned from a 2004 posting on a linux forum that once a wireless card driver is installed, all you need to do to bring it to life is to type this series of commands: % modprobe ipw3945 # which brings the module into the kernel. I know the name of the module is ipw3945 from the driver documentation % iwconfig eth1 essid XXXXX # assigns the card to a network; name is defined by me in the Airport Setup Utility % iwconfig eth1 channel 10 # because I set my Airport to be on Channel 10 % iwconfig eth1 key XXXXXXX # where key = the HEX code (or whatever) and NOT the ascii text I typed into my Airport Setup Utility. This, I discovered only after much poking around in the Airport software, in which there is a small, insignificant-seeming button that tells you “Oh, and by the way, if you’re not using an Apple you need to enter THIS code, not the passphrase you just created”. Oh. OK. % ifconfig eth1 up # to bring the network device up % dhcpcd eth1 # to receive the DHCP information from the wireless router. And this series of commands worked perfectly. I was suddenly online; I started the GUI, took a look at Firefox - and sure enough, everything was fine. I was ecstatic, and decided to take it one step further and create a shell script that would do all of those commands for me so that all I’d have to do is type one word. And so I did; I wrote a little script, made it executable: % chmod u+x ipwscript and tried it out. All I hade to do was type “ipwscript” and I was online in milliseconds. Well, at this point I pretty much figured I’d reached the pinnacle. Little did I know...... _____________ADD USER ACCOUNT______________ There’s a script program included with Slackware that prompts you as root to create a user account. I looked up in my Unix reference book to see if there was another way of doing this - I’m sure there is, but it doesn’t really matter. Obviously any usable Unix system is going to provide you a way to create a user account, so I just used the Slackware script. It made creating a user account very easy; as easy as doing it in Mac OS X except, again, without the graphics. To test everything out, I rebooted and logged in as user. X started up fine, but when I opened up Firefox, nothing happened; I was not online. So I typed in my magic script “ipwscript” and....again, nothing. Apparently the commands contained in my script were root-only commands. I struggled with the “sudoers” file in an attempt to give myself as User permission to initiate iwconfig, ifconfig, and modprobe — but it didn’t work. So I need to study “sudoers” permissions more. But in the meantime, I had the choice of either learning sudoers or just fixing the whole wireless problem altogether; obviously one shouldn’t have to type in those iwconfig commands (even if I did hack it down into a one-word trigger) if one doesn’t want to. So I did some research and discovered that what we Mac pros would call our “Login Items” is, in Linux, a collection of configuration and init files contained in the /etc/rc.d directory. ___________AUTOMATION________________ The /etc/rc.d directory contains two kinds of files. There are rc.XXXXXX files, and there are rc.XXXXXX.conf files. The conf files are what we edit, providing data that will be read by the rc.XXXXX files, which are basically scripts themselves and are executed during bootup. The first thing to do is to tell the computer that there is a wireless card in existance. To do this, add to /etc/rc.d/rc.modules this: /sbin/modprobe ipw3945 OK, that loaded the module or the Extension. The next thing to be loaded during bootup are the iwconfig The default /etc/rc.d/rc.wireless.conf looked like this: INFO="Any ESSID" ESSID="Any" ;; And so I changed it to read: INFO="Any ESSID" ESSID="XXXXXX" KEY=XXXXXXXXX ;; These changes essentially knocked out the need to do all of my iwconfig settings. So I rebooted and <Either I cannot spell or I am so unoriginal that I re-used a lame internet meme that has no value whatsoever to these forums and have been wordfiltered>ched as it booted. Everything seemed to be loading just fine. It was detecting the card, it was bringing it into the kernel....but when I tried to get online, it didn’t work. I typed: % iwconfig and looked at the results. It was all perfect; everything that was there when I was online was there now. So the problem had to be with the ifconfig and dhcpcd steps of my little getting-online command sequence. So I typed: % ifconfig eth1 up % dhcpcd eth1 and sure enough that brought me online. So, how to get THESE commands to occur automatically during boot? Further research was required, so I typed % ifconfig and compared the results of “ifconfig” while I was online to the results of it while I could not get online. Everything looked the same, except that when I couldn’t get online there was an entire line missing; this line contained the INET ADDR, the BCAST, and MASK. To fix this, I opened /etc/rc.d/rc.inet1.conf and - sure enough - noticed that the variables reserved for eth1 were all empty. So...... I plugged in the numbers for: IPADDR (ip address; not really sure if I need this because it’s overridden I think by DHCP but...whatever) NETMASK (the usual that means) and I changed USE_DHCP="" to read: USE_DHCP="yes" Save. Reboot. And I'm online automatically as Root and as User. It was a beautiful, wonderful thing.


...has been found.My friend "sooka" and I have almost identical computers; I have a black macbook and she has a black macbook. When sitting in front of it there is no distinguishable difference (viewing the back of the screen on mine would reveal a whole host of linux and FSF stickers, but from front view they are the same).Sooka regularly sits down in front of my computer, thinking it's hers, and starts using it to check her gmail and facebook accounts, etc, and I thought for a few weeks that it was kind of cool that she was so open to using Linux.Then I realized that for two weeks straight, she never even realized she was using my computer and not her own. Yes, hers runs MacOS X. Yes, mine runs only Fedora 10 + KDE 4.2 ...and yet, she never noticed the difference.Yes, ladies and gentlemen, the proverbial average Joe User has been found, and he is a she, and she is named sooka. Firefox on Linux and Firefox on MacOS X are apparently similar enough (although to me they look completely different) that she never noticed that on my computer there is a blue kicker at the bottom of the screen and on hers there is a fancy-looking dock at the bottom. It was only after she tried to watch a youtube video on mine (I keep flash off my system, thank you) and I mentioned that I didn't like Flash, that she realized she had been using my computer quite frequently for the past two weeks. And now she knows to look up in the upper-left corner of the screen to see if there is an apple logo or not. That is the one indicator for her as to which computer she is using.Is she oblivious? No. Sooka holds a bachelors degree and is a writer and has a vocabulary that has me scrambling for contextual hints to decipher what she's saying. This girl is S.M.A.R.T. But outside of a web browser (she's a longtime internet junkie), the concept of an operating system and things like that...well, it just isn't something she thinks about. So.....my guinea pig has finally been found. This is that mythical average user I have been looking for. And amazingly, she does FINE on Fedora 10. Granted, she doesn't do MUCH on my computer, but when I tell her to go to Firefox, she knows to click on the task manager button with the firefox logo on it to bring it to the front (she's also a Windows user so the task manager concept is not as foreign to her as it was to me when I started with KDE), and she seems to be able to navigate her way around the system well enough. Word is something I have yet to convince her to try on either Mac or Windows; she seems convinced that Word is only Word when run on Windows. And no, Word 2007 or 09 or whatever the latest one is, doesn't count. It has to be the previous version (whatever that one was) or it just isn't Word. Um, whatever. But overall, I told her to just pretend like Linux was windows, and I think that solved a lot of usability questions for her; the Right-Click habit took over and everything became obvious. Now for me, the idea of Right-Clicking is STILL something I'm trying to get used to, but for her it is a familiar old tradition. So, Fedora 10 and KDE 4.2 appear to be winners for Average User, and Firefox...once again....as always....F T WIn fact, cross platform free software FTW. Get them hooked on the app in OS X or Windoze and then do a fast switch of OS's, and they will be using Linux in no time.


I speak of course of Blender. Blender is one of my favourite apps ever. I use it, I love it, I am constantly amazed by it.But the one thing I'm really looking for in Linux, lately, is a really solid video editor. Yes, Blender can edit video...but..just because it can, doesn't mean it should -- at least in its present state. Let's get a few things straight and then move on to the pretty pictures:1. Blender is solid code, a robust and stable app, and absurdly powerful.2. Blender's current Video editor is technically sufficient to edit, but does not really have an interface designed exclusively to that purpose.3. As such, Blender would pale next to an Avid or Final Cut Pro workstation.The good news: in order to become the best video editing app for Linux/osX/Windows all Blender needs is a UI designed for the video editor, and a few patches to provide a few new functions that any professional video editor would expect.The bad news: I can design interfaces, but I can't actually program [yet]. Therefore, this is a post all about vaporware -- until a Blender dev (I am in contact with a few but can always talk to more!!) jumps on this idea.The idea is essentially this: design two interfaces -- one for the home video hobbyist (the iMovie, if you will, of Linux) and one for the video professional (the Final Cut Pro or Avid Express of Linux). Do not FORK Blender, as such, but simply provide an alternate interface for it, geared toward video editing.And now the pretty pictures:First, the home user version.Proposed Title: "Blender Movie Maker" or "Video Blender Lite"Features:1. Upper left quadrant is the preview window where you can audition video clips and lift good segments out of your hours of bad footage.2. Left quadrant also doubles as a file browser so that you can find your footage on your harddrive3. Upper Right Quadrant is your Target window (sometimes called a "canvas") where you get to see your movie as you edit it together.4. Middle of the screen is the timeline with audio and video and effect regions. You can make this as simple or complex as you wish; if you are getting close to being a professional editor, you have the capabilities to do multi-track editing. If you are just interested in stringing together the good parts of your home movies, then you can do a simple one-track edit.5. At the very bottom, we have thumbnails of all the cool effects you can put on your footage, like glows, blurs, fades, distorts, et cetera. Most of these effects already exist either in Blender or from independent programmers but can be downloaded and used for free (you can find them from the Blender site). The one thing we might want to look into is a simple and easy-to-use text generator but we could also argue that generating text in Inkscape and bringing it in as .png's would make more sense, too, which works for me.6. And that's it. Easy, elegant, and satisfying.blenderMovieEditor.pngNow, the professional version.Proposed Title: "Video Blender" or "Video Blender Pro"Features:1. pro editing environment with screen presets for rough cutting (would have easy access to video preview of raw footage), editing (seen in the picture), color correction (easy access to effects and color filters), and a screening room (intended for viewing the cut in a larger movie window, with fewer distractions on screen but with text editor open to make notes as you watch).2. video editor, not audio editor. Audio needs to be functional and in sync but trying to copy Final Cut's bloatware tendency to include audio editing capability is plain silly; it doesn't work well in FCP and it doesn't belong in a video editor!3. no video capture. Again, Avid and FCP include video capturing in the editing app. Bad idea. ffmpeg imports video quite well so Blender has no need to bother with that.4. SMPTE timecode given preference - video and film editors work in SMPTE not in an endless count of frames like many animators and motion graphic designers do. So videoBlender needs to give preference to SMPTE, and it will have counters so that the editor has quick reference to timecode.5. Customizable timline - video editors stare at strips of video all day long and it all starts to look the same. It seems silly, but color coding the video clip in the timeline is hugely helpful yet no video editing app has this as a feature. Let's put it into videoBlender.6. Screen Real Estate - Most video applications like to leave lots of windows open so you can be impressed by all their neat buttons blinking lights. videoBlender will conserve your screen real estate by using the upper left quadrant as a multi-purpose window (it can be your file browser when you need to look at files, it will be effect editor when you need effects, it will be node compositor when you composite, it will be the preview window when you need to preview a clip). The interface will still be customizable as in Blender, but the preset at least will be conservative on space.7. Intuitive interface for noobs, keyboard shortcuts for pros. There is a button row in the middle of the screen so that newcomers ca learn the tools. We can have keyboard shortcuts married to these buttons so that they are not necessary after you get to know the app.8. Easy Export - it's easy to render out to a file in Blender now, but it does involve navigating through a lot of mysteriously named buttons. This will be made simpler by excluding the 3d-modeling specific options.videoBlenderSpec.pngHere are some major features pointed out:videoBlenderFeatures.pngAnd here are the buttons explained:videoBlenderButtonTips.png----Comments, critique, further suggestions are all welcome. Yes, I'll be working on more UI specs later, to further detail various aspects of the application.Please spread the word about this idea if you like it, especially to all the super savvy Blender dev types out there! I have been told that the current Blender code is almost ready to be able to do this kind of "interface remix", and with just a few simple patches (some of which already exist, from discussions I've had with devs) the little extra functions that I think a video editor should have can be a reality.


A quick note. I have a friend with an appleTV who is constantly perplexed as to why her movie files won't work with it. I told her that the easy answer is that Apple doesn't want her to put her own movie files on the AppleTV; they want her to buy and rent movies from iTunes. That's the quick, easy answer. The other answer is that Apple has 1. made it incredibly restricted as to what the AppleTV will play (and don't tell me it's a hardware-imposed limitation; I know better) and 2. AppleTV has written a marvelously user-unfriendly interface for the appleTV.1. Playback limits.From their site, this is exactly what you can playback on an AppleTV:H.264 up to 5 Mbps, Progressive Main Profile. up to 1280 by 720 pixels at 24 fps, but only up to 960 by 540 pixels at 30 fpsMPEG-4: up to a mere 3 Mbps, Simple Profile. Up to 720 by 432 pixels at 30 fps.Sound can only be AAC with a max bitrate of 160kbps.All extensions must be .mp4 .mv4 or .movAnything purchased from iTunesIf I'm calculating this correctly, that means that the appleTV has two formats it can kind of play. Now, for a box that is sold as a video playback device, for some reason this sounds phenomenally bad. And look at the bitrate limitations -- the h.264 limit of being <5Mbps seems somewhat ok, except that it really isn't, but the mpeg4 limit of <3Mbps is just laughable to me. <3Mbps at 720x432 ?? That's not even DVD quality.And anyway, you're telling me this device can't play a 1280x720 movie at 25fps?And it can't play at least an Xvid or a Theora?? both formats have Quicktime components available, so could be played by the device if only the .component files were added...but Apple chooses not to ship with them (even as an unadvertised easter egg) and prohibits the user from adding the components for themselves. Wow, how horribly, inconceivably restricted. You couldn't GIVE me one of these devices. I'd rather just buy a cheap mini PC, slap Linux+XBMC on it, and be done with it.And in fact, that is what I am going to do, as soon as I get the chance. I'll be loading Linux onto the appleTV, by hook or by crook (and I have a feeling it will be by crook, load XBMC onto it, and then my friend will be able to throw all of her theora and xvid and even matroskas onto it without a second thought.A quick note on the other thing -- the horrible interface. I've written plenty about this before, so I'll only mention some of the newer things I've noticed. First of all, the appleTV fails to tell the user WHY it cannot sync a certain media file from their iTunes to the actual device, it just says that it can't because the file is not a movie file. And yet if the user double-clicks on the movie file in iTunes, it will play as expected. Clearly that is not a helpful error message. Also, there's an issue where a mysterious "error 3689" (google 'error 3689 apple tv), which tells the user that it cannot sync due to a port error. It's got something to do with Apple's firewall and has been appearing more nad more frequently. At first I thought this was a subnet issue, but even when I set up a barebones network environment and it still gives the error every so often.So ,yes......Linux on appleTV -- coming soon!


For quite a while, I was fine with my Slackware system not allowing normal users to mount external drives or optical discs -- because I very rarely used external drives or discs under Slackware. Lately I purchased a small portable drive that I am using to organize and keep my personal data, so I've been moving a lot of stuff from DVD-Rs to this drive, and it started to become bothersome to "sudo mount" everything and then "sudo umount" and enter the passwords and the device locations and mount points. So I decided to figure out how to allow my normal user identity to mount these external devices. This is very poorly documented in the books I have on the subject, so here's how: ''Please note that the # indicates things done as root, and % denote regular user.'' 1. As root, open in a text editor the /etc/fstab file. I use vim, but you can use pico or nano or whatever you like.

# vim /etc/fstab

2. There are already entries here by default, and they look a little something like this:

 /dev/sda1	  /				  ext3	 defaults	 1 1  /dev/hda	   /media/cdrom	   iso9660  user,ro	  0 0

(and so on...) the idea here is that the first column is the device location and the second is the mount point. The third is what kind of filesystem it will default to. The fourth is who gets to mount it. And the fifth and sixth are related to fsck (file system check). Many of the entries in /etc/fstab by default are the mount points of your actual operating system. So there's the root mount point, there's the mount point for proc and maybe a floppy drive (or SD card reader, in the case of my Vaio). You probably won't necessarily need to mess with the root and proc mount points; instead, you'll be either adding or editing the entries for the optical drive, SD card reader, and external hard drive. So if you know your optical drive is located at /dev/hda and you know you want to put it in the /media/cdrom folder when it's mounted, the entry would begin as such:

/dev/hda	  /media/cdrom

Optical discs are pretty much always the filesystem type of iso9660 so that's the third column. The fourth column - the users who get to mount it - is the tricky one. If you want only ROOT to be able to mount that device, then put the word "root" in the fourth column. If you want any USER to be able to mount that device, then put the word "users" (not the username; the actual word "user"!) in the fourth column. And just to be clear about this, the presence of ROOT in the fourth column will make it so that ONLY root will be able to mount it. So if you want a user to be able to mount it, ONLY "users" should be placed in the fourth column, not "users,root". We must assume that if a user can mount a drive, so can root.... but if root can mount it, then only root can mount it. Makes sense if you think about it. If the device is read-only, add the word "ro" in the fourth column. If it's readable and writable then add "rw". The last column you can leave as is. So in the end, my /etc/fstab had this added to its default list:

 /dev/hda	   /media/cdrom	   iso9660  user,ro		  0 0  /dev/sdb1	  /media/hd		  auto	 noauto,user,rw   0 0

This allows the user to mount a cd or dvd as read-only at the mount point /media/cdrom as well as a hard drive plugged into the USB port (regardless of filesystem type, which will simply be auto-detected) as a read-write device at the mount point /media/hd As user, type in simply

% mount /media/hd

and it will be mounted for you. No need to type in % mount /dev/sdb1 /media/hd or anything complex like that. If you do this, you will be prompted for more information because it is assumed that you are attempting to override fstab.Why not use /mnt instead? Simply because, since I sometimes use Konqueror, it's easier to mount things by default to the /media folder, as Konquerer by default checks /media for mounted filesystems. No reboot required, no logout required! It just works right away! That's it!Actually that's not quite it. There MAY be a permissions issue, depending on your distro. If, for instance, you are defining the mount point as /media/hd and the USER has no permission to write to /media/hd then the USER won't be able to copy files on the hard drive. So as root, you'll need to change permissions of the /media/hd directory to something that includes write permission for the everyday user. Like so:

# chmod -hR <USERNAME> /media/hd

Now mount the drive to that directory and watch in amazement as the everyday user is able to read and write to the drive!That's it.