login
v2
v1

jmoiron.net

linux

pronounced lee-nucks

A free (as in freedom as in costing nothing) kernel and operating system available in the form of several distributions and for free from kernel.org.

posts under 'linux'

Swap is good for computers

posted May 1st, 2008 @ 02:06:49

- tags: linux

- comments: 0

Or, using the distribution upgrade for Ubuntu to move from 7/10 to 8/4. I've tried on 2.5 machines so far. The full install, if you are using Ubuntu and have already downloaded the ~1GiB of package data, can still take around 45 minutes to an hour, and stopping halfway could seriously bork things beyond what a journeyman could repair.

But do not despair. Everything (except some translation file for Russian Blackjack; sorry Russia, you're off the island) upgrades fairly smoothly. However, no upgrade is without it's hiccups, and here are two that "got" me. The "got" means that I was mildly annoyed but knew how to fix them.

One was unique to my situation and probably not due to the Ubuntu upgrade per se, but was definitely something I've been seeing more under the heavier-on-the-memory 8/4 than 7/10, and that was a complete system lockup. Happened when I "did too much". I checked free a couple of times too many before I noticed that my swap wasn't there, but that's how it was. As I might have mentioned earlier, swap is good for computers.

The cause of this is almost certainly some dodgy partition swapping I did a month ago when I installed Windows XP on this computer to play Dreamfall. I had a 10GiB partition all set up for Windows + Game for a long time, but never bothered with the install (YAGNI). When I needed it, I realized (after a few runs of waiting 15 minutes for the Windows installer to load all of it's drivers) that I was trying to install to a logical partition and Windows doesn't appreciate it thank you very much. I had to shift around my swap and Windows partition to make the swap logical and the Windows primary before it would yield and install.

Ubuntu uses drive UUID's in the fstab (and in dev under /dev/disk/by-uuid/); these uuid's don't change as long as the partitions don't change (HEH) and they are also device dependent, so you can put your card reader on /media/cardreader/ and your ipod on /media/ipod even if both are going to be '/dev/sdb'. UUID's for devices are generally a good idea, especially since linux has a habit of switching disks (sdb? sda? who cares!) when their position on the bus switches (or just randomly, it seems). Some people don't understand, but they probably just don't like seeing a big ugly UUID in their fstab. They should get over it because for now it's the best solution if your system is going to be managed programatically. Anyway, I never even remade the swap partition, so after mkswapping it and turning it on, I added the new UUID for the partition into the fstab and presto changeo things are nice.

The other issue is with flash sound. 8/4 moved to the "pulse audio" sound server, which is a Good Thing. PulseAudio is like every other sound server in existence except that it's a lot better and it is easier to integrate via wrappers. One such wrapper is the "libflashsupport" wrapper distributed in 8/4 to wrap the non-free flash player's direct use of /dev/dsp (or alsa, i forget which) in calls to PulseAudio. For people who think that this is just "stupid and pointless", PulseAudio buys you lots of nifty things like program specific volume control and a far better backend architecture than esd or arts, and it would behoove people to finally solve playing a sound without fighting over /dev/ resources once and for all in Linux.

So, if your flash stuff isn't working, the first thing to do is check if libflashsupport is installed. If it is, then chances are pulseaudio is not working correctly on your system. If you didn't have problems before with sound, or just want your goddamn youtube, remove libflashsupport. If your flash stuff isn't working and you don't have libflashsupport, install it. Remember, if you want to not use pulseaudio to edit your /etc/firefox/firefoxrc to use 'aoss' as the audio backend for firefox.

ninrename

posted January 11th, 2007 @ 00:18:46

- tags: development , games , linux , python

- comments: 0

Just "finished" hacking together some code that started out as a small desire and has ended up an obsession of sorts. Initially, it was just going to be a smart, specialized file renamer. It has ballooned into a poorly written (but fairly solid) beast of a program with crc checking and unrar/zipfile support. When I say it's poorly written, I mean it's not beautiful like my xdccq module is, for instance. It isn't elegant in the least, does things in a way that is acknowledged as poor design decisions, and the main dispatch is a giant ugly conditional mess. But it works pretty well!

The script takes a ClrMamePro formatted rom release list and a local directory as arguments (with various options available), and can perform hash checks and smart renames of files to 'Official' names. You can find such formatted files at advanscene or pocketheaven. There is a special switch on the program that removes several hardware dumps from the pocketheaven list and outputs a 'clean' list which will match up more with the 'scene' numbering system.

There are quite a lot of programs like this available, but this one is command line, written in python, runs in linux, suited to logging, and written by me. You'll need the rarfile module written by Mario Kreen (thanks Cheeseshop!) if you want rar support (or if you want the program not to throw an exception when it doesn't find it). You'll also need cksum.py in the same directory because I am feeling quite lazy this time around. Even though there's nothing in there (even rarfile has a windows equivalent wich wraps UnRAR.dll or something) that is overly platform specific, because 1. this was a oneoff, 2. I run linux, and 3. I don't like Windows anyway, this won't run in Windows and I have ZERO impetus to change that.

Anyway, the help screen (options):

usage: gbaname.py [options] datfile [romdir]

options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -c, --crc             perform crc checking
  -r, --rename          perform rom renaming
  -p, --pretend         do not rename but display actions
  -m, --missing         show missing roms
  -g RANGE, --range=RANGE
                        perform only over range (#-#)
  -n, --nds-clean       remove MAX Media Launcher, reorder, etc
  -v, --verbose         ever present verbose mode

Features:

  • looks up files by release number and correlates them to your release info dat
  • performs actions over a range of release numbers (rather than all files)
  • renames files according to the dat
  • performs crc hash checks on files (.gba, .nds, .zip, and .rar supported)
    • if a file fails a hash check and renaming is active, (!) is recorded in the filename
  • clean pocketheaven NDS lists (this feature is pretty dangerous; it will mangle non-PH lists)
  • show a log of 'missing' roms (missing from the current list of known dumps)

If you still want it (it is pretty to look at at least), you can download it. There are some useful recipe's in there, even for what's basically an elaborate one-off... too useful not to throw up on the internet.

There are tons more features I can think of that I'm in no hurry to implement, including a feature that was initially planned which is doing fuzzy string comparisson (using normalized levenshtein distances) to figure out what file is what rather than release numbers (which, afterall, can be wrong). This would provide a great deal of safety to the whole thing (although if your archive's crc files match up it's pretty straightforward to modify this script and fix the names). I won't make any ridiculous patronizing remarks about how this is for your own backups etc and so forth, since most people who are looking for something like this do not own 2600 gba games and fret unduly over their private dump collection. I will add (interestingly) that, using my own linker (which dumps as well), I was able to dump a bad image of my broken Metal Slug Advanced cart and good (matching the 'release' crc!) images of Final Fantasy IV and Megaman Zero 2. So.. hey!

Pound debian

posted May 7th, 2006 @ 19:34:12

- tags: linux

- comments: 0

I bought this new machine, part by part. The Antec case is nice, but there are a few things I wish it had (removable motherboard tray, a more easily removable front) and a few things I wish it lacked (2 bright LED's on the front, an optical drive door).

Installing debian on it has been quite a total bitch; maybe even a bitch and a half. I don't know what is up with the sata controller on there; it might even be these mystery raptors that Johnny gave me, but nothing takes to these things. I finally got a system booting with raid0 on each one after doing some ridiculous swap trick with the pci raid card I have, and then while I was doing some updates the array went to shit and everything exploded.

I tried again using the same trick (which had worked twice in a row), and things just wouldn't go. I'm going to eventually do a bad block check on these raptors, to make sure that they.. well, work. So right now, after 3 days and 12 to 14 hours of tweaking, I still have no system. I might be forced to use one of my IDE drives as the root; I'm seriously thinking of doing this upon my return sunday.

During the whole ordeal, I had been going to #debian for help. I figured, maybe someone here knows why Grub might be failing. The first night, I had been installing the system root to a raid0 partition, and this totally preoccupied everyone.

  • "You can't install onto a raid0; grub doesn't work like that."
  • "You shouldn't use raid0 (at all | for your / partition); it's unstable. You'll lose all your data."
  • "Have you even tried LILO?"
  • "Oh you're using etch. You know what etch is, right?"

I was well aware of course, exactly what they were thinking. I know need a separate boot partition; I had it. I won't lose any data, I'll just lose my operating system. Those are easy to replace; my data will live safely on a raid5 volume. I haven't tried LILO, and that's because I want to use grub. (This is kind of like asking someone if they've even tried DebianBSD while they're asking for help installing Linux) I know what etch is, and if you don't encourage smart people like me to use your testing builds then testing will never get stable.

I understand what people mean, when they say that the Linux community is full of arrogant pricks, but I had always kinda fogriven (them | us?) because at least they're helpful. But.. often, they aren't. You have to show them at length that you know what the fuck you're doing, and even if you've displayed knowledge past the point that they have they'll still claim that you are suffering from ridiculous problems (or just chalk it up to the software you're using being "testing" or "beta" or having no warranties). JWZ writes at length about this problem; he's kind of relegated to throwing out queries to the "lazyweb".

update

The problem with my computer ended up being the overclock settings. It was doing +400mhz quite comfortably temperature wise, but the extra voltage must have been doing something bad to some component or another; probably the controller or the ram. In any case, the system is up and running now, and is quite nice. MY BAD.

dĭ-vĕl'əp-mənt

posted February 21st, 2006 @ 20:19:36

- tags: development , linux

- comments: 0

Since most every other part of this website is a hastily cobbled together piece of crap, I see no reason for the title I've selected not to fail. If it doesn't, let it be known that its due to no merit of my own. My site has shown the capacity to display Unicode Japanese (日本語) characters in the past, so perhaps this won't be any different.

After some recent thinking, far too shallow to be considered soul searching, I realized that my desire to create that led me to CS has not really diminished. Like many of my peers, I have not really done shit. I coded this website, which, frankly, sucks. I've written a lot of blog entries, mostly detailing pointless trivialties of my life. As a historical reference to my thoughts and feelings of a particular month (as these seem monthly now, no matter how much I'd rather them not be), they aren't without purpose. But by and large they don't further any sort of meaningful discourse, or provide anyone with information.

The days of some long detailed entry here are probably over. Expect to see something like my 日本 trip for my upcoming excursion to Egypt. For something big like that, sure, I'll write something coherent. But there's a lot of interesting crap that slips through the cracks; a lot of random stuff that doesn't allow me to take up all of your time, that I still want to call attention to.

First up on the list, is that I've sort of started for myself a small repository of code snippets. This is mostly out of the hope that having an svn will encourage me to incrementally update projects and recognize and fix errors in them in some kind of organized fashion. Or at least, not forget about them. If you're curious, you can check it out yourself.

Johnny informed me yesterday that bmp was retired in portage. Whatever reasons were cited for its retiring, I'm not sure of, but the fact that it is unmaintained probably has something to do with it. The development team has moved on in a new direction, publically abandoning the tree available in many distros. The new tree, BMPx, isn't yet available in lots of distros because its not yet stable.

Enter audacious, a fork of the bmp project before it went loco. They have fixed an entertaining bug dealing with the xmms control socket, which conspicuously lacks solid documentation. This means that some script I wrote some time ago now reports the bitrate and frequency as their actual values, and not 0. They also have made it their duty in life to port a fuckton of plugins to their almost bmp compatible ABI/API. This ammounts to a decent bmp-like package that will play most anything I can think of. My current poison of choice is Debian, so here are some sources:

deb http://vdlinux.sourceforge.jp/ experimental audacious
deb-src http://vdlinux.sourceforge.jp/ experimental audacious

Another thing that you have probably heard of: our (the United States our) vice president shot a man a few weeks ago. At first he kept it from the press for about 24 hours, finally leaking it to a small Texas newspaper, wherefrom the story spread like wildfire. A few days afterwards, Cheney goes to the appropriate brokers of propaganda (fox news) and does an interview in which he describes his thoughts:

But the image of him falling is something I'll never be able to get out of my mind. I fired, and there's Harry falling. And it was, I'd have to say, one of the worst days of my life, at that moment.

There are a few things that are just really, absurdly wrong with the situation. The first is that, with our celebrity based media circus concenrtating full time on the Cheney story, other extremely important news fell through the cracks. That's to be expected by a mass media that does little more than function as a propaganda machine, but it's upsetting nonetheless and deserves mention

The other is that there is a startling disconnect between this story, and especially Cheney's horrified reaction to the outcome, and the wars the United States is waging throughout the world. It deserves mention, although its largely regarded as historical fact already, that Cheney helped in no small part to propagate the lies and deliberate campaign of misinformation that led directly to the death of tens of thousands of Iraqi's and about 2500 US troops. But nowhere is it postulated that perhaps the reality of death and bloodshed, and the horror of watching the man at the end of your gun fall down, could be an occasion to revisit a harsh reality our army lives every day. A reality by and large the "American Public" ignores on a daily basis.

X mouse cursor behavior

posted November 2nd, 2005 @ 06:10:25

- tags: general tech , linux

- comments: 0

Perfectionists may never let Linux be ready for the desktop. I don't think its quite there yet, although projects like Ubuntu have me a little hopeful. Still, what projects like Ubuntu and SuSE and the like do are iron out all of the irritating inconsistencies with their own set of standards. It usually works alright, but patches sit around for a long time, even in central packages to important projects:

**Do you want me to merge these packages?** [Yes / No] yes
>>> emerge (1 of 1) gnome-base/gnome-session-2.12.0 to /
>>> md5 files   ;-) gnome-session-2.12.0.ebuild
>>> md5 files   ;-) gnome-session-2.10.0-r3.ebuild
>>> md5 files   ;-) gnome-session-2.10.0.ebuild
>>> md5 files   ;-) files/gnome-session-2.10.0-esd_switch.patch
>>> md5 files   ;-) files/Gnome
>>> md5 files   ;-) files/gnome-session-2.8.1-hide_splash.patch
>>> md5 files   ;-) files/gnome-session-2.6-schema_defaults.patch
>>> md5 files   ;-) files/gnome-session-2.10.0-schema_defaults.patch
>>> md5 files   ;-) files/gnome-session-2.10.0-no_smproxy.patch
>>> md5 files   ;-) files/digest-gnome-session-2.10.0
>>> md5 files   ;-) files/digest-gnome-session-2.12.0
>>> md5 files   ;-) files/digest-gnome-session-2.10.0-r3
>>> md5 src_uri ;-) gnome-session-2.12.0.tar.bz2

