Showing posts with label gnu. Show all posts
Showing posts with label gnu. Show all posts

Thursday, June 02, 2016

KBtris

Some day, I will stop thinking of ways to ruin Tetris. But it is not this day.

A little while ago my brain finally realized that two very familiar sets of numbers match up.  Ten main keys on a computer keyboard's homerow, four main rows of ten keys each.  Ten columns in a Tetris playing field, four orientations for Tetris pieces.  And that was that.  From that moment, I had no choice.
A version of Tetris requiring most of the keyboard had to exist.  If it already did, I couldn't find it.  So now the world has one more Tetris clone.
KBtris has a steep learning curve, which is something I would normally shy away from in a game.  But the idea is too compelling.  Traditionally, when a Tetris piece appears, even if you are a master player you still have to get your fingers or thumbs to input something like:
left-left-left-left-rotate-drop
Now, you can do the same thing with:
q
One keystroke will both rotate your piece to the desired orientation and move it to the desired column.  This of course means you need to _have_ a desired orientation and column, and then hit the correct key out of forty.  It's efficient, but you need all your fingers and your wits about you to get started.  From there, it's not completely unlike learning the piano.

I've played a lot of Tetris in my life; I consider it one of the purest gaming experiences imaginable.  My first goal now that KBtris exists is to get as good and as fast as I can at it.  I'm curious whether I'll be able to keep up with friends who are faster typists.

Beyond that, I want to see someone get really good.  Way beyond my abilities.  I want to see a KBtris Olympian and be shamed.

Maybe _then_ I'll stop thinking up ways to ruin Tetris.

Friday, December 01, 2006

GPL: DRM for source code...?

Over a very nice lunch with a gang of work buddies, the topic of GPL3 and proprietary versus open versus Free came up, and eventually led to a comment that the GPL is "DRM for source code". If you know me, and you know what that means, then you know that it rubbed me the wrong way. :^) Granted, this was said by someone who is no stranger to playing a devil's advocate role, but it got me thinking, and it's been a while since I've posted anything with even the slightest hint of substance.

First of all, I would define most implementations of DRM the way Richard Stallman and the rest of us pinko hippies do, as "Digital Restrictions Management", as opposed to its intended expansion of "Digital Rights Management". Chunks of code and signed keys wrap the stuff you buy on iTunes, the DVDs you buy, and other things where some party is claiming exclusive "rights" to the distribution of whatever we're talking about. The effect is that you can't use the thing you paid for in just any old manner you see fit. (Say, making a copy.) You can only do with it what the rights-holder sees fit. To me that smells more like "restrictions". It's an artificial and arbitrary limitation. I understand why it's done, but I find it insulting, so I whine about it.

The GPL is something of a bill of rights that someone can apply to the software they write. The Linux kernel is GPL. The GNU utilities are GPL. My silly game Tong is GPL. The authors of those programs have decided to use a software license that says, "I give you this program and its code, which you have the freedom to use and modify as you see fit." Most importantly, the GPL also states that if you turn around and give the program (as it was, or your modified version) to someone else, you must afford them all the same freedoms. Technically speaking, that is also an artificial and arbitrary limitation.

So yes, the GPL places restrictions on what can be done with a program's source code: I can't modify it and/or pass it on without also passing on the right to modify it and/or keep passing it on. (That should already sound pretty different than DRM.) The still-being-drafted GPLv3 adds some further stipulations, because people (well, businesses) have found ways to distribute GPL code while following the letter of the GPLv2 but not actually passing on those freedoms in practice. Tivo is the obvious example. It runs GPL software inside (GNU/Linux), but if you grab the code, tweak it, and try to run that, the hardware won't let you, because it only runs software digitally signed by Tivo's developers. You still have the right to modify it and/or pass it on, but now, that doesn't do you or anybody else any good. GPLv3 spells out that doing that sort of thing is cheating, and closes those loopholes. This is naturally upsetting to businesses who gain from their use of GPL code but don't agree with the spirit of the GPL, so they whine about it.

