Dumping a screensaver to a text file

I am only days away from completing a rather large real-life project, and finally getting back some of the free time I have lost over the past few months. July is looking much more promising than June, and I already have a stack of things I need to make notes on, as well as an old-new desktop system that will need a rehaul.

In the mean time, I accidentally found a rather goofy stunt you can pull at the terminal. I was trying to get some information about cacaplas, one of the “screensavers” I mentioned for the terminal that comes with the caca libraries. I fat-fingered this line by mistake.

cacaplas > output.txt

I realized my mistake almost immediately afterward, but then started to wonder what was in the file. Leafpad showed it as a huge mess of escape codes, which makes sense, but the fun part was using cat to display the contents.

And of course, you get a sort of “recording” of what cacaplas spat out, for the few seconds it runs. (By the way, I wouldn’t let that run too long; the file gets very big, very fast. …)

Like I said, it’s just a quirky trick: not exceptionally functional, and not exceptionally interesting. Still, it’s vaguely cool. ;)

One out, one in

All the stress, waiting, deliberation and expenditure surrounding the once-blinded, now substituted Thinkpad laptop I got for free a year ago has finally come to a culmination, and I am pleased to report that it has a new home.

The original plan, three or four months ago, was to relegate that machine to a friend who needed a new computer, but wasn’t really in a position to buy one. (You might find that difficult to believe given computer prices these days, but try to be open-minded. Not everyone in the world is as fortunate as you.) I gave myself a week or two to test the “new” machine before offering it with the 40Gb hard drive and Windows 2000 that the computer shop installed.

And it was gratefully accepted, which is no real surprise since the friend’s old machine was a full 100Mhz slower, had less memory and a smaller hard drive. Systemwise it was a rather tangled mass of partitions, some dedicated to the original Windows 98SE installation, with the addition of an unlicensed version of Windows 2000. BootMagic, or something like that, allowed you to pick the OS on startup, and the partitions were “connected” with a series of folder shortcuts. Very complex.

All that aside, it was a simple matter to pull my friend’s personal files out of the desktop machine, and copy them into the new machine. Both machines have only USB1.1 ports, but there wasn’t so much stuff that it needed more than 30 minutes to copy. And with that, the deed was done.

I tried to offer Linux as a split-boot for the machine, but it was declined. On the other hand, both Firefox and OpenOffice.org are on it now, and since it lives offline, it should be fine.

And in return, I now have this monster as a charity case. May I introduce you to the Sotec PC Station M260RW:

 

This sports a 600Mhz Celeron, a 30Gb hard drive and 192Mb SDRAM as an upgrade. At some point someone added a Realtek 8139-based network card as well, so it has high-speed (relatively) network access. Graphics are Intel 82810E-based, with sound out of a CS4281 sound card.

Some unfortunate omissions were original system disks, since it’s licensed to run a Japanese version of Win98SE, and a working mouse. Keyboard is a little finicky, and might need replacing. On the other hand, someone installed a rather nice Toshiba SD-R1002 DVD drive in it, and it also has a funky drive-bay drawer that I’ve never seen before. And maybe best of all, down at the bottom on the front is, of all things, a PCMCIA card slot.

But much like the VAIO I took home six months ago, the real albatross for this machine is the monitor. I do believe this one is bigger than the last, and suffers the fault of not being a Trinitron, making it even less desirable.

On the other hand, beggars can’t be choosers, if I can say that without sounding rude. I’ll give it a cleaning and a testing inside and out, and see if I can find a home for this too. No harm in trying. :D

Random screensavers for the console

After finding a slick way to incorporate a screensaver for the console, I’m keeping my eyes open for other options in the splashy-text-thingy department.

libcaca, right now, seems to be the best runner up to my long-time favorite, cmatrix. Installing libcaca gives you four nifty screensaver-type-thingies — cacamoir, cacafire, cacaball and cacaplas.

Each one is more or less an analogue for an xscreensaver display, albeit somewhat chunky and text-built. But even at 550Mhz, it’s doing quite well in the framerate department.

One small note if you run a purely X-less machine like me: In Crux and probably in other distributions, installing libcaca can call in some packages that fall under the X umbrella. I frown upon that since I have discovered how nice it is to omit anything X-governed, but I did build the package on a machine with X installed, which is easier than trying to filter through the dependencies and make it work.