This is just Gentoo, who patch somewhat lightly compared to the more integrated distributions. Patches on a small but integral piece of GNOME have version numbers that are 2 or 3 major revisions old. Patches get put on hold momentarily or indefinitely, because whoever feels they aren't important enough or that they are traveling backwards. Look at how many people had to patch in options for removing spatial when the GNOME devs were shoving it down everyones throat and telling them that if they didn't like it they were foolish.

This is a real problem in oss, and on the Linux desktop in particular. Few are ever happy, because there are simple but distracting mistakes with all desktop environments. Look at any screenshot of xffm, or Konqueror's default font selection, or any number of problems with GNOME that distributors have been fixing for ages. If everyone is changing your defaults (like spatial nautilus, or half of the settings in kcontrol, or using rox in xfce), then your defaults are probably terrible.

This semi-ranting all comes from a single but festering, annoying data point that I decided to finally just learn and fix: mouse cursors in X. Translucency, drop shadow, and animation was provided by Xfree86 4.3 in February of 2002, making the feature almost 4 years old. Software controlled cursors were available before this, but most developers felt that not having these effects was too limiting, and many of the cursor themes were basic or over-detailed. Now, with several professional looking original and cloned variants, attractive cursors are easy to come by. Since a user is going to be staring at the cursor a lot, since its one of the primary pieces of the interface, its a nice touch to make it attractive.

But setting mouse cursor themes isn't instantaneous; X has to be restarted (which might as well be a reboot, since it completely interupts work flow). Changing the setting in the first place is a little complex unless you run KDE or GNOME, and even if you do your theme will most likely be installed incorrectly. Why?

There isn't any real coherent, standardized naming convention for X cursors. What you say?! Well, there isn't a followed convention, and there isn't an existing one that is well formed and outside of draft status. Various applications who want to change the cursor to signify different things to the user ("I'm busy", "Ready", "Waiting...") get to call their cursors by names which may or may not be there. KDE's approach? Use hashes.

00008160000006810000408080010102 -> sb_v_double_arrow
028006030e0e7ebffc7f7070c0600140 -> sb_h_double_arrow
03b6e0fcb3499374a867c041f52298f0 -> crossed_circle
08e8e1c95fe2fc01f976f1e063a24ccd -> left_ptr_watch
14fef782d02440884392942c11205230 -> sb_h_double_arrow
2870a09082c103050810ffdffffe0204 -> sb_v_double_arrow
...

What exactly these hashes are of I couldn't quite figure out; perhaps its some X resource that is more a part of the API than of the theme interface. In any case, many KDE applications won't use the right cursors (and thus, default to the core theme) if you don't have these symlinks set. The one that was particularly disruptive was the default "hand" cursor, which in core theme is large and unwieldy, and has an odd sensitivity that makes you lose the exact point of your mouse. This cursor is ever present; on any link or icon in the entire interface.

Naturally, this is an easy thing to fix. The obvious solution is to standardize on something human readable; ie. not a hash. It would even be mostly sane to standardize on the names used by GNOME, or any set of names really, and then proclaim loudly that you are using this standard. What's a good user to do? File a bug report, of course.

Look at the discussion in the bug report. First, people don't know why the problem exists. This might be because they have long fixed it, or because they have packaged KDE themselves in a way other than what the releases have. In any case, when they realize its probably because of the hashes, the answer is "You do not have the propper hashes set in your cursor theme." How do you get these hashes? XCURSOR_DISCOVER=1 konqueror;; Bug Resolved.

Is it resolved? Shouldn't things like this, and the fact that 1/3rd of the discussion posts are duplicate bug entries, show that perhaps the bug isn't fixed? This situation shouldn't happen; if you are going to go all neato cool with hashes for filenames, then your mouse installing program needs to make a good effort to create the right links. It's something that would make things better, that would alleviate the troubles of many people (I'd immagine that it's a very generous estimate to say that 1 in 100 people who experience a problem will make a bug report). It's something that would be good for KDE's junior jobs program. And it's something that will remain unfixed because stubborn KDE developers who have decided to run with a terrible solution don't want to even admit that it should be done right instead.

With time, FDO will standardize a lot, and hopefully interoperability will reach new highs. But the next level, integration to the Kparts level, probably won't ever happen. The desktop will either be fragmented, or application programmers will be burdened with impossibly complex interoperability standards.

