Kasperian Moving Parts

nVidia 177.80 Released!

by Jason 'vanRijn' Kasper on Oct.08, 2008, under Desktop, KDE

vooba!

Holy crap. KDE 4.2 frickin’ flies! And contrary to my previous post, now if I set IPP=2, everything’s blazing fast and I’m actually able to resize konsole again! WooooooT!!!  YAY progress!!!

[[ UPDATE ]] : Added link to my previous post. I had already posted my xorg.conf settings and since then, the only thing I’ve changed was IPP=2 from IPP=1. HTH!

8 Comments :, , more...

KDE 4.2 (trunk) Now Rocking On My Thinkpad T61!!!

by Jason 'vanRijn' Kasper on Oct.03, 2008, under KDE, Linux

My work laptop and main computing device is a Thinkpad T61 with an nVidia Corporation Quadro NVS 140M (rev a1) card. It’s been a frustrating last year in trying to run a KDE4 desktop as my main work and development environment because of the problems with the proprietary nVidia drivers that show up in KDE4. However, this little post is definitely more of a Huzzah!!! than a disgruntled grousing session. Lord knows we’ve had plenty of those. =:)

Thanks to the folks at nVidia who are diligently working on improving the problems in their drivers!!

Anyway, I’ve followed everything I could find on Lemma’s techbase pages and in the nVidia forums, but nothing has worked. Until now!

I’m running the latest beta from nVidia (177.78). I also discovered that for me, contrary to what everyone else seems to be saying, if I use InitialPixmapPlacement=2, performance is MUCH worse than if I use InitialPixmapPlacement=1. Using the benchmarking tools from the techbase page, I found that on the Penrose Tiling test, using Opera, the Canvas test would take up to 30 seconds for me if I did “nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1″ before running it. However, if I did “nvidia-settings -a InitialPixmapPlacement=1 -a GlyphCache=1″ instead, then the Canvas test only took around 2.5 seconds. WOW! So I added “nvidia-settings -a InitialPixmapPlacement=1 -a GlyphCache=1″ to my X startup script and was very pleased to discover that KDE 4.2 now is VERY usable on my little laptop!!! Again, HUZZAH!!!

For completeness, then, here is the Screen section  from my xorg.conf:

Section “Screen”
Identifier “Screen0″
Device “Device0″
Monitor “Monitor0″
DefaultDepth 24
Option “RenderAccel” “True”
#Option “RandRRotation” “True”
Option “UseEdidFreqs” “False”
#Option “UseInt10Module” “True”
Option “TwinView” “1″
#Option “TwinViewOrientation” “Clone”
Option “TwinViewXineramaInfoOrder” “DFP-0″
#Option “UseCompositeWrapper” “True”
Option “AddARGBGLXVisuals” “True”
Option “DisableGLXRootClipping” “True”
Option “DamageEvents” “True”
Option “TripleBuffer” “True”
Option “UseEvents” “True”
#Option “DynamicTwinView” “True”
Option “FlatPanelProperties” “DFP: Scaling = Centered; CRT: Scaling = Centered, Dithering = Enabled”
Option “OnDemandVBlankInterrupts” “True”
Option “PixmapCacheSize” “2000000″
Option “AllowSHMPixmaps” “False”
Option “BackingStore” “True”
#Option “NvAGP” “3″
#Option “ConnectedMonitor” “DFP”
Option “metamodes” “CRT: 1680×1050 +0+0, DFP: 1680×1050 +0+0″

SubSection “Display”
Depth 24
EndSubSection
EndSection

To be honest, I am not 100% sure which of the recently-changed variables in my setup have resulted in this improving so drastically–whether the new nVidia driver beta (177.78), the xorg.conf changes, or the InitialPixmapPlacement=1 change–but the end result is that I’m now able to use KDE 4.2 (trunk) quite happily and I’m thoroughly stoked about it.

Hope this helps some other poor soul out there. Oh–also, does it sound far-fetched that IPP=1 would work better for me than IPP=2??

12 Comments :, , , more...

Multi-Monitor Setup On A Single Physical Head (Now Better!)

by Jason 'vanRijn' Kasper on Oct.03, 2008, under Desktop, KDE, Linux

