HOWTO set up Dynamic DNS to your Linux BoxHOWTO Make Your Mac a Web ServerI've posted two Dynamic DNS howto's on a site, with lots of screenshots so it's pretty easy to follow. Neither are completely perfect but together they give a pretty good overview of how to do the whole dynamic dns thing. An HPR episode covering the Linux tutorial is forthcoming, as well.They're really basic, too; it's just that I know nothing of networking and just figured this stuff out. I'm sure someone out there will find this useful (unless I really am the only person who didn't know how to do this already).One was done on my Linux box, on how to set up Dynamic DNS so you can SSH to your home computer from where ever you are. This tutorial resulted in my desire to...SSH to my home computer from where ever I happened to be.The other is how to put your computer on the world wide web...which I didn't want to do with my own computer because I don't know enough about security yet to subject my own data to the internet. The answer? subject a computer at work to the internet! So all the screenshots on the Howto Make Your Computer a Web Server were taken on a Mac at work, and in fact relies heavily on the fact that in OS X Apache is already installed. On a Linux box, were I to ever try this, I'd isntall Apache with the Linux Reality Home Server mini-series close at hand.Enjoy. Hope it helps some noob out there.
About this blog
Entries in this blog
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 255.255.255.0...whatever 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.
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.
Random films that are, in varying degrees, "avant-garde"...whatever that means. Compiled by Dr. Terri Ginsberg, my avant-garde film professor.
Impressionism, Vorticism, Photogenie:
The Smiling Madame Beudet (Dulac, 1923)
The Fall of the House of Usher (Watson/Webber, 1928)
J'Accuse (Gance, 1919)
Dada, Graphic Cinema, Futurism:
Ballet Mecanique (Leger/Murphy, 1924)
Anemic Cinema (Duchamp, 1927)
Paris Qui Dort (Clair, 1924)
Constructivism and Formalism:
Kino-Eye (Verov, 1924)
Battleship Potempkin (Eisenstein, 1925)
L'Etoile de Mer (Man Ray/Desnos, 1927)
Un Chien Andalou (Bunuel/Dali, 1929)
Le Sang d'un Poete (Cocteau, 1930)
Shadows (Cassavetes, 1959) + all other Cassavetes films....
Pull My Daisy (Alfred Leslie, 1959)
At Land (Deren, 1944)
Guns of the Trees (Mekas, 1961)
Flaming Creatures (Smith, 1963)
Lucifer Rising (Anger, 1964)
Mythopoeic and Lyrical Films:
Dog Star Man (Brakhage, 1961-1962)...and all other Brakhage films
Castro Street (Braillie, 1966)
Structural and Matieralist Films:
Eat (Warhol, 1963)
Word Movie (Sharits, 1966)
Wavelength (Snow, 1969)
Zorns Lemma (Frampton, 1970)
Radical & Art Cinema:
Land without Bread (Bunuel,1932)
David Holzman's Diary (McBride, 1967)
Unsere Afrikareise (Kubelka, 1961-66)
In the Year of the Pig (de Antonio, 1969)
Gently Down the Stream (Friedrich, 1983)
Invisible Adversaries (Export, 1976)
Dyketactics (Hammer, 1974)
Tongues Untied (Riggs, 1989)
Final Solutions (Tartaglia, 1990)
Mujeria: Primitive and Proud (Hildalgo, 1992)
Zyklon Portrait (Schogt, 1998)
Everyone knows that$ su fubar<password>switches user over to, in this case, a user named fubar.However, this doesn't bring along with it fubar's user environment; so, for instance, if you have su'd over to fubar and an app you are using needs to write a file into /home/fubar/.kde file, then that app will not be able to do it because you are fubar but you are not in fubar's user environment.OK, so to switch over to fubar + fubar's world, you must do this:# su - fubar<password>Note the - (dash) between the su and the fubar Now you can do everything the user fubar would normally be able to do without any unexpected permission errors.(I have to thank Popey for that tip; he saved my life with it while I was flirting with postfix. I was amazed I'd never encountered that seemingly basic yet vital distinction in all the beginning UNIX books and courses I've taken........)
Software and Multimedia Piracy is Wrong.Haha, just kidding. No, actually piracy is not wrong at all; the environment which forces it to exist is wrong. Think about it:It's human nature to want to share with others. I mean, real human nature, like when you are feeling good and you're with friends, and you're not thinking about mundane stuff like paying bills and going to work and nonsense stuff like that. When you are feeling like your true self, admit it, you like to share. You find a cool song that you really like -- you want other people to hear it. You find a computer application you like -- you want other people to try it and get as much satisfaction from it as you do. That's why we have music sharing sites like last.fm, and it's why we have podcasts in which people are raving about that cool file manager they just found.Proprietary software, copyrights, the idea of Intellectual Property, and so on -- all of these things rob you of your right to be truly passionate about the neat things in life that you discover and want to share. In fact they set you up to be what they will call "a pirate". Now I don't know about you, but a "pirate" to me is someone who sails the seven seas and kills people for their boats and gold and stuff. We could get into a sociological discussion of why Pirates feel they need to do this, but that would be a bit of a digression......but the point is that people who share music and software and stuff like that are NOT pirates.Furthermore, people WANT to share. And proprietary systems forbid that. There's this model of oppression that goes a little something like this:1. Establish the fear of punishment if a law is disobeyed.2. Create an arbitrary and unjust law.3. Encourage people to break the law.There are variations on this theme, but essentially the idea is to create an inescapable trap for people. Give them something that you are marketing as revolutionary and life-changing, and then threaten to lock them up in prison if they in turn share this revolutionary thing with their friends. You see similar techniques in society's treatment of sex, or even drugs; tell everyone it is bad to remain a virgin too long, but also add that sex is bad. Or tell everyone drugs are bad, mkay? but then manufacture all kinds of interesting pharmaceuticals and advertise them on TV and make them really desirable. Brilliant ways to send the general population into an infinite loop of moral dilemmas.Back to my point...My point is that if Photoshop is so freaking cool and will enable me to become a better artist, a more beautiful model, and more desirable in the Job Market and I just paid an arm and a leg for it, how am I supposed to NOT share it with a dear friend? Obviously I would want my friend to have the same benefits; I would want her to be a better photographer, a better model, to be able to get super cool graphic design work. But of course to share it would be illegal, and I would risk being arrested.So piracy is not wrong, it is in fact right. So...post all your copies of proprietary software on warez sites, right? Well, no.Piracy is Right but supporting proprietary software that creates an environment of moral dilemma, "illegality", and marketing nonsense is Wrong. If we, as GNU/Linux users, use proprietary software and push it out into the mainstream, we are helping create this environment. Put in a less abstract way:Let's say we all use GIMP and eschew Photoshop. We start demanding plug-ins for GIMP, we start asking about drivers to make sure wacom tablets (and the like) work to their full extent in Linux and GIMP, we write our own plug-ins and scripts... You can see what would happen; it would be a victory by popular demand. Photoshop would lose influence and popularity and market share, and "piracy" would no longer be an issue. Obviously I am just randomly using Photoshop / GIMP as one example, but it applies to all applications.So don't Pirate, just Reject.
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...
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!!
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]
I spent the last two days of last week trying to get a box set up as an email server. The problem with this server (non-Linux OS) was that apparently the GUI tools provided aren't really designed to...well, work. While you can set up Users and Groups through the GUI tools, apparently important functions, like creating a home directory for a user, is broken. Not that this is documented any where; in fact, evidence points strongly that the GUI tool WILL create a home directory. There's a button marked "Create Home Now" which, when pressed, says that "Home directory creation will be attempted on save", but when you click Save (by the way, that's a lot of clicking I've done for a very very common server task), no home directory is created. No sign of error, no warning...it just doesn't exist. You can reboot, you can log in as root, you can do whatever you can think of ... but the GUI Says No.The GUI's email server setup also seems to be broken. You can put check marks in as many boxes as you want, but it's not going to set up your server for email no matter what.Also, none of these GUI tools can be accessed via SSH as they are not written for X but for a proprietary GUI interface. Since I don't have physical access to the box, in order to attempt do this configuration, I had to VNC to the server and have a monstrous screenshare session to use the GUI tools.Long story short? Monday I came in with renewed vigour, sat down, and broke out some whtie papers on postfix. A simple SSH session, and I'm on the server. The postfix configuration was pretty easy, especially considering I'd never done it before. I don't pretend to know WHAT I did, but I read the how-to's and sort of get a feeling for what all the config lines were referring to. I plugged in the right information, and then issued the final sudo postfix start command and without much fanfare or eye candy postfix is up and running. I grab a port of one of my favorite email apps, pine, install it, start it up, and in no time I am sending and receiving email. All told, this only took a few hours, compared to the two days of trying to navigate through the GUI tools which, in the end, didn't even do the job they were expected to do.I'm no expert on setting up email servers or servers in general; I'm still very much a noob at it and I have a lot to learn. But let's face it, a server shoud be simple, sleek, and well-tuned. It shouldn't require a display to operate. It doesn't need eye candy. It just needs tools that work. It just so happens, I am finding, that the tools that are working best start with a GNU or end with a *nix (or *nux).
If you're partitioning a harddrive for a serious GNU/Linux then it is often suggested to have a separate partition for /var and sometimes for /home. The cool hing about Linux, of course, is that it's flexible and intelligent enough to be able to actually bring the puzzle pieces that are/var + /home + /swap + /into a complete and coherent system.But the question remains, why exactly might one wish to do this? Well, as with a lot of thing in Linux, one might not care to do it and one doesn't really HAVE to do it at all. Linux can be almost as easy as it can be hard; so unless you're a geek, I wouldn't bother. Just install Linux with all the defaults and relax.But if you've read this far you're probably a geek, so the reason one might want to do this (especially on one's server) is because there are attacks designed to fill up harddrive space until the computer comes to a grinding halt for lack of any place to store information. So a nice secure way of setting up your computer is to have a separate location for things that are most commonly written to; ie, the /var folder which contains all the system logs and the /home folder which contains all the user data. Should they ever be attacked, there is a good possibility that they will be the extent of the vulnerable failure, while the core of the system istself, the / folder, is happily inaccessible and untouched.Now you know.
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.
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.
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 Stopped irssi- Stopped man fg+ 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 192.168.0.5:57652 wsip-98-174-208-105.hr:ircd CLOSE_WAIT klaatu 107890tcp 0 1 192.168.0.5:53824 p3slh056.shr.phx3.secu:http SYN_SENT klaatu 114528tcp 0 454 192.168.0.5:53821 p3slh056.shr.phx3.secu:http ESTABLISHED klaatu 114421tcp 329 0 192.168.0.5:53979 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...
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
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 firstname.lastname@example.org
will sign you in, securely, as klaatu to the computer located at 192.168.2.11
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 192.168.2.11, 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 email@example.com:/home/gort/docs/foobar.txt ./foobarGort.txt
would copy foobar.txt from gort's machine over to mine, and rename it foobarGort.txt
bash$ scp foobarKlaatu.txt firstname.lastname@example.org:/home/gort/docs/foobar.txt
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.
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-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
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.
% dmesg | tailMy wiki went down because of bad hosting. Lucky for me I'd backed up all the good posts I'd made to the wiki, so I am going to first place all those old posts here in this blog, and then I'll be able to start posting new (and perhaps useful to more people than just myse) thingslf.% whoamiklaatu% echo $HOMEthebadapples.infoa little podcast i do when i can. chekc it out if u like linux.
About two months ago, I embarked on a journey to rehabilitate an old G3 iMac with a Linux installation so I could send a really functional and nice computer to Skirlet's little cousin in Mexico whose family could not afford a computer. The installation went splendidly. NOTHING else would even cause this computer to boot, but that trusty old "Net Install" Debian disc bootstrapped the computer, allowed me to install the barebones system with a few clicks (well, hits of the RETURN key), and then it pulled the rest of the system in its most up-to-date form from the internet. The Debian installation method is quite quite progressive; all you need to do at first is download the Net Install CD image. This is a 100mb download, maybe, so it's a quick download. Burn it to CD as a bootable disc and boot off of it. Start the installation, which is entirely menu-driven; very clear choices are given to you...almost difficult to screw up, really. The rest is downloaded straight from a Debian mirror (so obviously you must be hardwired into an internet connection) - so you're installing really up to date stuff every time you install. It's great. For the iMac, this installed all components flawlessly; I used all the default settings so there wasn't any fancy partitioning I needed to do. It took a while to download all the packages (although no longer than Leopard typically takes to install from its installation DVD) but once it did, it prompted me to reboot. It then booted straight into a GUI environment, a GDM login screen, and is now purring like a kitten. Fast, too! As fast as OS 9 would be on the computer, but having the funcionality of OS X. The specs on this machine are: iMac G3 "Grape" / 333mhz 6mb VRAM 128 + 64mb RAM No wireless card. What's now running on it: Debian Etch 4.0r1 Gnome desktop XFCE or Enlightenment (both faster than GNOME) It's a beautiful thing.
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:
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.
In Slackware, the tendency is for an administrative user to set up accounts for the users. Users either don't have access to commands like iwconfig or iwlist or ifconfig and things like that, or else they just don't need them that often so there's no need to make these commands easily accessible to the regular user account. On Ubuntu, the default is that the initial user on the system is an admin/user hybrid, in which most of the typical admin commands are just one command-type away, although they may require a password in order to be executed. On my Fedora 8 install, it would seem that the Slackware approach is taken, which I like quite a bit; so in Fedora, when I type iwconfig, I get a return that "-bash command is not found" or whatever the error message is. Nice to know that layer of admin vs. user separation is there...but a little inconvenient for me since in fact I am the only user as well as admin. So, if this sort of thing happens to you under either Slackware, Debian, or Fedora, or any other Linux OS you install, you may want to modify your PATH. The symptom is this: In order to get a command like iwlist to work, you have to type /sbin/iwlist The fix is to set your environment. To do this, simply edit your .bashrc in a text editor and define your variables. So, to beef up the paths on my Fedora system, I simply did this: % cd ~ % vim .bashrc and then typed this: # added by klaatu 12-31-07 PATH="/usr/bin:/usr/sbin:/sbin:/bin:/usr/games:/usr/local/bin:/usr/locate/sbin" Or something like that; basically I just kept everything Fedora had already defined for me, and added my own. To make the system reanalyze its environment settings, type: % source .bashrc And that was that. Well, almost. I was really getting annoyed at having to go all the way up to the Application menu just to play Tetris. I also always forget that it's isn't Tetris, it's Gnome-Falling-Bricks?. To make it so that I could just type "tetris" and be playing Gnome-Falling-Bricks?, a game similar in many ways to the classic Tetris game, I needed to set an alias. This again would be done in my .bashrc. Simply add this: alias tetris="gnome-falling-bricks" Again, run % source .bashrc and you're in business. Caveat and Apologies This all applies only to bash, hence hence the modification of the .bashrc file. If you are using a different shell you'll need to modify its corresponding file. For instance, in Slackware I'm using the Z shell, so these settings, or similar ones, would be entered into .zshrc Change Your Default Shell One of the variables of your environment can't be entered into your .bashrc or .zshrc or .csh or .tcsh or whatever; it's the default shell. This must be set by running this command: % chsh you'll enter your password, and then define your choice of shell PS Here are some of the environment variables on a Linux system: PATH — sets directories that executable programs should be found HOME — your "user" or "home" directory EDITOR — your default editor TEXEDIT — your default text editor VISUAL — your default picture viewer LD_LIBRARY_PATH — directory in which libraries to run programs are found HOST, HOSTTYPE, VENDOR, OSTYPE, MACHTYPE, REMOTEHOST — info about your computer LINES, COLUMNS — sets your terminal size MAIL — your system email mailbox TERM — sets type of terminal you run (rxvt, xterm, &c) TZ - timezone SHELL — your default shell
Two things: 1. Funny thing about mp3 files...that file format, so ubiquitous on our machines, we don't own. In fact we barely have the right to make mp3s ourselves and it is only because we paid for our OS that we can use them at all. Bad news for people who aren't paying for their own OS; cuz in that case, who's paying for the oh-so-important honor of getting to use the .mp3 file format? and the .mp4 format? to say nothing about .mp2, .ac3, and others? 2. So far I haven't ever bought an iPod, although I've acquired three iPods, an iPod shuffle, and an iPhone. OK, so I traded the iPhone for a Nokia N800, but everything else I still have. Funny thing about iPods...the way it interfaces with the computer is via iTunes, and I just love iTunes. You know what I hate, though? When a simple list of well-defined items are stored in completely cryptic and random order. For instance...here is a list of items on my desk right now: "magazine" "iPod" "lamp" "Linux Format Magazine" "coffee" Here is what that list would look like in the iPod database that iTunes creates: F1 F2 And within those items would be: F1 = "EJGUD" "JDUNN" "LKMDP" F2 = "HDNSA" "YEMFF" Make sense? Oh, hey, since you're looking around in there, could you hand me my coffee? What? you can't tell which one is my coffee? and you can't figure out how to get it out of F1 or F2 anyway? Oh yeah, and I forgot....I hate iTunes. And I hate that an iPod, which theoretically costs anywhere from $250 to $350 (or $600 if you count the iPhone price when I was given one) can't read or play but three or four file formats. For instance, what if I don't want to call my music "JDHUE" in a folder called F34 in a hidden directory called itunesdb? And what if I want to plug in my iPod to ANY computer I have access to and be able to add or subtract music from it without first erasing the whole thing? And what if I get a file in an ogg format or even, God forbid, a wma format? Shouldn't I be able to put that on my supa fancy hi-tech media player? I was having a terrible time, honestly, with my 4th-gen iPod because I would use it on my Linux computers at home and on my Macbook Pro at work. Everytime I plugged into iTunes, all stuff I'd put on the iPod under Linux would get corrupted, and I'd lose gapless playback, and then I'd get home and it would take forever for my Linux OS to reassess what was going on in the iPod. And no matter what, the Apple firmware on the iPod just is NOT going to play anything but .mp3, .mpa (all-time stupidest idea for a codec: let's split mpeg4 into two halves so nothing else will know what to do with it!), and .aac (oh wait...THAT'S the all-time stupidest codec). No ogg playback for me. Previously I'd installed Linux on the same iPod, but it really was LINUX for the iPod. It was a fully-functioning OS loaded onto an iPod, sans keyboard or mouse. Sure it played media back well and effectively, but it wasn't a self-contained OS for a media player, and in fact it read its information off the same iTunesDB that the Apple firmware does. What I was looking for was something that would be a good media player OS and would free me from any sign of an iTunesDB or anything like it. I wanted to put my music on my iPod without the need for an extraneous, backwards, badly executed interface. And if it could look cool,that'd be OK. I found just what I was looking for with [http://www.rockbox.org|Rockbox], an open source all-out replacement for the native Apple firmware of the iPod. No more iTunes. No more itunesDB. Just your music, in the format you want it in, where you want it. All that with customizeable themes so it will look cool, too. __Installing Rockbox on Your Media Player__ I am leaving the title generic ("Media Player") because from what I've heard, the iPod isn't exactly the only media player out there with a bad bad interface. Rockbox supports many, many media players. The installation is either going to be very easy, or very hard, depending on what kind of iPod you're starting with. Rockbox requires an MSDOS (FAT32) formatted iPod and will not work on HFS+ (Mac) formatted iPods. This was bad news for me because I have NO access to a Wind0ze machine on which I could re-format my iPod. Luckily, there is a workaround...but it's not easy and the instructions from Rockbox are only for Mac OS X, not Linux - I believe because the defacto mkdosfs program on Linux will not create bootable FAT32 volumes, whereas the mkfs_dos program in OS X will create bootable FAT32 volumes. So if you have access to Wind-ze running iTunes, just plug your iPod into that and let iTunes do what it does best: screw up your music. iTunes will erase your iPod and reformat it into a FAT32 volume. Once that's finished, unplug it from the Wind0ze box (it could have virae), and shut down Wind0ze. Put in an Ubuntu CD, reboot, and install Linux on the box. (OK, you may not want to do that if the Wind0ze machine doesn't belong to you.) Anyway...to reformat an HFS iPod into VFAT, the best place to look is the Rockbox [http://www.rockbox.org/twiki/bin/view/Main/IpodConversionToFAT32|wiki] but here is how it went for me: I first tried all this under Linux, and everything went quite well until I realized that when the man page for mkdosfs said it wouldn't create a bootable partition, it meant it wouldn't make a bootable partition. Reboot into OS X. 0. First you must unmount but NOT eject the iPod. Easiest way to do this is open up Applications > Utitilies > Disk Utility and choose UNMOUNT from the toolbar. 1. Download the partition map (mbr-xxxx.bin) for your model of player from the Rockbox wiki 2. Open up a terminal and do this: ^% diskutil list^ This lists all connected drives to your system, including the BSD name of that disk. Let's assume that your iPod is located at disk2 3. Now do this: ^% dd if=mbr-xxxx.bin of=/dev/diskN^ where mbr-xxxx.bin is the partition map you downloaded, and diskN is the location of your iPod. 4. To complicate matters, on iPods over 30gb the following steps do not work due to FAT32 limitations, so you'll have to follow different instructions on Rockbox. However, mine is a 20gb 4th gen, so I was able to: ^newfs_msdos -F32 -v iPod /dev/rdiskNs2^ This doesn't give you a whole lot of feedback, but provided there are no errors, you've just reformatted the iPod as a FAT32 iPod. __Installing Rockbox...for real, this time__ Since I'd already tried installing this on Linux and failed, and since I was in Mac OS X anyway, I figured I'd try the GUI tool provided by the Rockbox team to do the installation. So I downloaded their binary and ran it, and it also failed miserably. Lesson learned: Reformat the iPod in either Mac or Windows, then go back to Linux and do the installation. This is all very well documented in the Rockbox installation manual. Here is a brief summmary, but the manual will serve you just as well if not better: Again: we're back in Linux for all of this: 1. Download the latest daily build of the Rockbox [http://www.rockbox.org/daily.shtml|installer] from their site. 2. Connect your iPod to your Linux box. 3. In a terminal: ^% unzip rockbox.zip -d /your/iPod/^ (where /your/iPod is where ever your iPod is located on your system; usually this is in /media or /mnt) 4. That created a hidden directory on your iPod, so don't be alarmed if it looks like nothing happened. Just ls -al to see what's there, and you'll be pleasantly surprised to see a .rockbox directory now at the root of your iPod. 5. Now download the [http://www.rockbox.org/twiki/bin/view/Main/RockboxExtras#Fonts|fonts] package from the Rockbox site. 6. Once again, in the terminal, do this: ^% unzip rockbox-fonts.zip -d /your/iPod/^ 7. What the Rockbox manual does NOT mention is that one file may want to overwrite another file, but it gives you the option to rename the new file so that the old one is not overwritten. I renamed it whatever-fonts and have since just deleted it entirely. Working fine for me. Rockbox is now installed. But it won't boot until we..... __Install the Bootloader__ 1. Download the [http://download.rockbox.org/bootloader|bootloader] that corresponds to your device (iPod, iRiver, gigabeat, whatever] and OS (Linux). 2. This gives you a little script that you'll need to make executable. To do this, cd to where ever the file you downloaded is, and then, as root: ^# chmod +x ipodpatcher^ 3. Now it's executable, so execute it by tying in, as root: ^# ./ipodpatcher^ 4. You will be asked for confirmation, and not long after that, you will hav a bootable Rockbox Media Player. __The Concept of the Box that Rocks__ The Rockbox interface is similar to the native iPod interface, with pages of menus that span "horizontally", if you will, and you navigate through them by pressing the horribly mis-labelled MENU for "previous" and the not-labelled-at-all MIDDLE-BUTTON for "next". You can scroll over the scrollwheel to make selections within each menu. The coolest thing about Rockbox, for me, is that you decide where in the file system your music will be stored, and how. To put music onto my iPod now, I simply drag a folder containing the music onto the iPod on my desktop. No need to jump through hurdles to put music on or take music off. Full ogg support included I never made playlists for my iPod anyway, but if you want to, you certainly can make them -- but you don't need a computer interface for this. You can make playlists right from your iPod. The Rockbox manual can tell you a lot more about this, though, so check with it for full details on all the myriad functions and capabilities of your new Media Player OS. __Themes__ Another cool thing about Rockbox is that you needn't settle for one look for your interface. You can install Themes and also "While Playing Screens" (wps). These are located in the [http://www.rockbox.org/twiki/bin/view/Main/RockboxExtras#Fonts|extras] section of the Rockbox site. These a bit tricky to install, as they seem to be packaged differently depending on who created the theme. There are two variations that I've seen. Some themes are quite self-contained and will disperse the appropriate files into the appropriate places on your iPod with a simple ^% unzip theme.zip -d /your/iPod^ These come as one zipped folder, and if you look into this, you'll see only a .rockbox directory. So if you see this, it is safe to simply unzip the zipped folder you downloaded to your iPod, and it will NOT, as I initially feard, overwrite the real .rockbox directory on your iPod; it simply adds itself into it. This is, as I understand, a pretty fancy feature of the unzip command. Other themes come in three parts; let's say we've just downloaded a theme called penguinix.zip What we would see in this directory is: penguinix.cfg penguinix.wps penguinix The penguinix.cfg you should copy into your iPod's .rockbox > themes directory. You'll know it's the right directory because you'll see lots of other theme .cfg files there. The penguinix.wps and penguinix directory will need to be copied to your iPod's .rockbox > wps directory. That's it. You'll see how to change themes from your iPod during normal use. Enjoy Rockbox.
"Overriding Your Linux OS's default Mail Client" This is all easy GUI stuff: I've been using the typical Gnome default mail client, Evolution, on my Fedora iBook, but I use Thunderbird on my Ubuntu laptop mainly because I knew Thunderbird from having used it on Mac. Since Ubuntu comes with Evolution installed as its default, after you install Thunderbird from the repository, you must then tell the system that instead of using Evolution, you'd like to use Thunderbird for all those mailto: links and things like that. This is easily done by going to System > Preferences > Preferred Applications In the Preferred Applications window, simply select Thunderbird from the drop-down menu under the "Mail Reader" section. Click OK, and you're done. Should work like a charm. To do this on Fedora 8, it is basically the same, except that the menus are ordered in this way: System > Preferences > Personal > Preferred Applications As a side note, perhaps related.....typing in about:config into Firefox's URL bar brings up all kinds of interesting options for Firefox. Haven't played around with it yet at all, but came across it in my google search for how to set my mail client.
To spare myself from going into great technical detail of how it all works, this article assumes you're ready to set up an OpenPGP key so that you can encrypt your email and files, and also ensure that the people you think you are emailing are really the people you are emailing. The way that this is done is to create for yourself a Public Key. The person on the other end also creates a Public Key. You trade Public Keys with one another. When you encrypt email destined for that other person, your system encrypts it in such a way that only that person's system, with their special Private Key, can decrypt it. This is all made possible by OpenPGP, specifically on most Linux systems with a Gnu software program called GPG. So, here's how you set up an OpenPGP system on your system: ''Note that % means a regular user and # means root.'' __Create your Public and Private Key__ In your terminal, type this: ^% gpg --gen-key^ A text menu pops up, giving you a choice of encryption methods or something like that; I used the default by typing in 1 You are then asked how many bits you'd like in your key. The default is 2048. You can go lower or higher. You then must choose if and when you'd like this key to expire. The default is Never (0) but you can do anything you feel necessary. Confirm all of these choices with "y", and then you'll need to assign a user, email address, and an optional comment to that key. It prompts you for each of these, so enter the email account information you wish to use with this key. We will go over adding more accounts to this key later in this article. Your system then sets about generating a random number -- and at least in the case of a long key it may literally ask you to do something else on the computer so that the random number generator has data to work off of. Eventually, it will generate enough bits for your key, and returns this information: ^gpg: /home/klaatu/.gnupg/trustdb.gpg: trustdb created gpg: key 12345678 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 4 marginal(s) needed, 3 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0p, 0m, 0r, 0f pub 2034D/12345678 2007-12-25 Key fingerprint = 4C72 DEAD E45F F314 8929 FD67 EF23 6B33 3779 2739 uid Klaatu (thebadapples) <email@example.com> sub 2368g/DF66E34E 2007-12-25^ Note, on the second line, the key "12345678". That is your Key ID, which you'll use to configure your system. (It is not your public key that you will send to friends with whom you wish to have encrypted conversations.) __To Add Users and Accounts to Your Key__ I have at least three email accounts in my desktop email client, and I hardly want to have a separate key for each account, so I need to add these accounts to my key. To do this, simply type % gpg --edit-key 12345678 You will be given a prompt, at which you'll need to type "adduid" and then you simply have to follow the prompts. You can do this as many times as you need. This is what it looks like, with some content edited out for readability: ^% gpg --edit-key 12345678 gpg (GnuPG) 1.4.7; Copyright © 2006 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Secret key is available. [content edited out for readability] Command> adduid Real name: Gort Email address: firstname.lastname@example.org Comment: thebadapples You selected this USER-ID: "Gort (thebadapples) <email@example.com>" Change (N)ame, ©omment, (E)mail or (O)kay/(Q)uit? O [edited for readability; your key password will be required here] Command> quit Save changes? (y/N) Y^ __Exporting Your Public Key__ Now you've set up the GPG system. Note that the GPG information that your system uses and refers to has been saved to your home folder, in a hidden directory called .gnupg ^/home/username/.gnupg^ Now you need to extract your Public Key from this information so that you can have the key as a physical file that you can send to your friends. ^% gpg --armor --output klaatukey.asc --export^ This creates a file called klaatukey.asc, which I can attach to emails that I send to people. If they are also GPG users, they will import this key into their trusteddb file and from then on you can email back and forth with encrypted messages that will be able to be read by you both, but no-one in between. You can set Evolution and Thunderbird to encrypt your messages automatically as well as attach the actual klaatukey.asc file, but if you're using webmail you'll probably have to attach it manually, so you may want to either upload this to your own server or put it on a USB drive or your Nokia N800 or something that you keep on you. __To Import Someone Else's Key to Your Trusted Database__ If someone has attached their key in their email, you can download it and then run this in your terminal: ^% gpg --import pubkeyfile.asc^ In Evolution or Thunderbird, you can simply choose to import the key to your trusteddb from menu options. There's also a way to go get public keys from key servers, but you need to know the address of the keyserver. You can go to the keyserver, search for the person's email address, and download their Public Key. You are then able to encrypt your email using their Public Key so that only they will be able to decrypt it. ^% gpg --keyserver http://www.KeyServerUrl.com --keyserver-options honor-http-proxy --search-keys Email@Address.com^ __Transporting Your GPG Information to Another Computer__ The days of one computer per person are in the past. In the past, I have had up to 6 active computers at a time. Now I am down to 3 or 4 (2 personal laptops, 1 work laptop, another work laptop, and a fixer-up soon to be donated to someone who needs a computer). Anyway, the point is that if I set up GPG on one system, I probably have at least two other environments I'll want that GPG infrastructure installed. Luckily, all you'll need is the .gnupg directory from your $HOME. So, either copy this directory to a USB drive and sneakernet it over to your other system, or send it over your LAN, or whatever, but it really is as simple as that. ^ user@desktop: % cp -r ~/.gnupg /media/jumpdrive/ user@laptop: % cp -r /media/jumpdrive/.gnupg ~/ ^ Once you've copied the .gnupg directory to the other system (in the example above, from one's desktop to one's laptop), the GPG system on the second computer detects the .gnupg information and now it's automagically configured. Nice, huh? If you don't have GPG installed on the second computer, you should be using Linux. __HOWTO set this all up in Evolution__ On my Fedora iBook, I use Evolution as my mail client. Setting up GPG is simple: ^Edit > Preferences > Accounts^ I have three accounts set up here, so for each account I would do this: - Click on the account you wish to add the GPG key to. - Click EDIT - The last tab in the new menu that appears is "Security"; click on this - In the SECURITY tab, the top selection is OpenGPG, so enter into the KEY ID field your key ID...that's the 8 number thing that you were given earlier. - Click on whatever selections you want; I usually have the automatic options turned on so that my emails are always signed. - Click OK, and then either repeat these steps for other accounts or click OK to leave preferences. That's it. __Setting This Up in Thunderbird__ On my Ubuntu and Slackware laptop, I use Thunderbird. First you must install the [https://addons.mozilla.org/en-US/thunderbird/addon/71|EnigMail] Add-on for Thunderbird. ''Note: When I did this, I had not yet set my system environment to recognize Thunderbird as its default mail reader, so Firefox didn't know what to do with the install file and kept trying to install Enigmail into itself. To get around this, I did this: '' ^% wget https://addons.mozilla.org/en-US/thunderbir....95.5-tb+sm.xpi ^ ''I think I had to send an option along with wget to bypass a secure connection, or something, in order for mozilla.org to let me get the file...although I just tried it again and it worked with a normal wget. Anyway, the point is, get the .xpi file onto your computer, then go to Thunderbird > Tools > Add-ons > Install and select the .xpi file. Thunderbird installs it and offers to restart. '' Restart Thunderbird. Now there will be an OpenPGP menu available to you in the main window of Thunderbird. There's not much to do here, although I do go into OpenPGP > Preferences > Show Advanced Options. As long as you've imported your .gnupg folder, frankly EnigMail seems to just pick it up without any further settings from you. It's fairly transparent. __Revoking a Key__ So what happens when your arch-enemy's robotic minions discover your Private Key? Well, you'll need to revoke that key and get a new one. And be more careful next time ED-209 comes knocking at your door asking to see your Private OpenPGP Key. ^% gpg --output revoke.asc --gen-revoke 12345678^ You will be asked why are revoking the key, and then it will generate a revoke certificate. Now, what do you do with this? I have no idea, because I've never had to revoke one before. I reckon I'll cross that bridge when we get to it.
This has probably been covered a million times before, and actually it's far from my preferred method of using an iPod. I'd rather wipe the firmware off the thing and just put RockBox on it. And that's what I do. Even so, before I knew about RockBox I had to search far and wide for a straight, simple answer regarding how to get my iPod to work on my Linux laptops. Hopefully this will spare someone from having to look around: (but try RockBox)The iPod works contrary to common sense; what is obviously a two-way device is for no apparent reason limited to being a one-way street. Music goes on and cannot come off unless it is deleted off. Furthermore, looking into the iPod via its desktop icon shows...nothing. No music is there...although one knows there is music on it. Looking into it via the Terminal reveals a great mess of hidden Database files with a bizarre file structure (folders named with numbers, and random names given to all the songs in those folders; no apparent order whatsoever). iTunes has always been broken; from version 1, in my mind, it was a huge step backwards for media players. Sound Jam and Audion were great media players far better than iTunes, but because of the iPod's link to iTunes, and because it shipped with Mac OS, iTunes took over. And whether you like it or not, your music gets added to your Music Library — even if it is just a 2 second sounds sample from some sound effect site. And should you ever move an album, iTunes won't be able to find it again unless you reconnect it one song by one song. Does this mean you can just move the albums from within iTunes and it will keep track of them? No, iTunes doesn't provide that functionality, even though it has reached version 7. So, in short, the iPod and iTunes pair never was such a great combination, and so using your iPod in Linux is not just a matter of convenience, but a marked improvement over using it in Mac OS. Adding an iPod interface to your Linux OS takes no more than installing an app called gtkPod. This can be done on Ubuntu thusly: $ apt-get install gtkpod and on Fedora: $ yum install gtkpod gtkPod is not an iTunes clone, although because it is dealing with the iPod's backwards database, it has similarities. Plug in the iPod and it will load all the songs, fairly slowly the first time, but after that it's fairly quick. gtkPod is pretty self explanitory to use and has many different ways to view the contents of your iPod. The coolest thing? You can drag songs right off the iPod onto your computer! the way it SHOULD work. It gets tricky when you want to take songs off, or put songs on the iPod. The iPod is Journaled by default under Mac OS, and for gtkPod to be able to write to the iPod journaling must be disabled. This can only be done via Mac OS X. On an OS X box, plug in the iPod. Open the Terminal. First you'll need to figure out where the iPod is mounted. To do this, type: $ diskutil list This will give you a lot of feedback about what is mounted into the filesystem. You'll see your iPod in the list, but it will be divided into parts; it may be, for instance, mounted as disk1, but then have partitions listed within that. Look for the largest partition; for my 20gb iPod, its 18gb partition was mounted as disk1s3, for instance. Now we'll disable journaling with this: $ diskutil disableJournal /dev/disk1s3 You'll see confirmation that journaling has been disabled. Now you can eject your iPod, and go back to Linux. gtkPod will now be able to both read and write to and from the iPod.
Sleep Mode on an iBook G4 + Fedora 8Getting laptops to properly go to sleep is a notoriously difficult hurdle, but at least on my iBook G4 with Fedora 8 "Werewolf" it was as simple as installing a single little app. # yum install apmud apmud is the power management system for the PowerPC computers, and works like a charm. I close the lid. The iBook sleeps. I open the lid. The iBook awakens. === Bonus BinRev blog ONLY! material: ====One bug I have noticed, although have not really sat down to analyze when and why exactly it happens, is that some times the iBook won't be able to get back onto the network it was on before sleeping. Going into the terminal and typing % su% (enter your root password)# ifconfig wlan0 down# ifconfig wlan0 upgets you back online within seconds. Still, it's a bug, and I'm trying to follow the pattern so I can actually make the bug known to Fedora. All in all, it's no more bothersome than the little bugs Mac OS had when it would sleep and occasionally decide not to wake up.......in fact I'd much rather have to reset the wireless card than to have my computer just screw me out of any unsaved changes to data. So I guess in that way I'm much better off.
Adding Fonts to your Linux OS - Fedora 8 Open an application on a Mac and you'll see quite a few fonts. Many you'll never use. But some you'll appreciate...and you'd better, because you've paid for them. What you don't get with those fonts is the permission to actually use them in any way you like. With Linux, you get fewer fonts typically, but the freedom and ability to add whatever kind of font you want, including Free and GPL'd fonts. Free fonts abound on the internet. One site I frequent is http://www.dafont.com, which features free, free-for-personal-use, and non-free fonts. I don't bother with anything but the free free fonts, but you can get whatever you want. Installing is easy (and even though I did this on Fedora, it works pretty similarly on Ubuntu or whatever; just a few menus are in different places within the GNOME System menu): Fedora 8 / Gnome Go to System > Preferences > Look and Feel > Appearance The Appearance controls appear, and at the top there is a tab labeled "Fonts". Click into this tab. At the bottom of this window there is a button "Details", which opens up a new window, at the bottom of which is another button: "Go to Font Folder". Your system's font folder then opens. Place all the fonts you've downloaded into this folder. The fonts themselves are the files ending in .ttf so don't try to add any of the .txt or .rtf files that may have accompanied the fonts in your download. These are typically notes from the font designer about the license or where to find more fonts, and so on. Once you've added the .ttf files, you can restart your system, and the fonts will now appear in all of your applications! Customizing You can also really customize the look of your system by utilizing these fonts system-wide. To change what fonts are used in different places on your system, simply go to System > Preferences > Look and Feel > Appearance Open the Fonts tab, and select which font you wish to be used in different places across the OS. For Fedora, I have been using the font Howie's_Funhouse because it is quite similar to the Bryant2 (non-free) font used in the Fedora logo. This font works great in all categories in the font control panel except the monotype font, which should be kept as a fixed width font. But otherwise, Howie's_Funhouse brings a consistency to the OS and looks quite distinctive compared to its Mac counterpart. It is also more pervasive than when the font in the Mac OS is modified, and really is used in most of your applications.
Enabling Compiz-Fusion in Werewolf Fedora 8 by default has a few lightweight compiz-fusion effects available. You can turn these on in the System > Preferences > Look and Feel > Desktop Effects. Simply click "Enable Effects" and it will attempt to turn on compiz-fusion. If your graphics card does not support this, it will let you know, and you can set about the long, arduous journey of finding Linux drivers for your graphics card. My iBook G4 (Radeon 9200) and Sony Vaio (Intel 950) graphic cards are both well supported by now, so I didn't have to do anything more than click Enable. However, just as in Gutsy Gibbon, there are many more effects available to you with the installation of some extra packages. To get the more robust plug-ins and a more detailed effect manager, simply go to Applications > Add/Remove Software. This opens up your package manager, and here you'll be able to search for "compiz". You'll find extra plug-ins available, as well as the Gnome-Compiz-Manager?. The former will add greater control over the effects you already have, new effects like quick desktop viewers and interior cubes and so on. My iBook G4 handles all these effects with flying colors.