In an unrelated note, I spent some time at work playing with the google maps api.

Fluxbox & mouse wheel semantics

posted May 5th, 2005 @ 23:55:23

- tags: development , general tech , linux

- comments: 0

For those of you possibly uninterested, this is going to almost entirely dwell on esoteric computer usability discussion.

Mouse wheel semantics are easier to talk about than other mouse behaviors. I attribute this to two things; they are mostly unencumbered by Apple usability studies, and there is intuitive spatial reasoning involved in them: the directions (up/down) tie into their action spatially on the screen intuitively rather than arbitrary like right/left buttons.

Recently, mostly as a result of features in windowmaker, scroll wheel behavior has started to be well defined for the window manager. Two features in particular are very useful : scrolling on desktop switches virtual desktop and scroll wheel on the titlebar rollsup/shades and rollsdown/unshades the window (for up and down directions, respectively). The first feature is prevalent in every major window manager except 1 (Metacity, mostly because the scrollwheel drops through to nautilus), and the second is slowly gaining acceptance (its configurable in kde's window manager and comes default in xfwm4).

I've recently switched down from Xfce4 to Fluxbox at work (mostly to reduce distractions), and found these two features either broken or missing. Fluxbox by default gives you 4 workspace, names them "one" through "four", and arranges them linearly from left to right starting with "one" (it doesn't show you this visibly, but "workspace warping", or dragging a window off the side of a workspace onto the next one, shows that this is implied). Scroll wheel up increases the number of the workspace (wrapping back to "one" at "four"), and scroll wheel down decreases this number; but this behavior feels clunky, unintuitive, and backwards.

The argument in favor of this behavior is that numerically it makes sense; up increases the number workspace you are on, and down decreases it. I believe that, regardless of this logic, this is semantically backwards when compared to the use of the scroll wheel in other situations.

Intuitively, the scroll wheel scrolls down in a scrolled window when you roll it down, and up when you roll it up. When you have overflow in a window, the established (and correct, for reasons I'll explain) behavior is to scroll NOT to the right, but in the direction of text in the current locale. If you have a utf8 operating system and set en_UTF8 as your locale, try going to an Arabic site with overflow and see the direction of horizontal scroll change!

This behavior makes sense because scrolling downwards follows the direction in which you read (all texts read downward as far as I know), and so scrolling downward on a horizontal bar should also scroll in the direction of text. Because of this, most people (people who read left to right) will intuitively think that scrolling down will go right, not left. When I asked around in #fluxbox on freenode, it seemed that many people change the direction themselves and then recompile it, but the fluxbox developers seem to be slow to include features in HEAD. For now, if you want to change it, go to line ~900 in src/fluxbox.cc and switch the "4" and "5" in the following lines:

} else if (screen->isDesktopWheeling() && be.button == 4 ) {
    screen->nextWorkspace(1);
} else if (screen->isDesktopWheeling() && be.button == 5) {
    screen->prevWorkspace(1);
}

Its an easy fix, but if a lot of users modify source to change default behavior, it might be time to change that default behavior, especially when evidence shows the changed behavior is more intuitive.

When I asked about the other feature on freenode, I was told that people disagree on what action scrollwheel on the titlebar should have: scroll among tabs (in fluxbox arbitrary windows can be grouped and tabbed), move that window to a different desktop, or rollup/rolldown. I think that as time goes on the established behavior will be rollup/rolldown, but its obvious by options given in other window managers that desired title bar behavior is varied. If you want this feature, I wrote a patch to be applied against the latest SVN version, and there are numerous patches for this behavior littered about the net.

Misc notes on Gtk & ViM

posted February 16th, 2005 @ 06:02:46

- tags: development , general tech , linux

- comments: 0

Been using ViM for a while, and decided to use the X version (gViM) for my Java class. The X version comes with a fairly gorgeous color theme, and I wanted it to actually come up every time I used it. I searched quickly for some way to do this in the GUI, but since its Vim I figured (rightly) that most things were done through the RC file. A little research on the Vim irc wiki got me a few options that I've wanted for a while, so I figured I'd share them:

in .vimrc: set whichwrap+=<,>,h,l in .gvimrc colorscheme desert

The first line allows your arrow keys (and directional keys, and backspace) to wrap across lines; the second line will set your default colorscheme to "desert", which is the theme pictured in my screenshot. Looks like I have another couple files to keep on my USB stick!

The other thing I wanted to quickly discuss is the gtk-qt-engine project which is developing a Gtk engine that renders everything through Qt. It actually doesn't do much to make me think that I am running Qt apps; I guess I just never really paid attention to the way my apps look (I always have tried to configure Qt and Gtk to look relatively similar), but the theme actually works fairly well. I was looking for speedups, but I didn't notice anything too glaringly obvious; menu's seem to work a bit faster on my aging machine, but programs still feel a little slower than they should.

As for bugs, they seem mostly due to whichever theme you are using; a particular annoying one is that some Qt themes feature the "double arrow" at the bottom of scroll bars, and this double arrow gets rendered on Gtk apps even though Gtk does not account for its presence. Still, they've done a pretty decent job; If only someone could go through and optimize some of these libraries; it's a real shame that we'll forever be creating features instead.

Various (linux) desktop issues

posted February 15th, 2005 @ 00:00:21

- tags: general tech , linux

- comments: 0

Courtesy of OS Galaxy blog syndication came a link about Mockup, which is actually a bit hard to explain; or at least, its relations to the rest of my thoughts on the subject of desktop Linux (which I feel is still somewhat of an oxymoron.) The Register gave some light play at this Linux desktop perdicament today, and I mostly agree with their take on the freak mainstream and linux's preparation thereof.