That’s a big title, eh? I blogged previously about setting up a multi-head X environment for development and testing, even though I’m working on a laptop with only one card. My previous attempt used Xdmx and multiple Xephyr displays, and there were some problems with it. Thankfully, Lubos commented about his nifty little fakexinerama library that achieves the same result only MUCH easier (easierly?) and without any of the problems that I’d seen using Xdmx/Xephyr(1..n). Here, then, is a description of what I’ve done and the results….

This is a screenshot from within the Xephyr session, showing the 1600×1200 Xephyr display. The cool thing is that using ksnapshot from within the Xephyr session will actually capture the entire display, not just what fits on your host display. This is important for me because my laptop LCD display is only 1680×1050, so I can’t actually fit the entire Xephyr display inside my real physical display. Nice to know, definitely, since this means that I can create a monstrous Xephyr display that doesn’t fit inside my actual host display and still get full-display snapshots out of it. So what you see here is a KDE3 session spanning all 4 Xinerama heads. Kicker correctly only spans head 1. VMware Workstation is on head 2, in full-screen mode, but only full-screened on the second head. It can span more than 1 head as I’ll show further down.

screenshot-ws-fullscreen-enabled

To achieve this, I downloaded seli’s fakexinerama library, compiled it in ~/build/ like this:

gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0 -shared
ln -s libXinerama.so.1.0 libXinerama.so.1
ln -s libXinerama.so.1 libXinerama.so

I then copied the real /usr/lib/libXinerama.so.1.0.0 to /usr/lib/libXinerama.so.1.0.0.real (make sure you backup your library!) and set up an alias in my ~/.profile so that I can easily switch on and off this fake xinerama library. When I start up my real host session, I don’t want to be using fakexinerama, but when I launch my Xephyr session for multimon development, I do need it to be there.

xin () {
if [ "$1" = "real" ]
then
sudo cp /usr/lib/libXinerama.so.1.0.0.real /usr/lib/libXinerama.so.1.0.0
elif [ "$1" = "fake" ]
then
sudo cp ~/builds/libXinerama.so.1.0 /usr/lib/libXinerama.so.1.0.0
else
echo “real or fake?”
fi
}

Here’s the contents of my ~/.fakexinerama config file:

#Configuration file ~/.fakexinerama
#
# The format of the file is rather strict. Lines beginning with # are comments. First line is one
# number, specifying number of screens. This line must be followed by this number of lines, each
# containing four numbers: X Y W H, i.e. screen’s X and Y origin, width and height.
4
0 0 800 600
800 0 800 600
0 600 800 600
800 600 800 600

This establishes a 2×2 4-head xinerama configuration. Next up is creating the Xephyr display. From within your regular host session:

Xephyr :2.0 -ac -br +xinerama -screen 1600×1200 &
xterm -display :2&

You should now have a single Xephyr screen that’s 1600×1200 pixels with an xterm running inside of it. Now switch focus to the new xterm window and turn on the fakexinerama library and start up a KDE3 session:

xin fake
startkde
# (and when you’re done with this little environment, make sure you return your system to sanity by running “xin real”)

That’s about it. Really cool stuff. One last little screenshot… This one shows VMware Workstation spanning multiple heads. This obviously works with real external monitors as well. The way it works is by clicking the little monitor button to the right of the “View” menu. This tells Workstation to cycle through the available display topologies. So, on first press, Workstation spread across all 4 heads (fullscreen multimonitor, largest topology). Second press took on this configuration that I screengrabbed (vertical span). Third press spread Workstation horizontally across the first 2 heads. And then 4th press returned Workstation to just fullscreen on head 2 (where I started it from).

screenshot-ws-fullscreen-enabled-multimonvert

One last thought on the subject… One of the things I’m hopefully going to be able to work on in the next couple of months is implementing the new EWMH _NET_WM_FULLSCREEN_MONITORS hint in various X window managers. Currently, Workstation does some internal gyrations to convince window managers to allow our undecorated fullscreen window to maximize over multiple monitors/heads. _NET_WM_FULLSCREEN_MONITORS was the hint that was recently added to the EWMH spec to correctly accomplish this, but as far as I know, it hasn’t been added to any window managers yet. I’m excited about getting the chance to get up to speed on some window manager internals again! It’s been a while since I’ve last had the chance to do that (bbkeys/blackbox days of yore!).