Once the package itself is built you can transplant it to an X-less machine, and the only loss of function is when the caca libraries need to display an image (like a jpg photo) translated into their text-style output. But I have fim for displaying images; I wouldn’t use caca for that anyway.

No, what I want out of caca is that cache of demo-style programs. That, coupled with cmatrix (and maybe asciiquarium, if I could ever figure out the dependencies :roll: ) makes for a nice, small suite of screensavers.

Now: How about triggering them randomly from within screen?

Easier done than said, really. This is an exceedingly primitive script that creates a random number, selects a screensaver by case, and uses that as the blanker for screen.


RANGE=4
number=$RANDOM
let "number %= $RANGE"

case $number in
	0)
	cmatrix -ab -u 2
	;;
	1)
	cacaball
	;;
	2)
	cacaplas
	;;
	3)
	cacafire
	;;
esac

(I omitted the moire screensaver because it seems somehow exceptionally taxing. I had a hard time regaining the system’s attention when it was running.) Please feel free to improve upon this; as I have mentioned before, I have all the programming skills of a rock. As in, “Hit it with a rock, and maybe it will start working.” :|

The next step is to adjust your .screenrc file to point to the script with the blankerprg option, like this:

blankerprg /home/kmandla/.scripts/screensaver.sh

or input that line directly into screen with CTRL+A : (that’s control-plus-a, followed by a colon).

Depending on your idle variable, the script should throw out a random “screensaver,” when it reaches the timeout.

In the mean time, I’m going to keep looking for more console-based autonomous screensaverish doodads. Maybe there’s a category or a list somewhere. … ;)

clear >> /etc/issue

I’m still bogged down with a few real-life responsibilities that are monopolizing my free time, so the only tidbit I have to share right now is a quick tip on modifying the login prompt.

One of the things I dislike about Crux is that the login prompt, located at /etc/issue, is rather sparse — so sparse in fact, that it doesn’t clear the screen of debris when I log out. I’d prefer it behaved like Arch, where logging out cleared the screen and showed only the login command.

So how to feed a “clear screen” command into the /etc/issue file? Easy.

clear >> /etc/issue

Naturally, you’ll have to be root to do that (or a reasonable facsimile thereof). Once the escape key sequence for the “clear screen” command is tacked onto that file, you can move it around inside there and cue the blank screen before the text is shown. Simple enough, right?

While you’re adjusting the login prompt, you might as well add some gigantamo text with figlet, colorize the whole affair with cadubi and really pimp your ride.

But let’s not go overboard, friends. :D

Pictures at an exhibition

With apologies to Mussorgsky, here are a few framebuffer screenshots of the two Crux systems I have running without X now. One I mentioned a few days ago (sorry for the lack of attention; I am counting the days until the first full week of July) when I told about the larger Thinkpad coming back from the repair shop. The smaller, of course, is the machine I use daily for everything from writing up blog posts to distracting myself with Freecell, to digging around the Internet for the correct name for an old symphony. ;)

All of these use screen with the vertical split patch, although dvtm would probably be a worthy alternative. I think screen-vs has a little more freedom in arranging and slicing up your LCD real estate than dvtm, and I feel screen-vs is a little faster on the redraw for most applications. However, I certainly wouldn’t discount it as an option.

As mentioned elsewhere, this is more or less the standard setup for my torrent machine, a 24-7 online machine.

That puts rtorrent at the top in a slim box, letting me just take a look at the status without too many details. It also leaves elinks on the screen in a box of considerable size, while giving me a proper system profile and a good look at network traffic with slurm. That’s what I like, all at the same time.

I threw this together the other day, and recreated it this morning as another option for that machine. It takes a little while to get it quite right, but it’s good when it’s done.

Similar applications, mostly because I don’t have too many options for software on that machine. No point in installing a long list of (albeit lightweight) programs that I wouldn’t use. But this arrangement gives me a little more space for elinks, while chipping down a little at the space for the system profile. I have both iftop and slurm running this time in smaller areas, while leaving open a root prompt.

(This machine is set to automatically sync with the Crux repositories once a day, and automatically update itself. The other two machines can refresh against it, and since all three are Coppermines, I can just install the compiled package on the little Thinkpad or the Inspiron. Convenient, yes?)

That arrangement also pushes rtorrent to the sky, but this time squeezes htop into a slim bar at the bottom, where I get only the CPU, memory and swap meters. Sort of conky-esque, don’t you think?