This weekend I had the pain-sure (I can't quite figure out if it was painful or pleasurable) of refactoring the two computers currently doing service at my old digs in Sleepy Hollow. My parents machine got happily upgraded from a 700 MHz duron with 128 MB of pc133 ram to a Sempron 2400+ with 256 meg of pc3200 DDR ram (and a 'new' 300W power supply to run it all); my brother's machine (who is fast approaching a size at which it the term 'little' is no longer applicable) got a new mobo and a geforce 4 so he could play some games (that he swore to me he was uninterested in during the original building process.) With the hardware upgrades out of the way, I was a little bit disappointed to see how their win2k installs were dealing with the changing hardware.

My experience with hotplug is that it finds hardware and uses the appropriate modules (which are usually all there on "desktop" Linux distributions) relatively quickly and during the booting process. win2k (intentionally left lowercase) took about 25 minutes to discover and install all of its hardware on my parents machine, and my brothers machine was not showing any significant gains with the DDR and ram upgrade, so I decided that it was time (3 years has past after all) to do a fresh install and move them to XP (my parents have an LCD and I figured they'd benefit from cleartype; my brother is interested in a particular timeframe of games that have had a history of problems with 2k.)

XP came up like a snap on both machines (my mother had a CD drive that was a little flakey, but getting rid of her terrible old 10 gig hard drive was really quite a boon to overall system speed), and for the most part it was functional enough to install a few necessary drivers. I noticed that it ran exceptionally slow on my brothers machine before getting the nVidia drivers installed, which makes me wonder if X might be in fact a better all purpose solution since without hardware acceleration X manages to compete with a decent standing. However the speed (and more importantly the responsiveness) of the UI in XP is unmatched in the Linux world. There is some strange mythos surrounding Linux that it is somehow faster than windows; but when you try to assemble a reasonable facsimile of a normal windows operating environment, this comparisson falls flat.

Enter Mockup, an attempt to create a fast, pleasant, unified user experience using whatever is available in the free software world. For their purposes (and I think for mine, too) Qt was chosen for its implementation language (which is an odd choice; I'd chose based on speed alone) and because you can run it without X11. This got me thinking; perhaps "unified" is the right way to go with this.

Gnome, KDE, XFCE; they all provide only a layer on top of X11, which itself is a graphical layer on top of whatever POSIX OS you want. This is great for interoperability among different platforms, but in order to preserve this interoperability between layers must be sacrificed, and this is almost always necessary for the "Desktop" user. Plug in hardware, and it works; this has to be done at a low level, and then communicated to the user at a high level. The *nix approach is to add optional technologies (like DBUS or whatever KDE has had for the past few years that everyone ignored) and then detect those technologies and use them to achieve this goal. This all ties quite nicely with the "wrong-way approach" paper; In this case, the UNIX 'wrong-way' is being outdone by an even wrong-er way (windows).

The reason that one approach is wrong while the other is right is left to whoever is reading this to decide, but rest assured that this doesn't actually reflect on the quality of the product, just the quality of the approach. In any case, I am convinced that interoperability and modularity to the extent that it exists in *NIX in general and Linux in particular is damning on the desktop. I've been thinking about it only a short while, but have not been able to come up with a simple, consise argument (or an enumeration thereof).

The funny thing is that almost everything we need to make Linux on the desktop a reality for more than "freaks" is sitting right there. We have some extremely brilliant people in the communities, but we aren't really there yet even after 5 or so years of accelerated development. Ubuntu was created to address these problems but it doesn't do it adequately, despite employing many genious GNOME developers. It's time for someone (in particular, someone smarter than me and more intimate with the technology) to step back and take a look at the overall structure; I think that they will discover that the seperation of layers makes layer integration dependent on message passing, and these layers of abstraction cause two things: logarithmic increase in complexity of implementation and perhaps a linear decrease in speed of the final product.

I would be interested in working on a project similar to Mockup but without the intellectual shackles of BeOS; as far as I can tell its the only way that "this endeavor" will ever end in success. A Linux distribution needs to be bult from the ground up, most likely on some existing technologies (read: existing binary package management, perhaps an existing DE) but have its own set of requirements that are more extensive than normal. Red Hat would actually be a quality candidate, but its speed deficiencies are particularly damning among Linux distros; Mandrake is a far cry, and I don't really have much experience with Libranet and others of its kind.

802.11b

posted April 18th, 2004 @ 15:21:36

- tags: general tech , linux

- comments: 0

For about a week now, I've had a problem. Linux just wasn't cutting it for two of my devices; "my" 802.11b card (which I conveniently stole from Krause) and my Canon Digital IXUS 400. Both hardware's I knew were in working condition, and both were discovered and utilized through some manner of hotplug system, but both simply did not work. It was a major headache; in part because I knew that both of them had been working and I was happy in my "linux is great" little world.

Enter Reiser4FS and my 2.6.4 kernel. I got everything up pretty well in Reiser4, considering that I had not strayed in that way during an install before, but the damned 802.11b card just wouldn't work. To make matters worse, the new file system meant I could not figure out what was wrong by inspecting slackware's stock kernel. I kept getting an error: "Uhhuh, NMI error. Dazed and Confused." It mentioned something might be bad with one of my RAM chips, but that was so ridiculous that I didn't even bother dignifying it with thought.

For a few days I tried to trouble shoot this problem, but unfortunately did not have a wireless connection where I live to test it on. We got some wireless yesterday, so last night (and for me still "today") I decided to finally tackle this problem and get it solved. My first thought was to recompile and make sure that everything was indeed kosher. This failed; and thanks to the fact that it takes about 30 minutes for me to compile Linux 2.6.4, it was time consuming. I next tried to compile the modules into the kernel, which also failed.

Undeterred (and convinced that it was not a Reiser4FS patch bug), I decided to download Linux-2.6.3 and Linux-2.6.2. I compiled them in parallel, and an hour later I had one working kernel (the patch failed to compile for 2.6.2). A quick reboot, and I still got the same bogus error. I decided to download the package for the alpha version of the Linux Orinoco drivers, but that seemed to not compile correctly; Orinoco_cs was complaining about the "CardServices" function.

Undeterred, I scanned the developers mailing list and found that the PCMCIA API had changed in Linux 2.6 and now all functions which used to be CardServices(YourFirstArg, ..) were now pcmcia_your_first_arg(..). This took about an hour of research, and it took me 30 minutes to hand-modify the code to a state where it compiled cleanly. I loaded in the drivers, and sure enough they failed.

While reading the README.orinoco file that came with the drivers, I did not find anything in reference to any NMI errors or any other errors that I was getting, but I did find an interesting tidbit; there was an error that people were getting that resulted from an error in a configuration file; OR, it would happen when you did not have ISA support. That rung a particular note, because I usually disable ISA support (I have no ISA devices), and I had not known that PCMCIA is apparently derivative of ISA. I recompiled the kernel and put back the same stock drivers, and voila, after 7 hours, it worked!

The alpha drivers had some features that I wanted to try, specifically the functionality that let me scan for networks, ad-hoc mode and promiscuous mode, so I decided to compile them again and install them; they work like a charm, and I'm currently typing this update outside.

Most people with 4 year old laptops can't really use them outside, but apparently I'm special. I was blessed with a battery that was no longer wanted, but apparently worked quite well. And it better last long, when your screen brightness is set to "barely" and your processor speed drops from 650 MHz to 263.

As for the IXUS 400, I still haven't figured out a driver solution that will actually fix that problem. One of the problems is that I'm dealing with a group developing 3 products simultaneously; a second is that there are over 100 drivers currently in development and maintainence, and finally, with the help of Jerumu's compact flash card reader, I figured out that it was neither my cards nor my camera (which I was not so sure about), and am much more relieved. I plan on downloading the old versions of the software (the ones that worked properly) and using them until the next release.

Linux has become fun for me again (somehow), and I'm glad to say that since "my" wireless card now works I don't need windows for anything anymore (until my next piece of hardware breaks). My PC is 3 years old and is perfectly fine; my laptop is 4 years old and compiling the kernel is starting to get annoying; but with 3 hard drive upgrades (10 -> 14 -> 20 GB) and a brand new screen and battery (at 0 cost), I must say that I'm pretty pleased with the way I've made out on it. In the spirit of johnny, I've decided to become somewhat adventurous again in the Linux arena, and try out technologies which might break my computer.

I dropped down to just the "a" set of slackware packages the other day and rebuilt my desktop from scratch in an attempt to fix what I believed to be a library issue (which turned out to be shitty programming). I tried out Keith Packard's very interesting "xserver", and also compiled a new although similar window manager. Openbox3 is a very nice window manager that somewhat breaks away from the other *box WM's, but its missing a slit and, although my initial reactions about blackbox were similar (how the hell can you do anything without a start bar and icons?!), I don't think I can live without the slit telling me what iconified windows I have and what time it is.

Besides wasting 3 hours in a car yesterday and taking an online test, I also have two essays for gym to look forward to, and an essay for Macroeconomics which I am going to purchase the book for today. My week, which is actually another hell week, is composed thusly: Monday : "breather", Tuesday : macro paper (20% of grade) due. Wednesday: gym paper [2] due. Thursday: 2 Jan Schaumann projects due. Friday : breather. There might be a senior design presentation in there somewhere, but I think that might be next tuesday. Either way, I can't work on it during the week, and I can't work on it during the weekend, so I guess we're just screwed. Looks like I'll be going underground again for a week, and I guess pacman and this site will once again suffer.

Other than suffering, I'm doing pretty good. It's one of the best times of the year; spring is in the air, and the flowers are blooming. If you're interested in the modified orinoco-0.14alpha2.tar.gz that will actually compile without any "CardServices" functions or undefined symbols, you know where you can get it.

Let us suppose

posted April 15th, 2004 @ 11:04:40

- tags: general tech , life , linux

- comments: 0

Let us suppose that you were me. You just got finished with a day in which you got 3 hours of sleep, went to all your classes, went to work and accomplished great things, did well on two tests absolutely necessary for graduation, and get most of the presentation that is due the next day done. At around 9:00, you're ready to pass out. So what do you do?

That's right, you stay up! Because you're not tired, somehow. Besides, the world of filesystems waits for no man. I don't know what kind of fits of idiocy I have been suffering tonight, but they don't seem to end. I thought it'd be really cool to show some ReiserFS4 meta data stuff during my presentation. Of course, I don't know a damn thing about it, other than you can peruse it quite nicely with ls/cat etc. through the pseudo directory "metas".

So of course, I format my laptop ReiserFS4, even though it's all set up and ready to go to present tomorrow. Of course, formatting it ReiserFS4 is a bit more involved than I would have liked, but I'm kind of glad to have had the experience, anyway... I needed something a little closer to get me to appreciate my slackware install scripts. Anyway, I'm still up at 6:00 AM, around when I went to be yesterday, trying to recompile the 2.6.4 so I can get a goddamn framebuffer. For some reason, I have no problem getting all of my hardware to work perfectly (don't bring up cameras or you will die), but the framebuffer always gets me. Damned first option is a red herring.

For some reason, the past few day's I've been coming up with "9" as the answer to "5 + 3". This makes me think that going to sleep at 5 to wake up at 9 is a lost cause; of course, 1 hour later I realize my err, but the statute on any type of sleeping endeavors is gone. In 3 hours, I'll have physics. I have to thank Paul (the TA) for completely saving my ass and getting me about an 85 on the test with his review. Then, I have Comp and Society at 10:30; and given my attendance record, its not something I can miss. Then I have completely necessary Gym class #2 at 12:00, Macro Economics at 1:00, and senior D at 3:30. During most of these classes, I'll be reading my ass off trying to understand fully how ReiserFS4 ensures atomicity with "wandering logs"; Hans might as well have said "smackalicious crack", since it seems to have about as much to do with filesystems as half of the terms that he coins.

I still haven't gotten to the meat of ReiserFS3 in my presentation; but I'm around page 20. I'm not sure if wanting to give a thorough background in filesystems to graduates and in general inteligent people is a waste of my time, but I tend to think that people here do not know their history well. A lot of the stuff I wrote, I didn't know (or at least, was not sure of enough to bring up in something like a presentation without double checking). This probably means that, unless I skimp royally on the Reiser FS', which would be fucking stupid, I'll end up at around 40 or 45 pages. Most of understanding an FS goes to understanding all of the background that led to its development, so it actually wouldn't be all that stupid to have more than ½ of the presentation solely history and trivialties (TOC, Title, etc).

This fit of writing about absolutely nothing of interest to anyone in the world has done its job: I'm in a pseudo awake state and ready to write more about filesystems. Expect a PDF or PS of my presentation and, if they are ever ordered enough and completely written down, the notes that go along with the slides. (I'd prefer .ps, but OOo seems to only export pdf).

Impressions on gnome 2.6

posted April 10th, 2004 @ 11:32:59

- tags: linux

- comments: 0

And of course, general gripes. I can't really figure out how to get USB working in linux. I mean, with my own compiled kernel. Because Patrick's works just fine, but any I compile myself (ex. 2.6.x) don't see to work for shit. It's one of the reasons I keep the stock slackware 9.1 kernel on my laptop, and one of the reasons that if I get enough of a headache with something, I just try and do it on there instead. If worse comes to worse, I could always try it on windows, or my mac.

Johnny seemed to solve my problem; that /proc/bus/usb was not being mounted. After mounting it (manually), things worked as expected, and my camera worked again in gtkam, which I thankfully did not have to go through the mountainous bullshit to compile again, because I decided to try out Dropline 2.6. Everything loaded up nice (Cannon Digital IXUS 400), and I copied a few pics off of there without incident. I went to copy the 11 movies I had on there (of a few pledges singing some songs), and it didn't work. It told me that it couldn't find the file, and the camera activity indicator light kept flashing.

Strange. I redid the whole process, and got the same error. I figured out (after rinseing, washing, and repeating a few too many times to keep my temper from the situation) that I could save other files, just not that one. I try one more time, and my system locks up. It's not really locked up, but X won't die, and even switching to run level 3 and 2 did not stop the frozen display of fluxbox. So I reboot, and get this to happen a few more times. Finaly, I say "fuck it", and go to do this on my laptop.

Sure enough, I have problems with the same files (I managed to get all but 2 off). I delete all of the files but the two I want, but of course since the camera's OSD is a stinking pile of dogshit, I delete one of the ones that I wanted to keep by accident. I yank the USB cable and see which one is still on there; and it's the hilarious one with Dev stepping on a huge pile of glass and making quite a racket. I delete the extraneous movie, and load it up... and of course, it turns out that I delete the wrong one, because apparently "82" is less than "72". FUCK YOU CANNON.

I'm still not sure why I couldn't copy the movies off my camera, although I lost the best one. I'm not sure if my CF card is dead or dying, or if there is a bug in libgphoto, or if my actual camera is screwed up and can't handle 4 digit numbers anymore. But I do know that the OSD is inadequate (it should display a filename when you go to delete it) and that Linux has been pissing me the fuck off more often than not recently.

Theres one thing about taking coersion to actually work right; I'm fine with having to do that. Its a completely different story when you just don't work right at all and then provide no explanation. I know that I can never use Windows again, no matter how much I get pissed off, because in every case but this one, Linux programs tell me exactly what is wrong, and I can find out from the developer himself if what I'm running into is a known bug. Still, I'm not sure if I can continue to use my camera the way I have been anymore; next time I run into the problem I'm going to try loading it up in a CF reader or using Cannon's windows software. If shit is fucked up (but reads fine off the card), I'm going to have a conniption.

Gnome-2.6 is a lot nicer when things actually work, but I found the experience to be a whole lot of "Wow, this is really slow". After getting used to the speed of Fluxbox and KDE, I don't know if I can even deal with the candy-coated slowmotion life of gtk+2. Some stuff that worked that didn't last time wasn't too impressive; although the Nautilus "image collection" view is quite nice (after about 5 minutes to load up all my images; maybe I won't have this problem in the future, since it seems 5% of my images will be corrupted and unsavable).