Anyway, hope this helps someone else set up a multi-head dev/test environment, should the need arise. =:)

8 Comments :, , , , , more...

A Poor Man’s Multi-Monitor Setup On A Single Physical Head

by Jason 'vanRijn' Kasper on Sep.25, 2008, under Desktop, Linux

screenshot-xdmx-xephyr-multihead

Finally!! I’ve been trying to figure out how to do this for a while now. Namely, I need to be able to test multiple display stuff out in Linux and being that I use my laptop pretty much exclusively for development, and I don’t have mulitple physical monitors handy at home (and certainly not whilst travelling), I’ve been thus far unable to test anything multi-head-ish. But, thanks to Xdmx and Xephyr, this is now possible.

Xephyr :3.0 -ac -br +xinerama -screen 600×400 &
Xephyr :4.0 -ac -br +xinerama -screen 600×400 &
Xdmx :5 -display localhost:3 -display localhost:4 +xinerama
export DISPLAY=:5
openbox&
xterm&

So, the first 2 lines start up X-within-X displays on localhost:3 and localhost:4. The third line starts up the distributed multi-head X server, Xdmx, and tells it to use 2 displays (the two Xephyr displays started in lines 1 and 2) as the back ends. The fourth line exports a new DISPLAY variable (:5 — the Xdmx uber-display) that openbox and xterm both use. The screenshot shows my 1200×400 Xinerama 2-head X session, with the xterm dragged half-way between the two heads.

There are still some things that I need to figure out with this. Moving the mouse between the virtual heads is a little wonky (read: doesn’t work?). But at least, this is a promising beginning of what feels like a really cool answer to this problem. Anyone else have any insight to add to this? Any thoughts on how to get the mouse to behave sanely between virtual heads (which are actually X windows on my host)?

6 Comments more...

The N810, Lack of PIM apps, and Palm OS VM

by Jason 'vanRijn' Kasper on Sep.19, 2008, under Life in General

So, about the biggest complaint that I have with the N810 thus far is that it doesn’t have good, syncable-with-my-Linux/KDE-desktop PIM apps. At least, none that I’ve seen yet. And yes, it would be super neato if I could run KDE PIM apps (korganizer, kaddressbook, etc.) on the N810, but that still doesn’t address the syncable-with-my-Linux/KDE-desktop problem. I have discovered, though, that the Access people (those who bought the Palm OS or something) are providing a Garnet (Palm OS) VM for the Maemo platform!!! You can find out more about it here and download it/install it on your N810 pretty easily.

What this means is that you can run all of your Palm applications on your N810! I’ve not tested this extensively yet, and I intend to try installing some of the Palm apps that I have on my real Palm devices on the Garnet VM on my N810 and see how it fares this weekend. But the coolness of this is that via the Garnet VM, you can have PIM applications (albeit not as sexy as what will hopefully eventually be available for the Mameo platform natively), but most definitely syncable with your Linux desktop through KPilot!!

Be on the lookout for a post from Bertjan explaining more about this. =:)

4 Comments more...

Nokia N810 and Videos

by Jason 'vanRijn' Kasper on Sep.19, 2008, under Movies

Dear LazyWeb,

I have ripped/encoded a bunch of (my own) movies previously in order to watch them on my PSP. The command I’ve been using is a variation of this:

mencoder -sws 9 -af volume=10.1:0 \
-vf pullup,softskip,scale=320:240,harddup,unsharp=l3×3:0.7 \
-ofps 30000/1001 \
-oac faac -faacopts br=128:mpeg=4:object=2:raw -channels 2 -srate 48000 \
-ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=libfaac\
:abitrate=128:vbitrate=500 \
-of lavf -lavfopts format=psp \
-aid 128 dvd://1 -chapter 01-04 \
-o $HOME/Movies/Seinfeld/Seinfeld-Season5-11-TheConversion.mp4

… which plays fine on my PSP. Unfortunately, these mp4 movies do not play on my shiney new Nokia N810. I’ve tried using Canola, as well as the built-in media player application, and they both don’t recognize the data as something they can play. I tried installing MPlayer on the N810 and, while I seem to remember it thinking it could play it, I also seem to remember it skipping, stuttering, and falling all over itself in trying to actually make it viewable. I also tried installing VLC, but when I try to launch it, no UI comes up?