Now, suppose that all media and all programs were public domain. Neither DRM nor GPL exist, and there are no artificial or arbitrary restrictions on any set of bits. Film studios don't try to equate copying movies with robbery and murder on the high seas, and Richard Stallman doesn't get his undies in a bundle over businesses locking up and selling their own secret-ingredient versions of the software he and the rest of the Free Software Foundation's contributers created. That's total freedom. It isn't particularly respectul, but it's complete and unrestricted freedom.

I bring up respect because that's the key conceptual difference between the licensing restrictions of DRM'ed media and GPL'ed code. DRM respects only the initial provider. DRM says, "You can't do that, because I must have total control." GPL respects everybody, on the condition that everybody also respects everybody. GPL says, "You can't do that, because everybody must have control." I guess they both say, "you can't do that," but it hardly seems like the same deal.

There's another face for all this, the unsettling idea of using legal agreements to dictate ethical behaviour. In principle that's not desirable, at least to me, given the number of legal agreements made by parties whose ethics I would call into question. As it works out, however, I would much rather (and have done) enter a license agreement that tries to guarantee freedoms for myself and others, than one that leaves me and my activities at the legal mercy of, say, a large publisher. Now, if someone can come up with an ethical argument against the effects of the GPL that's not a form of "but I want money!", then I'll be glad to entertain it. (If money's what you want, then Free software is at best a means to an end for you, not an end itself.) Otherwise, at least it's a positive set of ethics that the license is imposing.

In any case, I can see an abstract similarity. But look into it from any direction, and I just don't see GPL and DRM having anything substantial in common. I guess they're both buzzy TLA's.

("Three-letter acronyms." I was attempting to make a joke...)

Tuesday, January 31, 2006

Distreligioubution

This probably isn't a new idea, but it's new to me so I'm gonna have a little fun with it. Lately an evangelical buddy of mine has persuaded me to give Ubuntu Linux a try. It's now installed on my secondary workstation as well as my personal laptop. My friend is becoming something of an Ubuntu evangelist around the office, and he's also a Mormon who's done the whole missionary thing. That got me thinking about what parallels could be made between various theologies and various flavours of GNU/Linux. Don't get all antsy if your favourite distribution and your favourite religion don't match up in my little blathering - the tendancy to get uptight about one's adopted distro or beliefs is the first and most obvious similarity.

I've been a Slackware guy for a long time, so I'll begin there. Slackware has to be agnosticism. You don't pray to any server to get your packages, you go and grab the source and build it yourself. You don't have any omnipresent dependancy checking system, though you're entirely free to install one of your own choosing.

Debian seems like Catholicism or something. It's old, it's conservative, its decisions and public statements sometimes cause excessive head-scratching. But, its followers are pretty hard-core, and apt-get is a form of "ask and ye shall receive" if I've ever seen one.

That would make Debian spinoffs like Ubuntu some sort of protestant sects, I suppose. A bit more agile, a little more in tune with the common man's modern issues. Keep the tried-and-true concepts, but bring some sensible defaults and some new ideas to the altar.

GNU/Hurd isn't a "Linux" distribution, but I have to go there because of its striking similarities to Judaism. Both concepts have been around for about 4000 years, and both are still awaiting the messiah. Many decided when Linus came along with his kernel that the saviour had appeared, but others remain unshaken in their conviction.

Red Hat may be Hinduism, based on the whole "many manifestations of one supreme being" thing. In Red Hat, I was offered a binary, development libraries/headers, and source code, for the same program, all as RPMs. Source code in an RPM just sounds weird and counterintuitive to a western-thought person like myself.

I work at Novell, so either I should definitely try to say something about SuSE and NLD/SLES/Code10/Whatever, or I should definitely ... not. All I know is when a SuSE-based distro sounded like it was dropping KDE, I half expected to hear shrill hollering and AK-47s being fired skyward. Percieved blasphemy and infidels stir hate not only in extremist sects, but across Slashdot and mailing lists as well.

Some distros highly encourage spreading the good word by providing live CDs, and though burning an .ISO file is less conspicuous than someone in black handing out novelty miniature bibles on the street corner, I guess it's sort of the same thing. I've seen USB flash memory drives pre-loaded with bootable GNU/Linux systems, and I've seen others pre-loaded with indexed, searchable scripture. Religious scholars with no time for technobabble and hackers with no time for religion take note, your worlds are more similar than you may realize. :^)