Back to the little computer now. Here’s an unusual arrangement, but useful when writing up a blog post or digging up information on troublesome hardware.

At 800×600 this allows elinks most of the screen, with both hnb and vim getting a share. I have alpine showing in one little window there, but it’s usually where I put Charm if I am concocting another Internet complaint. It’s functional and fast, and I can use screen’s copy-and-paste tools to move information between applications. Thank goodness for that. …

This is more of a distraction than anything. MPlayer, vitetris and myman, all at once.

Not that I watch my DVD rips while playing two games at a time. It’s just an example of using the thing as a complete waste of time, instead of work-work-work. :mrgreen:

But this one is the most practical, and most common for this machine. This puts all the good stuff together on one plate, and still has lots of area for more.

MPlayer for a distraction, system profiles on the left, elinks and alpine on the right. Usually I pop centerim or irssi in and out of those right-hand boxes, or do whatever needs to be done with mc or vim. The right-side boxes are around 400×300, more or less, and the left side are usually about 400×200. Good sizes for most applications; not too small, but not overbearing either.

As yet-another endorsement of an X-less system, I have to repeat how satisfying it is to build a machine like this. Boot times are as low as 11 seconds for the 550Mhz machine; even less for the faster ones. System overhead, as you can see in the screenshots, is so slim as to be unnoticable, and unless you’re doing something processor-intensive, you’ll probably never see any real CPU or RAM use.

You don’t have to suffer through X software revisions, video driver glitches or system-wide software substitutions. As you can see, I still watch movies, and I still swap photos with family members. And I suppose if I wanted, I could probably scrape YouTube for those precious Flash videos of snails racing, convert them, and watch them against the framebuffer. Not interested personally, but I know it’s crucial to some. :roll:

The prodigal son returns

This is all my fault. I take full responsibility for it; it happened because I was lazy.

I usually do repairs myself. It’s not a point of pride; I am neither trained in computer repairs, nor do I have any kind of background in electronics. I just feel labor prices are too high, particularly since the guy behind the counter sometimes has as little, if not less, expertise or qualifications than me.

But I do get lazy. I do occasionally think that the tradeoff in time and money for me to do the job is worth not having to think about it, add it to my action-priority list, or wait for all the little details to fall together.

Laptop LCD screens, in my experience, are some of the easiest repairs to make, and I’ve done at least a dozen if not more in the past. It depends on the model of course, but generally speaking it’s not anything hard to do. If you take your time and look up the service manual and find that one little screw that’s hiding, it’s no worse than changing the oil in your car.

So why I sat on a laptop with a busted screen for a year (not literally ;) ) without doing anything about it is, in retrospect, kind of strange. It worked fine, all the parts were there, it was actually an exceptionally agreeable machine … but for some reason I let it sit in the corner and play torrent slave for most of a year, while I kept delaying and delaying a repair.

To my credit, I did try once to replace the screen on my own, but ended up with the wrong part. I guess really, it was a year after that, I decided to let someone else do the dirty work.

And so two months ago I delivered an erstwhile functional laptop to a local repair shop, with a blank hard drive and enough ancillaries to allow someone to test it.

And now it’s back. Sort of.

You see, it’s not the same machine. It’s the same model, and the same brand, and even the same specifics … generally speaking. But the first clue that the computer hadn’t been repaired so much as replaced was the sticker on the palmrest.

As a matter of course I carefully remove all the “Designed for Windows” emblems that festoon the planet’s machines like squashed bugs on a windscreen. I consider it an act of environmental courtesy, sort of like picking up after your dog makes a mess in the park. (Yes, I did just equate Windows stickers to dog feces. Roll with it. :twisted: )

So you can imagine the sort of look I had on my face when the repairman opened the clamshell on 97-546L8 and there was a rather worn and faded-looking “Made for Windows 2000″ sticker on the left palmrest.

In that split second I knew first of all that this was not the same machine I asked for repairs two months ago. I suppose I could have made a scene at that point, but in the same fraction of time, I ran through some important background information.

First, the original machine was free. It was literally dug out of a garbage heap and handed to me gratis, as sometimes happens.

Second, the machine in front of me was in good condition, or at least as good a condition as the machine I surrendered. A cursory look showed no obvious physical flaws, no obvious dissimilarities to the other.