Overall, the icon and toolkit themes in Gnome are far superior to anything that the KDE/Qt folks have to offer, but the slowness and lack of solid improvements still injure Gnome 2.6 quite severely. The new nautilus spatial browsing is an enormous step backwards.

And speaking of enormous steps backwards, xmms is still insisting that people still use gtk+1 for anything other than xmms, so that's forced some other hackers/developers to take the xmms source and create beep. This was done a long time ago, of course, but Todd at Dropline finally got sick of compiling glib and gtk+1 and decided to ditch xmms for beep. This would have been a big "bravo", if beep wasn't the most bugprone, error-ridden piece of software in the history of mankind.

To be kind its still early in its development, I guess, but some errors really shouldn't be happening. For instance; when I change the font on my playlist from ultra-huge-bolded-mess one size smaller, it crashes. When I try to change it to some other font, it crashes. When I window-shade the playlist, then try to unshade it, it screws up. If I repeat this, it crashes. If I drag it to the top of the screen, it won't move to the left corner. I have to drag it along the left side of the screen to push it to the top; if I window shade it at the top, it moves down 2 pixels, and if I un-window-shade it, it crashes. I guess it plays music, I'm just not allowed to see what's next or listen to flac. Or move it, or click any buttons. And If I play with gtk2 or gnome settings at all; it crashes.

Too early for beep yet; but for the sake of humanity I hope it becomes stable in the next 6 months. It'd be a sad world where you're forced between a 3 year old library or some iTunes clone that can't handle your music collection. As for the rest of Gnome, more and more options are syphoned out of easy to find places and thrown into the depths of Gconf with each release. It feels far more cohesive than KDE does; but you get the feeling there's far less going on there, too. This is due to, in large part, because even with the Gconf options, Gnome simply is not as configurable as KDE. People complain about KDE's options all the time, but they manage to pack more into quasi-tolerable dialogs than the Gnome project codes at all. The Gnome guy's need to stop patting themselves on the back for usability awards and HiG compliant apps, and start making these apps not suck and actually usable again.

NetBSD and system administration

posted April 8th, 2004 @ 23:50:33

- tags: linux , odd

- comments: 0

I'm currently sitting in my Thursday night cs765 "Aspects of System Administration" class. I probably shouldn't be writing this, as the class is really quite good and I'm the only one in here who is looking at a laptop instead of what is going on. I'm sure that I probably have far more work to catch up on than the other people in the class, but that's just self importance that stems from everyone thinking they have it worse than everyone else.

Since I'm busy, I couldn't check slashdot or osnews today. So I decide to check them, and lo: the man who I'm listening to has made an announcement. It's kind of odd to be sitting in class listening to someone who actually makes a difference in open source projects. Maybe one day I can make some snotty senior feel the same way.

Thoughts on gnome 2.6

posted March 28th, 2004 @ 13:57:20

- tags: linux

- comments: 0

I installed a release candidate for gnome tonight. First, a short history.

Gnome 2.2 comes out, and many of the kinks and polish meant for 2.0 finaly come to fruition with the new release. Long disgusted with KDE's bloat, but finding it difficult to manage in other more minimalist environments, I decide to ditch KDE 3.x and go full time with Gnome 2.2. I'm happy for a good while; so happy for such a good while, that I compile 2.4-pre from source the night it comes out and subsequently love that too. But, the longer you stick with something, the more annoying its flaws become.

Seiken Densetsu 3 is a great game, probably one of the greatest RPG's ever made, and definitely in the top tier of SNES games. Its graphics have no real competition in the era, and its breadth and epic are only challenged by Chrono Trigger. But allowing myself to be critical of it, I can see that the square programmers really are no match for Nasir: Seiken Densetsu 2 (as far as I know, the last game to start up with "Programmed by Nasir") had a much, much cleaner combat system with gameplay that was far more responsive. Using any item or spell in SD3 causes battle to stop, and they never ironed out the 3 player which means that 1 player always gets controlled by an artificial intelligence that has no "Do not attack you fucking idiot" option.

Similarly, one can draw a parallel to gnome, especially now that I've been using that other desktop environment for what I cannot believe is soon to be 2 months now. Lets go through a few gripes that I have with the new release.

Filebrowsing in gnome was always sub-par to Windows and KDE; but being a solid gnome user for 8 months straight gets you pretty used to dropping into the terminal to do most of these things; and I really have no problem with that. But, after using Konqueror for filebrowsing and organizing for a while, I've gotten used to a graphical agent that is actually sane, and actually tunable. Instead of solving issues with Nautilus (bugzilla bug #1: its slow and shitty) and stripping features from it that were un-necessary, the Gnome team decided to give it Windows95-esque default behavior and then claim that its some great new thing in useability called "spatial browsing". What this means is that Nautilus has no input bar for manually inputting folders, no toolbar for actions like "up" or "back" (and the lack of an "up" did not stop these geniuses from filtering out the ".." folder), and no visible way to change the configuration so that you're not trapped in an idiotic world where traversing 4 folders to get to a file opens 5 windows.

On the plus side, the new Nautilus has a "--no-desktop" option, so that it doesn't fuck with people if they wanted to share the insanity from another desktop environment. I'm not sure if it always had this, but it should definitely run like this by default. It also sports a "--browser" option, which for me just opens itself up in a classic looking nautilus interface, then shuts itself down and opens the directory again in the new interface. Burried within Gconf is a key that allows you to always use the browser interface, which means that the browser window will pop up, close itself, then pop itself up again ad infinitum. Fun!

Also burried within Gconf was the key to change Metacity's default double-click-on-title-bar behavior from maximize/restore to window-shade. I had to dig through Gconf for it because I didn't realize that the "Windows" option in the "Desktop Settings" folder on the "Applications" menu would do it for me, partially because it had been called "Metacity Preferences" or "Metacity Setup" in the past, partially because I was looking in "Advanced", and partially because that option did not have a working icon so my eyes pretty much skipped over it. Trying to edit the key in Gconf to give me window shade (Gconf is set up very much like the windows registry) resulted in changing a keyval (a text entry) into a checkbox (a Boolean value); so my double click action would result in "true" or "false". w00t.

This meant that not only did double clicking on any title bar froze my window manager for 5 seconds, but using the "Window" configuration dialog did not work because it detected a bad key and disabled the option. I finaly fixed this by resetting that Gconf key back to its default value and then changing the permissions on the Gconf editor to 000.