Anyway, if someone could point me to either a way to view these movies on my N810 or to the best mencoder command to watch the best resolution/quality movies on my N810, I’d greatly appreciate it. =:)

[UPDATE]  Actually, it looks like MPlayer on the N810 does a really nice job! I think the problem that I was having previously was that i was trying to do something else (why does copying/pasting from a UPnP share use so much CPU??) at the same time that MPlayer was trying to play a video. But I just pulled over an mp4 of Office Space and MPlayer played it beautifully–without any hiccups or stutters. Here’s to hoping I don’t have to re-rip everything I’ve already done for my PSP!

4 Comments :, , , more...

Nokia N810 and an 8 GB Micro/Mini SDHC Card

by Jason 'vanRijn' Kasper on Sep.18, 2008, under Life in General

After reading about a whole lot of problems people have been having with SanDisk micro->mini SDHC card adapters on the N810, I bought this awesome little Kingston 8GB Micro SDHC Mobility Multi Kit Model MBLY/8GB over the weekend for only $30(!!) and just got it in the mail today. After figuring out how to actually put the thing in (label-side up like normal–it’s just a bit of a weird fit), I was pleasantly surprised to find that the N810 promptly displayed a “Memory card available” message and that I could use the card just fine. The 8GB card came pre-formatted as vfat (FAT32) and only reported as having 7.4GB available, which is, I guess, normal (albeit annoying). I reformatted the card on my laptop to ext3 and it came out at 6.8G available. Forget that! Reformatted it as ext2 and it came back up to 7.0GB available (really, guys?? how can you lose a whole GB from what’s described on the package???). I’ll leave it as ext2 for a while and see if there’s any advantages/disadvantages. I was thinking that ext2 would be better for installing KDE packages, etc., but I’m honestly not sure. And I may end up reformatting as vfat/FAT32 just to get my 400 MB back. =:(

Anyway, I’m pleased to announce that this is a really good combination that worked out of the box for me. I’ve seen none of the problems I was so worried about. And, this little kit comes with a micro SDHC card (duh), mini SD adapter (needed for the N810), full SD adapter, and even a USB adapter. Pretty sweet!! HTH!

14 Comments more...

Modeline Generation and Xinerama Info

by Jason 'vanRijn' Kasper on Sep.16, 2008, under Linux

So, I’m trying to think positively about the 3-hour battle I just had with X. I learned 2 new things today, which I didn’t really want to learn but yay nonetheless.

First, Xinerama. I’m going to be doing multiple monitor stuff for work, which should be really interesting if I can keep my self-imposed stress level down. I have never had more than a single monitor to use on any given desktop or laptop until I started working at VMware, and as such I am currently less than clueful with how all of this stuff works in X. (As an aside, if anyone can refer me to some really good documentation or multi-head/multi-screen/multi-monitor/multi-display Linux/X resources, I’d greatly appreciate it!) So today I was looking into a bug report that had to do with a Twinview side-by-side display configuration, and I discovered that “xdpyinfo -ext XINERAMA” will tell you what the screen topology looks like currently. For example, my normal Twinview cloned 1680×1050 setup looks like this:

XINERAMA version 1.1 opcode: 158
head #0: 1680×1050 @ 0,0

… whereas if I change it to a side-by-side 1680×1050 configuration, I believe it will show this:

XINERAMA version 1.1 opcode: 158
head #0: 1680×1050 @ 0,0
head #1: 1680×1050 @ 1600,0

(I can’t be certain since apparently in all of my fiddling, I disabled Xinerama in my /etc/X11/xorg.conf file and currently, it shows me this: XINERAMA version 1.1 opcode: 158 head #0: 3360×1050 @ 0,0 *sigh*) This is coolness that I’m sure I’ll be needing to use frequently in the coming months.

Secondly, Modelines. Now, honestly, it’s been years since I’ve had to worry about manually putting Modelines into my XF86Config/xorg.conf files. X has gotten much better since those bad old days and things have pretty much Just Worked (TM). Although I still do fondly remember the days of working with some hard-core X hackers in trying to get my laptop display drivers working (like 10 years ago??) But somewhere between my Ubuntu 8.04 installation and my current OpenSUSE 11 installation, X no longer thinks that it should allow me to output a 1680×1050 resolution to my external monitor (a Dell 2007FPb). I disagree strongly. =;D Unfortunately, my Lenovo T61 laptop looks like crap unless it displays in its native resolution of 1680×1050, so in Ubuntu Hardy, I became accustomed to doing the cloned twinview 1680×1050 thing. Like I said, something broke this when I went to OpenSUSE 11. I’m guessing it’s a newer X version. But anyway, after a whole lotta Google action, I came across a post that suggested another dude use the “gtf” command to find a good X11 Modeline. Wow, cool!! Here’s what it does:

$ gtf 1680 1050 60

# 1680×1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
Modeline “1680×1050_60.00″   147.14   1680 1784 1968 2256    1050 1051 1054 1087   -HSync +Vsync

Awesome!!! I don’t know if this little tool didn’t exist back in the bad old days when X required you to enter this or if I just didn’t know about it, but this would have saved me lots of agony over the years had I known about it. =:) I copied/pasted that into my /etc/X11/xorg.conf inside the Monitor section for my Dell 2007FP, restarted X, and now nvidia-settings will kindly let me use 1680×1050 resolution again. YAY!

9 Comments :, more...

OpenSUSE 10.3 > Kubuntu Hardy -> Fedora 9 -> Mandriva 2008.1 -> OpenSUSE 11

by Jason 'vanRijn' Kasper on Sep.15, 2008, under Linux, Open Source

Looking for the best distro...

I got bored with my Ubuntu Hardy install last week and decided to have a look at what some of the other guys are up to these days. Mind you, there wasn’t anything horribly wrong with my Ubuntu host. I still ♥ apt; IMHO, there’s still nothing faster (although the new package management in OpenSUSE 11 comes darned close!). But anyway, it was an interesting trek across the newest distros and while I was looking to end up with something other than SUSE (again, nothing wrong with it at all–I just like change), I am totally impressed with OpenSUSE 11 and am going to feel satisfied sticking with it for a decently long while, knowing that I’ve shopped around as it were. And I think that that’s really the main point, now that I think of it. It’s why I got involved with Linux originally: I hated Windows 3.1 and didn’t like the fact that there was no way to shop around and make it better. Oh–one other thing I was looking for in a new host: nightly/weekly KDE trunk (4.2) snapshots–and from what I found, only OpenSUSE offers that. Anyway… some random thoughts about the voyage…

OpenSUSE 10.3… I ran this when I worked at CVS. Awesome, solid, stable. Really, really good. I installed this on my work laptop when I started at VMware and was pretty happy with it. What ended up pushing me off of it and onto Kubuntu Hardy was the fact that debugging with gdb on OpenSUSE 10.3 was really, really painful. Just about everything that I tried to “p” or “pt” on ended up making gdb itself segfault. Frustrating and work-inhibiting. Time to switch.

Kubuntu Hardy… Also very stable and well-done. Apt just plain rules the package management scene, I’m convinced. I believe there are architecture issues or something that make other distros not like it, but it is danged fast. Nothing really to complain about with Kubuntu. It worked, worked well, and I don’t think I really had any problems with it. It was awesome to not have gdb segfault on me too. =:/ I started looking for nightly/weekly KDE 4.2/trunk builds and couldn’t find them. Feeling frustrated and stagnant (through no fault of Kubuntu), I decided to switch distros and see what else is out there. A Fedora 9 DVD came in one of the Linux magazines I bought at B&N lately (plus a friend of mine from work runs F9 on his work laptop), and it has been staring me in the face for a month now. I couldn’t resist any longer. Oh! Also, Ubuntu’s graphical boot stuff, while nice, manages to screw up my video card on my laptop if I stop kdm/xdm/gdm from running (which I need to do frequently lately to try out the nVidia beta drops). It stops the display manager and then goes back to the bootsplash screen and when it returns me to my VT, it’s totally messed up and unusable. Impetus enough.

Fedora 9… Words cannot express…. I’m trying to block out the painful memories…. Okay, it wasn’t completely horrible, but they’ve done so many things with Fedora since I last used it that I feel totally uncomfortable in it. I think wireless networking worked decently well. I set SELinux to disabled and kept getting popups warning me that such and such a thing would have been denied if SELinux wasn’t disabled and how that was bad… Couldn’t figure out how to turn that off. Getting my existing LUKS-encrypted home partition working was a pain. I LOVE the RHGB graphical boot magic. That was honestly (shallow, I know) one of the reasons I was looking forward to Fedora 9. Well lo and behold… when the boot sequence has to stop and prompt me for my LUKS passphrase, it drops completely out of RHGB mode (reasonable enough) but then fails to go back into it. Sexiness– and still no KDE 4.2/trunk nightly/weekly builds. On we go.

UPDATE: I had forgotten the biggest reason I ran away screaming from Fedora 9: they’re using newer Xorg packages than nVidia has drivers for. Aiyeeee!!!!

One of the coolest KDE dudes I know (/me waves to Helio) works for Mandriva, so I’ve been meaning to try out the latest Mandriva for a while. I used to use Mandriva on my work laptop when I worked at Rite Aid and was always impressed with it. The package management used to suck a lot, though, which is one of the reasons that I stopped using it. You used to have to go into one application to add packages and another application to remove packages. =:/ I’m happy to say that Mandriva 2008.1 (or maybe an earlier release) fixed the package management stuff and now adding and removing packages happen in the same interface. Yay! =:) Mandriva has always impressed me with its eye candy and extremely solid and well-crafted UI, and Mandriva 2008.1 is no exception to that. Very nice, very pretty, very solid. I’ve hit a couple hiccups with package management, but nothing that a retry (1..n times) didn’t fix. And I like the grouped package management idea, where instead of a single run of 200 package installs, it will group them into logical/related packages and do X at a time… so you have “A of B packages in this group installed; Y of Z total”. And Mandriva is really fast–it always has been. I ended up replacing the OpenSUSE 10.3 install that I had on the kids’ desktop downstairs with Mandriva and we’re all extremely impressed with it. And I really, really, really wanted to keep using it on my work laptop. Until I started trying to get wireless networking to work, and that’s where the wheels fell off. Mandriva uses its own wireless networking configuration and management, instead of using NetworkManager, and when it fails, it fails hard–especially with WPA, it seems. Switching between wireless networks just started to fail miserably and I could not grok what was going wrong enough to fix it. And then I just stopped caring and burned an OpenSUSE 11 DVD… Mandriva: you should really use NetworkManager. It really does Just Work (TM). Oh–and you can install networkmanager in Mandriva, but it doesn’t actually work, from my experience. =:(

And then there was OpenSUSE 11. WOW is a good word for this. They’ve done a really awesome job on the installation process. It has never looked better or been more functional. And there is some serious go-fast juice in the package management now. I don’t know if it’s as fast as Apt yet, but it is so fast that I no longer dread using it in SUSE. And the 1-click install YMP stuff is pure sugary sweetness that is Good For You Too. And wireless networking works perfectly. I’ve not yet seen it fail. And the knetworkmanager changes (Will, I think??) are AWESOME! And the eye candy is delicious. And everything works. And it is really fast. And I like it. Here I’ll surely stay for a good long while, now content that I’ve shopped around and that I’m not just settling for the same thing I used before–that what I’m using really is the best… for me at least.

One last note to squelch any potential “yeah, but you can fix XXX by doing YYYY, you stupid person” comments…. This was a whirlwind tour that happened over the last week or so. I still have to work for a living, so when I switched distros, I did it at night and then actually had to spend the next day working on it for my job. So you could say that this was a trial by fire for these distros and probably more representative of what a new Linux user would deal with and expect than a patient hacker, hell-bent on spending whatever time is necessary to get things working. I’m finding myself sort of between the OS X “I just want it to work and not have to think about it” camp and the hard-core Linux hacker who will stay up all night to figure out why thingey XXX is not working and beat it into submission. I still love the latter, but being that I have to work and be productive on my laptop, I can’t afford too much of it.

Anyway, there’s one brain dump for the week. I have several more I need to do (preview: THE NOKIA N810 JUST PLAIN ROCKS (but DANG we need to get some good PIM apps on there)!!!!!!, and spending all day Saturday to change interior lights SUCKS!, and Opera is still awesome again and getting better!!), but those will have to wait. =:)

31 Comments : more...

First Woot Shirts!

by Jason 'vanRijn' Kasper on Sep.11, 2008, under Life in General

I know… I’m behind the times. But still, I just got these 2 new woot shirts in the mail today and I’m so happy with them! =:)

12 Comments :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!