And it was likewise an obvious sister to the original machine, so I felt I could be somewhat comfortable in assuming it was an identical model with identical guts.

So the question I posed to myself at this time was, do I make a stink, or do I play along and take the chance that this is actually a more valuable machine?

I made my decision after the technician on hand powered up the machine, then plugged in the AC adapter. Obviously the battery was holding a charge. The screen was beautiful and clear. Color was good. And it booted cleanly into Windows 2000. (This is the part where I remind you that I delivered my old machine with a blank hard drive. I don’t trust computer technicians not to go digging through my stuff, and neither should you.)

Once Windows 2000 started, the technician dug out the repair invoice and I quickly found a system profile. I couldn’t find a processor speed, but I could see that there was 256Mb of memory in this machine. That’s twice what the old one had.

So in review I was looking at a relative of the old garbage-heap machine, with twice as much memory, a free installation of Windows 2000 (which is worth nothing to me), and a clean, scratch-free LCD, all for the price of a screen “repair.”

What can I say? I took it home.

Maybe I got the better half of the deal, maybe not. It turns out that the CPU is only 700Mhz; the old one was 750Mhz. Both are/were Celerons. The hard drive is the original one I brought in — the Samsung MP0402H, although it wasn’t blank any more. There’s a hairline crack on one corner, but it’s definitely no worse than the dumpster-dweller I brought home: It doesn’t smell like a pile of rusted oil filters.

And I got a free stick of memory and a free installation of Win2K, as well as a valuable lesson on cultural interpretations of “How long will the repair take?” to a native English speaker, and to a native Japanese speaker. Education is priceless.

And so, ladies and gentlemen, I give you … 97-201v7, the newest member of the K.Mandla family.

 

Overall I’m happy. Yes, it was overpriced — all “professional” repairs are overpriced. But I can hardly complain about getting an almost new old computer to “replace” the screen in an old one … considering I got a few little bonuses on the side too.

All the same, no more lazy. Next time, I do the repair myself. :)

Overpowered?

Ubuntu LinuxKnowing that my own perspective on computers and usability is slightly skewed from the norm, I occasionally hesitate to offer an opinion on certain topics. It’s not because I think I’m wrong, but because my own opinion is so far away from the median that I’m afraid I’ll be mistaken for a troll, or perhaps even a lunatic. (I don’t know which would be worse. … :roll: )

This time it was a thread called “overpowered,” asking why so many Ubuntu users seem to use machines far beyond what is technically required. I felt like answering, but knowing that I occasionally resemble the weirdo hermit living alone out on the mountain, I decided not to.

The answer, of course, is obvious. People buy newer, faster, higher-end machines — particularly multicore systems and cutting edge video cards — because they feel there is some sort of application that demands that power. And that can mean a dual-boot system for gaming, compiling power, virtual machines, rendering power, and so forth.

I can appreciate that — after all, one of the main reasons (aside from sentimental value) that I keep my Inspiron is that I need the “muscle” to do some of the compiling for other, older computers. Of course, nowadays, the idea of using a 1Ghz machine for compiling “muscle” is almost laughable.

At the same time, I can sympathise with the original poster’s question. I don’t think it inflammatory at all. For all the people who respond that they need that “power” for gaming or rendering or compiling, I’m wondering how many of them actually require it on a regular basis … and how many rarely, if ever, need anything beyond the comfortable 1Ghz I consider to be speed demon.

It’s not for me to say. I don’t know how much compiling or rendering or virtual machine use is allotted to the casual Ubuntu user. When I used Ubuntu on a daily basis, it was extremely rare that I needed to compile something, considering that the bulk of Ubuntu is prepackaged and ready for anything.

I do have another hypothesis — that the push for newer, faster hardware is a bit of an aftertaste from using Windows, or owning Mac machines. Call me crazy (plenty of people do :roll: ), but the blanket solution for most Windows users for any performance decay is invariably new hardware. Faster machines, more memory, a larger hard drive, a newer video card.

I used to follow that same trap (I use the word “trap” deliberately here) too, so please don’t be offended if I have somehow labeled you; I’m labeling me too. After all, you’re talking to the person who sank $3000 in a then-state-of-the-art Dell M170 way back in late 2005, only to sell it off again a few months later, once dual core machines hit the market.

But knowing that the best solution (short of switching operating systems) for poor performance was to sink more money in a computer … well, I may be crazy, but I think some people might be ingrained with the idea that better-faster-stronger is only possible with new components.