But lets get away from that problem so that I can complain about Nautilus some more. One of the most important things for a WM to have (for me) is the scroll wheel scrolls the desktops option for users using multiple desktops. This gives the user a near infinite space to change workspaces, and a quick method in which to do it. KDE's pager, which has its own problems which we'll get to in a minute, also allows you to mousewheel on the pager itself to change desktops. Nautilus, which controls gnome's desktop, has no such option, making the Gnome desktop pager almost completely useless compared to that of Fluxbox or KDE.

The pager itself; the actual panel applet, does provide some improvements on KDE's. The first major improvement, which really should be a braindead feature, is that it allows you to click on and move windows from desktop to desktop visually from within the pager. This is nice for big windows you want to go away, but still want readily accessible by your scroll wheel. Oh, well, maybe not readily accessible. It's not too much of a pain to move programs around with it; considerably less stupid than KDE's system which requires you to execute a second pager that is not dockable in its panel system. However, any click raises the window that you clicked on to get raised. This behavior must be destroyed, as it causes my desktop switches to always pull the largest windows over everything else on that desktop. A single click on a desktop should leave it unchanged; when the click is held and the position is changed, then it can/should pull the window on top and start to drag it.

With no sane filebrowsing or desktop paging, I'm pretty much left with a useless albeit extremely gorgeous environment. I was excited to try out the Gnome VNC viewer, but when I clicked "connect", it would printf "button_connect1_clicked" to the console, which means they threw it together quickly in Glade and didn't even get close to finishing it yet. I managed to find out that if I expanded the screen to include useful preferences (like a password input, which was necessary), then the connect button actually tried to connect; but it failed, because I think it simply ignored the password I supplied it in the password field.

Back to bashing nautilus; it keeps icons close enough together on the desktop that text from one will go on top of text on an adjacent icon.

The overall speed has not been significantly improved, although there are some bits of better response here and there. Gimp 2.0 is nice, although its release doesn't really coincide with 2.6. The speed of the run dialog is such that I always type the first character before it pops up, rendering commands rather useless; but it does feature $PATH completion, although KDE's history is probably a better idea with less professional execution.

Summing up, KDE 3.2 floored me with what seemed like (and probably was) hundreds of thousands of man hours directed precisely at where they needed to be directed: simplifying options, tying together features on the desktop, providing interfaces to fringe applications that give it a feel of completeness (kgpg for instance). Gnome 2.6 seems little different from 2.4; the main "improvements" being the rape of Nautilus and the new filechooser (which is quite an improvement over the old utterly un-useable garbage, but not perfect) which is a GTK improvement and not a Gnome one. Gnome 2.4 was the release of the HiG, and Gnome 2.6 is the release of the WtF?.

Why I do various things

posted February 11th, 2004 @ 22:36:13

- tags: C , development , general tech , linux , python

- comments: 0

I've been trying out a few console only programs in the past week; a few programs that I had been meaning to try for some time. One of them was swaret, the SlackWARE Tool, and the other is Screen, the UNIX tool.

Swaret is pretty good and best of all maintains the transparent nature of the slackware package scripts. The only thing I don't really understand at this point is how it does its dependency resolving: since dependency checking is not built into slackware packages, I'm assuming that the only answer would be that dependency files are stored on the server. A short description, for those of you that do not care to click the link, is that its kind of like a mixture of portage and apt-get for Slackware.

Screen is of course is a rather old application that I first came across reading about Ratpoison and ways of using Linux efficiently with little or no use of X or a mouse. It's the kind of tool that simplify's almost everything you do by virtue of enhancing the building block of what makes you function: in this case, your shell. Screen creates a shell "session", where once inside it makes itself mostly unknown and gets out of your way. However, by hitting ^a, you can enter a few commands into screen. Some of the more useful ones are "c" and "0-9", which allow you to create new windows and flip back and forth between them, much like a tabbed terminal window. Say goodnight, gnome-terminal.

Lastly, screen lets you "detatch" and "re-attach" to sessions (much like loggin in and out), and keeps the terminals within screen alive even after you exit the shell you've called screen from. This allows you to pick up where you left off on any process that will consume your terminal (like IRC or a swaret --upgrade) from anywhere that has SSH (assuming you have sshd), and not only that but use the same ssh session to do multiple concurrent process, all potentially taking up a "window".

The combination of Screen, Swaret, and Sysadmin Class have got me thinking about another possible project in Python, but I'm hesitant to start something after I've left other things (like the admin module to my website or JTEX) so unfinished. However, I do have a large amount of newfound freetime, mostly gained by giving up my workaholic attitude towards the GBA project. The new project would probably be foolishly named "pacman", and the details as to what exactly it does and how it does it will be released when I decide on said details.