So reflexively, regardless of how long we’ve used Linux or how we came to meet it, everyone (me too, and I sometimes have to pinch myself as a reminder) naturally assumes more power is necessary, newer hardware is necessary, the latest and greatest is necessary.

Of course that’s only true if my original response — there exists some application which requires that power — is true. For me, and probably for the majority of “casual” computer users, I don’t think multicore, cutting-edge components are actually “necessary.” Checking e-mail? No, not really. Watching YouTube videos? Well, some power is required, but I can get it done at 450Mhz if I want. Gaming? Depends on the game, really.

Again, I don’t have an answer except for the obvious: People buy it because they do something that needs it. But on the other hand, I can’t help but wonder what use there really is, if we strip out all the compilers, the renderers, the virtual machine users, and we’re left with the day-to-day users, chatting, surfing, and playing Tetris.

Which by the way, is 25 years old, as of last week. How’s that for a roundabout closure to a blog post? :mrgreen:

On the menu

I have mentioned a couple times that I have been running without X for quite a while, on my main system. Here’s what’s running on it; some of this appears on the Software page, but some isn’t really listed there.

  • alpine, for e-mail
  • antiword, in the odd case I need to decipher a Word file
  • axel, which is a fantastic download accelerator
  • calcurse, as an organizer and day planner
  • centerim, which connects to Yahoo chat for me
  • cmatrix, which I use mostly as a screensaver
  • the Terminus console font, which offers fantastic readability at very low resolutions
  • elinks, the only console browser I will use
  • freecell, for occasional entertainment, it’s a bit too addictive though. …
  • fttps, the console download manager that blice put together
  • hnb, which is great for any kind of nested list, and holds a lot of my notes to myself
  • htop, which is vastly superior in almost every respect to the standard top display
  • iftop, my favorite network monitor of the ones I have looked at (and I’ve looked at a lot … )
  • irssi, which I use when I chat (which is rare)
  • mc, as if there was another console-based file manager to consider :P
  • mocp, which is simply the bestest music player, console or graphical
  • myman, which is as distracting as freecell, but in a quicker, shorter way (I hate that pinkish ghost … :evil: )
  • ncftp, although to be honest, I rarely need this
  • nethack, which absorbs hours of time … which I don’t have these days
  • rtorrent … of course
  • screen, with the vertical split patch, which makes it all come together in an amazing way
  • slurm, although to be honest I use iftop a lot more
  • snownews, but I don’t read news feeds much these days, so it might just be taking up space
  • tpp, but I really don’t have a use for it
  • tty-clock, which is more readable at a distance than screen’s clock display … that’s important when you’re vacuuming the house before going to work
  • vim, which is slowly becoming less and less cryptic for me, and more usable
  • vimwiki, which can hold any notes which don’t quite work in hnb
  • vitetris, which of the four games I have mentioned, is probably the one I enjoy the most often

For all practical purposes, the things I’ve mentioned thus far don’t need a framebuffer to be useful. These three aren’t really workable without framebuffer support, which should be obvious.

  • fbgrab, for screenshots … everybody loves screenshots ….
  • fim, which shows pictures and stuff, when they’re needed
  • mplayer-fb, which is kind of what I call mplayer with support for only the framebuffer as an output device

And that’s about it. If you’re running console-only and need some ideas, there are a few. For now though, that’s what’s on the menu here. ;)

No news is not news

Arch LinuxReal-life commitments continue to monopolize my free time, so I’ll apologize once again for failing to offer any tangible updates in my Linux adventures. What little time I have left over is usually dedicated to household chores; yes, it is that bad.

But the end is in sight, and I promise in a month’s time a much more impressive array of thoughts, ideas, suggestions, tips, tricks, explanations, pontifications and blather.

In the mean time, I can tell you I’ve been toying with my old Windows 2000-knockoff, for no real reason other than it takes little effort or time to tweak and adjust.

That’s IceWM running on Arch; all of my configurations and adjustments are the same as they were in my earlier post. The only real headway I’ve made in this version is the discovery that by omitting any and all smoothed fonts — in other words, installing only the 100dpi ugly-as-heck fonts, plus the Tahoma font — there seems to be a more consistent use of the 8-point unantialiased Tahoma across GTK2.0 applications. (And it makes Firefox render faster. :mrgreen: )