I was debating on whether or not to use PyGTK for this project or to try PyKDE and PyQT. Part of me said PyGTK because of familiarity, and another part of me said QT because kde is the default DE on slackware (in fact, initially I used this argument for gnome because so many people who use slack run gnome I forgot it wasn't default). I slightly entertained the Idea of using both, and developing my idea as a backend or a set of classes with which two separate frontends will interact. I'll have to see about how to get around installation difficulties this might give people who do not keep both QT and GTK (AND PyQT and PyGTK) around. Which is just about everyone.

The subject of this post directly correlates to the research I was doing, coming across random KDE+Python websites, and finally reading some comments to an article written at Lateral's site. Someone recommended gnome to this obvious KDE guy, and he politely replied "Sorry, I'm a KDE guy! Thank's though!". Holy shit!, said I, this man is able to be a maniac without being a zealot. This is something I cannot do; so I thought I'd at least attempt to explain some of the positions I take.

I use Linux because within 6 months of using it, I understood more about the way it worked than after 6 years of Windows. I can see through my Linux system and fix problems in ways that, with windows, would demand a re-intsall. I know how my system displays things, and understand how most of my programs work, and for me, this is an improvement over a system that "just works" only most of the time.

I prefer C to C++ because I personally have a strong dislike for syntactical inconsistencies brought on by C++'s confusing class syntax, and because I don't find the need for a low-level, high-level language. If you want to have a large project with object oriented methods of organization, then use a language who's object features are rich and simple to handle like Java or Python. If you want speed, then figure out which parts of your program need it, and program those in C. If you need to be at the machine level (no interpreter), the bite the bullet and use C which is (much like Linux vs. windows) transparent to the coder, as opposed to C++ which hides much of what it does behind syntax, sometimes with obfuscated results.

I use multiple De's and WM's. I've found that changing my workspace around is a good way to not only be preoccupied from work, but to constantly educate myself on how to improve performance within these environments. Whenever something new comes out, I usually try it. Whenever I find out something new, I try it. It happened with Blackbox, Fluxbox, Gnome 2.0, 2.2. 2.4, KDE 3.0, 3.1, and 3.2, and it will happen when Gnome 2.6 comes out soon, and again when the next version of Fluxbox comes out, and when the newest KDE comes out. De's and Wm's are one area where I do not fall into the trap of being a zealot. Konqueror kicks Nautilus' ass, and Kopete has nothing on Gaim. I'll use Evolution until I can't stand it's long load times, and then try out KMail. Whatever I need, I'll use.

And finally, and you knew it was coming, I like python because it's the cleanest language syntactically that I've ever used, and I never fully understood classes or strong/weak typing until I learned Python. I do believe that RAD and more importantly rapid application patching will be the tool that allows Open Source software to surpass proprietary software simply by the virtues of being Open Source and having the source to amend, and along with this I find Python to be the only language that I can truly develop rapidly with.

Gnome two dot four

posted September 12th, 2003 @ 06:21:06

- tags: linux

- comments: 0

Gnome 2.4 came out yesterday, and although I compiled it myself, I found out today that it had been compiled by a Patrick volderking a few hours prior to me finishing. Either or, I have been using 2.4 for a day now, and its time to write a short expose here about the ways that it both flows like a gentle river and pounds your skull to dust like niagra falls. Without shit like this, my life: meaningless.

2.4 is like a revalation, its something that comes upon you by the force of its own pand seens right by virtue of its existence. Its not that there are a lot of improvements, because there are, but that is not what is necessarily improving the platform. Its the polish; its the little things, its the speed enhancement, the HIG, the increased support for network and system tools, the better clock and the most attractive calendar in the history of man. Its Variance, ApeDosMil, its those two broken icons that don't seem to work no matter what the fuck I do, and last but not least it's definitely epiphany

Its nice to see GNOME shipping with a capable web-browser again, although gecko still writhes within the grasps of a full install of mozilla, its demonic clenches ceasing not in their ability to spread their icy tendrils accross my dropdown's and text-boxes, its still an extremely capable rendering engine, and soon with the mozilla parts initiative, Epiphany should be well on its way to being packed on its own. There are 2 problems with it as I see now:

  1. You cannot alt/ctrl enter to open up a URL in a new tab
  2. The documentation just isn't done

When are we Linux hax0rz going to learn? You don't call something 1.0 if there are help sections with absolutely 0 help. You don't call something 1.0 that is chock full of undocumented features; 1.0 is the promised land of projects that is reserved for those that don't mind waiting to get off their ass and do the crap shit. So until then, Marco Paulerelli or whoever the hell your name is, you can sit back and bask in the warm endearing glow of beta stage.

On a related note, I've been playing quite a bit of ping pong of late. It's a fairly fun game that is easy to progress towards an intermediate level, and neigh impossible to progress any farther. There are a few notable players in the house; first off Pranay, my multi-armed curry god of ping pong, Krause, who's fluid German style, ballanced as the swastika, bites you as it mesmorizes you with its beauty, Alex, the beast of china whose communist spins bring pleasure to the mind and whose forehand brings pain to the body, and last and probably least George, who gets pissed off every time I pound his unworthy ass into the ground and gloats over his victories in the lower rungs of Alpha Sig ping pong society. I'd say I'm probably in the top 5, and although I find a way to win around 50% of the time, I can't place myself among the other's in skill.

But because of this recent ping pong row, and because Alex and Jin kept talking about it, I decided to watch ping pong the movie, a Japanese film about this kid, his friend, and good old ping pong. Its odd, because I recognize the main character from a number of his other works; most notably the "smart kid" from GTO and the "cool guy" from SOS. Ping pong, like most other Japanese movies I've seen that don't involve the senseless slaughtering of kids, was a feel good movie about heroism, hard work, determination, being fucking cool, and playing ping pong. It's a lot like my life at the present time, actually.

Cereal Killa

posted July 15th, 2003 @ 12:23:23

- tags: life , linux , odd

- comments: 0

Its no secret that things around here have changed, and I suppose you wouldn't know how much they've changed. I can't blame you though, as I've had a fairly poor record for updating this month. Hopefully that can all change.

So, what have I been up to? I could tell you what I've done since the 10th, but before that I have nary a clue. Last night, rather than sleeping in preperation for work or staying up the whole night so that work was possible, I stayed up most of the night, painstakingly modifying, tweaking, and enhancing my gnome-2.3.3 packages. And for what? For me to install and be fairly pleased with dropline gnome within a week's time. 2.3.3 looks like it will be rad, so keep reading footnotes, if you're into that sorta thing

If you're not, but you're reading this anyway, well then god bless you. Contrary to what others might tell you, the July 4th BBQ went pretty well; a good time was had by all (although admittedly few) in attendance, which of course did not include any naysayers. The lack of alcahol, stemming from no other reason save laziness, was in some ways mitigated by the abundance of misbehaving and aquatic horseplay. Somehow, I don't think that tom's plan for a pool on the porch will fan out, but it would be nice to jump out of my window after a soft day's work and make waves.

In the short period of time that has transpired since we last met, I have decided to cut back on dairy products and eliminate the consumption of milk from my radar entirely. Ironically, the celebration that met this decision was held at the korova milk bar; which isn't just a cute name. So I guess a modification to my no-milk ethic would have to be made: when the milk is ice cream, and is augmented with liquor, then its a-ok. The milk bar was a pretty hip place, and fun was had, but in all I'd have to say that more of said fun was expected; a failure that I have no doubt in my mind has beginnings that lie within myself, and not others. On the plus side, a goth Korean chick took a picture of me eating out a white plastic woman with green hair. You win some, you lose some.

Political activism just isn't what it used to be. I remember the glory days of ... February of this year, when people were in a tizzy. Its not as though I simply tire of these things, because shit like this still lights a fire under my ass. Its because I tire of not being effective. I tire of being effective but feeling boring, redundant, and monotonous. Fighting the good fight just isn't worth it to me when the fact that theres something to fight about isn't worth it to other people. The world might as well not exist for americans; it certainly doesn't for ellis. Unless the RIAA shoves a DMCA branded pole up his ass or his family becomes ill of SARS and dies, he's living in the land of the free, with tree farms and chocolate labs.

And why reason with that? I'd much rather code and drink soy milk; its what I do and hopefully what I will keep up. And because of this, this site has a backend again, and "any day now" I"ll get JTEX out of the way and start the interface design (and feasibility estimates) for my next project. It will probably be my last python project, as I feel that the backend and two visual projects is probably all I will need under my belt to attain "wizard" status with python. Well, I could write, or something, but my interests are and always have been purely academic.

I have some plans for new features for the site as well as some new projects. Supposedly, something of a joint venture with n3ko will happen soon. It'd be more than welcomed; as I've always respected him as a thinker and a designer. He's shown himself to be rather growing in the afore much lacking discipline department, and his experience and talent as a coder grows daily. But alas, teamups always sound good in theory, and hardly ever pan out to more than a mission statement. Here's to hoping that this goes against the odds. Hopefully, publication will help it along. Secrets die easy.

Tracks on the side

posted May 31st, 2003 @ 06:19:35

- tags: life , linux , site news

- comments: 0

It seems as my newest creation, this site is broken in MSIE; that is, it doesn't react nicely with the object tag. Its not like I should care about it at this point, since the whole page is broken due to unwise decisions with automatic HTML insertion upon updating. But I have some interesting ideas about how to fix this entire mess that will be posted to the news soon.

Progress on JTEX has been slowed down in the past few days as I have been working on the corresponding tutorial a lot (to get it up to date) and hammering out some implementation details for python cgi. In case you haven't guessed yet, Python has quickly become my language of choice for any project I don't deem a compiled module necessary; which is most of them; and I would like to further sharpen my skills by redoing the backend to this site in python. It badly needs reorganization anyway, and the lack of features and abilities is starting to really slow down my development in other areas.

Speaking of development in other areas, while I was at a loss for what in the hell I could do a few weeks ago, I'm getting so many ideas now that I don't even know how to finish anything. In this way, my CMS becomes actually important in my life; and I find my short musings in the news section to be a life saver; or at least, an idea saver. Currently, I'm juggling a website re-write, re-design, a sizeable tutorial, a mid-sized development project in both a new language and new framework, implementation issues for MySQLdb (mysql-python), a summer class that will probably be PHP/Mysql, numerouns ideas that require writing my own XML DTD, and the creation and upkeep of a small library of packages that I find useful.

My Anjuta package (pronounced Un-Zoo-tah apparently) is now posted at linuxpackages.net, which should bring Paul's server some of the tender lovin care that he's been craving. I also submitted the bluefish package, hopefully it will be accepted (I used the same method as I did with the anjuta package), and then slackware users everywhere can enjoy the beautiful IDE's that I have been enjoying.

I was talking to Firu today about how I think that fame is the number one exterior incentive in the open source movement. People don't want money, they want name recognition. Maybe they want to help people, and I'm just a self centered twit, but I think that in some way people always want recognition for the good things they do. While I don't think that this incentive is necessarily wrong, or makes people bad, I do think that it replaces money as the incentive to strive for greatness. Or perhaps its just academic interest itself.

Needless to say, to be recognized for something always feels good; especially for me. Theres a funny thing about guy's; we don't really compliment eachother all that much; its apparently too gay. Of course, I'm too busy cracking jokes half of the time to drop a "nice job dude" or "that was so awesome man"; one could even say that me uttering these could be considered out of character; but to be told by someone "you are good" or "you are so smart", and have them mean it, really feels wierd.

It just doesn't happen in the environments that I am used too. People concentrate too much on what you don't know, not what you do know. I'm just as guilty as anyone in this respect; I remark with disdain daily about the uselessness of the common Stevens student. It seems that even some uncommonly smart Stevens students are also useless. But maybe they're only useless in the areas that I am interested in; or just maybe, to break free of my "modesty shackles", comparing most people to myself is actually unfair.

So when good friends are nice to me, it makes all of my work worthwhile. It makes up for the hundreds of over-zealous critical nitwits that I know. It makes the feverish pace at which I take in and process information (which always seems to be slower than the people I am trying to emulate) all worthwhile... satisfying that 5% of me that is not interested in academic pursuits, but wants to be acknowledged as someone who is not useless. And when an anonymous person does it, its even better.

Rsync for Synchro multiple sites through SSH

posted May 30th, 2003 @ 00:10:16

- tags: general tech , linux

- comments: 0

At work today it occured to me (through my discovery of various rsync related things) that Rsync combined with some daemon that ran on a directory could in essence create an automatic uploading situation through an ssh pipe (that can be opened and closed as needed) for any directory that I want. This has its obvious benefits, but in my current situation, they are numerous.

It means that, as long as I can replicate the conditions on the server on my own computer (which I can and in fact have), I can make structural changes on my machine and have it replicated automatically (by virtue of its placement in my filesystem) accross an arbitrary number of systems (as long as I have access to them; and in this case, it would only be one).

Not only this, but within access rights obviously, I could execute arbitrary scripts (such as search and replace for directory structure to make my scripts work in other places, etc).

It's just an idea at this point, but could be a useful one as it can be used for any two machines that can SSH to eachother; as well as any two machines that can successfully tunnel to eachother. In essence, the system would set up a one way continual mount; files in A will be in B; but files added to B might not be added to A. To keep them completely synchronous is definitely possible, but for my application it probably wouldn't be wanted. (it would need to have the directory daemon running on both sides, too).

Jay's Porn Shack

posted May 22nd, 2003 @ 20:58:36

- tags: life , linux

- comments: 0

Although Paul asked me to make a porn site; nay, pleaded with me, I probably won't be doing it. Porn sites are probably a lot of work. I told him I could host Linux packages, but he said it'd take up too much bandwidth. I wonder if theres something wrong with that sentiment.

An article up over at osnews compares windows 2003 server to Linux favorably towards windows, saying that as a whole things are more cohesive and uniform, etc and so forth. He also cites the lack of commercial grade quality tools such as Access (?), Photoshop, Dreamweaver, etc. for Linux. This has always bothered me.

Why must a default Linux install be compared with a windows install that is loaded with $5000 worth of software? Why is the GIMP put up against photoshop and not MS Paint, even though for the most part that is who its competing with in the Linux vs. Windows war? Its OK to argue capabilities; since Linux can't run Photoshop at all, and the GIMP falls short of Photoshop, you have to use Windows (or Mac OS X). That's all fine and good, but pretty soon people confuse this argument and start to say that Windows is better because it has better programs. Technically, it does, if you are willing to pay to outfit 1 system with what it would cost to simply build 5 more. Of course, if you go to college, you don't pay for any software anyway; but my argument still stands.

If we take a look at a default install; I get 2 different web browsers, 4 mail clients, over 4 text editors of varying depths, 2 IDE's, 5 or 6 complete different choices of desktop environments or window managers, an instant messenger client (or 3), a fairly developed image touchup/development program, 2 (some distro's, 3) Office suites that are for the most part MS Office compatible, and the ability to tweak anything from the colors of my windows to what renders my fonts. In windows I get Notepad, Wordpad, a few games, a web browser and a mail client (a horrid virus deployment kit of a mail client; but a mail client nonetheless).

If you compare, theres simply no comparrison. Most Linux distro's right out of the box have almost everything I need. Even after using Linux for a year, I don't have much experience installing many programs, because I don't need to. Its entirely unnecessary.. I got my AIM, ICQ, Mozilla, MP3 player, network utils, ssh client, ftp client, all right there.

People graduated today; myself not included. I'm probably going to miss them, and they're probably never going to come back to visit. I guess Amit will be around for another year, but after that he's bouncing too. Not sure if A3K is leaving yet or not; luckily most of my friends are my year or before. The graduation ceremony seemed pretty damn short; I was watching it on a 13 inch TV in the basement of the library while removing a bad machine from the machine room.

It appears that the summer class offered by Klappholz now contains myself in an odd agreement that I wont disclose here, now. But with myself, jerm, and paul on the team, suffice it to say we should be able to create an operating system in the time that they want us to make a website. Theres also some other guys on the team; but I don't think they matter. Who knows; only time will tell. I'm just counting all of my stars (not just the lucky ones) that I know something beyond mere formalisms. Hoo boy.

Democracy Now!

posted March 10th, 2003 @ 22:48:40

- tags: linux , politik

- comments: 0

There is a progressive news talk show called Democracy now featuring the fairly well known (in the underground scene) Amy goodman. For a while now I've been catching the early morning show on my satellite dish, but anyone who wants can listen on 99.5 pacifica radio. Today's headlines included the proliferation of government materials that suggest the united states and UK government planted bugs on UN security council members in an attempt to garner support for their new resolution, the "code pink" march on Washington DC this past weekend (where Goodman was arrested for filming the protesters), and the issue of MSNBC firing Donahue in favor of more conservative talk show hosts in an attempt to seem like "less of a hotbed for the antiwar movement".

The show is in general great; I found out about Michael moore's bowling for columbine from their broadcast featuring the documentary film maker; and from what I heard on the show this morning they are expanding to 2 hours. I urge anyone who cares about the world at large, the perceptions of the people of the united states and our government by the people of the world, or just the future in general to watch or listen during their commute or at work and become informed.

You can't please jackasses at all; or at least, that's what the past few days have taught me. I'll have to keep editing and updating my backend to get the site running again, but at least its at the point where I can add 'things'.

Everything that I read during work gets commented on while I'm still there by others, rendering my existence meaningless but with much more time to read stories that expand my mind. Of particular interest is the entire column dedicated against the war.

One story that I could not leave without comment is the story of SCO vs IBM and Linus Torvalds' statements on such. What interested me most with the article was not the cool and collected way in which Linus deals with the allegations, but the bold yet callous, reprehensible, offensive tone in which SCO details the "reasons" Linux could not have progressed where it has without insider information in its kernel from IBM's Unix knowledge. Basically, their arguments amount to..

  1. It took us a long time, so they couldn't have done it faster.
  2. Unix is a luxury car and Linux is a bycicle.

As for the luxury car/bycicle argument, it serves only to prove how stupid and desperate this lawsuit for a cool $billion is. I hope that IBM buys out SCO, then dissolves it and fires all of its employees. Either that, or they draw out litigation to the point that SCO runs out of money because its run by a bunch of talentless assholes whose business it is to buy the intellectual property of others, sell it, and then complain how hard it was for them to develop it when someone else develops something better.

Holy fonts batman

posted January 22nd, 2003 @ 02:58:56

- tags: life , linux

- comments: 0

I've recently (tonight) installed a special slackware "thang" called dropline gnome. Its a gnome/gtk 2.0 install that uses slackware's installpkg to give me some sugary sweet looking desktop candy. All of my fonts are antialiased now, like windows XP only they look clean. I kind of like it.. finaly GTK app's don't look like ass, and it even comes with a version of Mozilla 1.21 that is hacked to use antialiased fonts. Its pretty sweet if you run slackware. I'm going to test it out on JaySlack, or whatever the hell I'll name my silly little slackware cd.

Apparently, through no real affirmative action of my own, I've been non-formally accepted into the crack team of elite computer scientists at stevens. I really actually respect "tha crew", they know what they're doing and what they're talking about, and its only through hard work do I learn what it seems they've known for longer than me.

What I like about it most in comp sci is that there is so much crap to learn, that you could never, ever learn it all. That means the biggest idiot could potentially teach the greatest guru a thing or two about something, whether it be experience with a certain software or just some wierd historical tidbit.

Work has continued to be a source of indisputable fun where it lacks to be a legitimate source of income or revenue of any sort. My paycheck for the past month and a half seems to have totalled little more than what it used to for two weeks of work. Soon it will approach goodness, as apparently, due to a shipping error, I will be getting paid for more than a month come January 30th.

In an effort to make freshman more culturally aware, we treated them to Taco's, Shaolin Soccer and Bowling for Collumbine over at the house tonight. I was actually quite elated that my room ended up not being used, because it saved me the trouble of returning from my daily workout to a room full of people I don't know looking rather uncomfortable on my exquisite couch, taking up valueble daily show time, as if I actually caught the damn thing tonight anyway.

Beyond the topic of my fonts being absolutely beautiful, just so you know, again, there is the topic of classes to speak about. Database looks like it is going to suck now that I'm forced into Visual Basic with Microsoft access database projects. I wish I could do php w/ mysql or something else that the real world uses. (note IRONY -ed) Compilers looks to be boring in theory, but the project could prove fun. 521 is going to still rule, and 465 will be entertaining beyond the definition of the world.

A new friend seemed to be exactly what the doctor ordered to break the tedium at stevens. That, and a schedule chock full of excellent classes taught by excellent teachers.

Content over at omlettesoft is pretty cold, as is the weather both inside and outside my room. I don't see what all of the fuss is about, really; if you want fuss, go to jerm's page, he seems to be overflowing with fuss recently. I'd like to welcome a VIP to the community, the god of tinhder. Feel free to post comments by following the links below. Hopefully he'll have his own page soon, too. He's hilarious.

I shake and reveal stage tricks

posted January 2nd, 2003 @ 17:24:28

- tags: kde , linux

- comments: 0

Because a man does not have a webchat, does not make said man less of a man. In fact, since said man is me, I definitely am not lesser for it. Of course, I've wanted to code for a few day's now and have been unable to do so, but I am enjoying myself in my Linux console (mostly because I just broke my KDE install.. but thats another story). In fact, the Linux console is so powerful, that I'm actually amazed. Sit closer, son, and listen to my story.

I was trying to update kde, a most wonderful visual eyecandy filter for linux, when I promptly broke it. This is a problem Linux has.. but the solution, while not really any real solution to most, is actually quite liberating. I will expand upon this immediately. One of my virtual terminals is getting slackware-current from carroll.cac.psu.edu, another is playing a nice batch of mp3's from my NTFS partition on my forgotten clicky 80 gig, and in this one, I'm updating this page through a browser. The excellence of NCFTP, mpg123 and Links allows me to do this.. but theres more. After I get slackware-current, I'll build an image and burn it all in the console. I could even research online how to fix my kde install, but I would rather install slackware-current than try to upgrade this install of 8.1. The downside to all of this? There really is no downside. I wish there was, but there just isn't.

In dos, could I do this? Well, perhaps you could.. but I certainly can't. The console is the best part of linux, and for that it will always be a toy, always be a geek OS, and never topple Microsoft's OS regime. But because I can sit here and play in the console (and use my mouse no less) without really having to use X; well, its all the better.

Today I woke up sick, so I didn't go to work. Like a moron, I didn't call in, and when I woke up again (feeling much better), it was already about 6 hours after work should have started.. so I didn't call at all. I'm sure this has happened to someone else out there.. I don't know what it is, I'd rather explain that I was sick and couldn't come in tomorow when I'm there than explain that I am sick and I am calling in 6 hours late to notify them. First day my boss is back in the office too; after a stellar attendance all winter.

Jerm still isn't up, which I suppose is just as well considering that there isn't really much of anything to do. In a few days, the bed I've spent over a year in will have to be destroyed, and I'll be getting a new one in its place. I must say that the beds aren't really as high as I would have hoped, but they leave room for interesting poster opprotunities. I suppose they might make the room look smaller, since it wont be stretched as far vertically. If anyone has an idea of what to do this weekend I'm game, although I must warn that barring sexual expeditions, it will probably not my best day of the week. I'm going to give KDE3.1RC5 one last chance before making that ISO.