That probably makes no sense at all. Suffice to say I was relying on a lot of GTK1.2 stuff in my earlier renditions, to keep the same “look” between applications and menus. Occasionally an application grabbed the wrong font, and displayed something smoothed. Giving no option seems to force them to rely on Tahoma.

Which is what I wanted, really. I might, if I have the time ( :lol: ) see about desktop icons, since that’s really the only remaining superficiality that needs attention. Desktop icons are a bit of a bore for me; I rarely use them on a Windows machine anyway, and I’d just as soon omit them from a pretend Windows desktop. But I might try.

It’s about the only thing I have time for any more. :shock:

uzbl is quite usable

Arch LinuxI’m always excited when I discover a new browser. Firefox is like the obligatory pacifier for any open-source software discussion. Yes, I suppose it deserves a place in the list of free software successes, but I still feel slightly guilty whenever I use it, because of that little voice in the back of my head that whines, “Firefox, again?!

Firefox is not the only, or the best option for most people. There are dozens — maybe even hundreds — of workable browsers out there, but Firefox is like the teacher’s pet — that annoying kid at school who wasn’t necessarily the brightest or most talented, but got all the attention anyway.

In any case, finding something completely new and original in the field of Web browsers is an added fillip to the joy of discovering a new application. I apologize if this is somewhat inconsiderate, but any one browser is generally arranged and works like every other. They all look the same to me.

So uzbl — I’m assuming it’s pronounced “usable” — blindsided me. Your father’s browser, this is not. This is, for all practical purposes, an Arch-only weapon, although I’m sure it can be installed in other distros. But the easy way to get at it, if you want it, is to install Arch and conjure it up through the magic of AUR.

And the end result? How about a box, with a page in it. So what, you say? So look closely: It’s a box with a page in it.

 

And that’s all. No buttons, no address bars, no back and forth controls, no home button, no reload button, no hotbutton bars, no rss dropdown menus, no up, up, down, down, left, right, left, right, b, a or anything like that. It’s a box with a page in it.

So where’s the joy in that, you ask? Well, look back at the original manifesto for uzbl, which reads a bit like the American Declaration of Independence. In short: Everyone else is doing it wrong, and we will do it right.

Right it is, too. vim-style keybindings, simple one-key url-entry commands, infinitely customizable through the configuration file (there’s a sample in the package that you really want to start with; no configuration file makes uzbl sort of … unusable :roll: ), and best of all … fast.

Wicked fast. Frighteningly fast. A speed Firefox can’t even dream of. I swear I have LCD image persistence from the speed of uzbl drawing up a page. :| Okay, maybe not.

Of course, a lot of that speed comes from Webkit, but part of it also comes from the fact that uzbl weighs about a buck-oh-five. Without all those knobby buttons and cutesy icons, there’s room to move fast.

All the same, this won’t appeal to everyone. It takes a little while to get used to, and of course, there are those oh-so-critical extensions Firefox addicts cling to, like security blankets. (One day someone will invent an extension that strips out all the other extensions, and everyone will realize how encrusted with extensions they had become.)

But if you enjoy a minimal environment, perhaps something tiled or even just exceedingly svelte, uzbl deserves a hero’s welcome. It’s light, it’s fast, it’s flexible to the nth degree, it’s unobtrusive, unforgiving and obviously designed by and for people who enjoy making their computers do exactly what they tell them to.

If you count yourself in the same group, check it out.

Next Page »


Welcome!

Some recent desktops


July 3, 2009
Openbox 3.4.7.2 on Crux Linux
1Ghz Pentium III 512Mb PC133


June 16, 2009
screen-vs on Crux Linux
700Mhz Celeron 256Mb PC100


June 18, 2009
screen-vs on Crux Linux
550Mhz Celeron 192Mb PC100


Feb. 13, 2009
Awesome 2.3.4 on Crux Linux
100Mhz Pentium 16Mb PC66 120Gb

A recent game


Neverwinter Nights
Gnome 2.26.1 on Ubuntu 9.04
1Ghz Pentium III 512Mb PC133

Be counted!

License

This work is licensed under the GNU Free Documentation License. Please see the About page for details.

Downloads

Blog Stats

  • 1,203,563 hits

Categories

Archives

Calendar

July 2009
S M T W T F S
« Jun    
 1234
567891011
12131415161718
19202122232425
262728293031