VOR

March 2, 2008

Scratchpad for Enso

Filed under: Misc — Braydon Fuller @ 12:41 pm

Andreas Schuderer has done some great work on demonstration for a Scratchpad for Enso:
http://www.schuderer.net/experiments.shtml#ensoid

January 18, 2008

hail to the bicycle

Filed under: Announcements — Braydon Fuller @ 3:05 pm

Some reasons why i’ve choosen to use a bike, in combo with a subway system, as my main transportation:

  1. Exercise. Riding your bike is low impact form of exercise. Since your it’s energy source, it’s energy is food, who doesn’t love food? I’ll have more of it.
  2. It’s faster. You can get two things done at once, your daily exercise and daily transportation. Plus a bike is faster than a car in congested areas.
  3. Good for traveling. You can easily stop and investigate interesting things along your path. Like life, getting to the end isn’t the goal, enjoying your way is!
  4. The area you live feels very important.
  5. Better visibility. When you’re riding a bike you are more fluid and flexible, you can go through areas where cars have to stop. This is possible because your ability to have a better view of traffic.
  6. For longer travel you can combo up it up! take your bike on the train, bus, or car.
  7. It doesn’t have a tracking number on it, like a controllable ‘object’ in a computer system. It’s a great way to avoid the DMV, parking tickets, registration fines, and smog checks.
  8. You can customize it very easily. I’ve taken my mountain bike and transformed it into an urban bike monster; slick thin tires, bike handlebars turned down, and custom paint on frame and rims.

January 7, 2008

~/.emacs : hiding *.pyc

Filed under: Misc — Braydon Fuller @ 10:56 pm

Here is what I have in my ~/.emacs. Emacs22 This is mainly to hide python compile files, or *.pyc, as well as some others files.

(add-hook 'dired-load-hook
(lambda ()
(load "dired-x")))

(add-hook 'dired-mode-hook
(lambda ()
(setq dired-omit-files "^\.[a-z|A-Z]+\|^\.?#\|^\.$")
(setq dired-omit-extensions '(".pyc" "~" ".bak"))
(dired-omit-mode 1)))

gnu.org/.../Omitting-Examples...

3.2 Examples of Omitting Various File Types

  • If you wish to avoid seeing RCS files and the RCS directory, then put
              (setq dired-omit-files
                    (concat dired-omit-files "\|^RCS$\|,v$"))
         

    in the dired-load-hook (see Installation). This assumes

    dired-omit-localp has its default value of no-dir to make the
    ^-anchored matches work. As a slower alternative, with
    dired-omit-localp set to nil, you can use / instead of
    ^ in the regexp.

  • If you use tib, the bibliography program for use with TeX and
    LaTeX, and you
    want to omit the INDEX and the *-t.tex files, then put

              (setq dired-omit-files
                    (concat dired-omit-files "\|^INDEX$\|-t\.tex$"))
         

    in the dired-load-hook (see Installation).

  • If you do not wish to see `dot' files (files starting with a .),
    then put

              (setq dired-omit-files
                    (concat dired-omit-files "\|^\..+$"))
         

    in the dired-load-hook (see Installation).

Emacs Cheetah-mode

Filed under: Misc — Braydon Fuller @ 8:03 am

Add this to your ~/.emacs

(define-derived-mode cheetah-mode html-mode "Cheetah"
  (make-face 'cheetah-variable-face)
  (font-lock-add-keywords
   nil
   '
(
     ("\(#\(from\|else\|try\|pass\|silent\|except\|include\|set\|import\|for\|if\|end\)+\)\>" 1 font-lock-type-face)
     ("\(#\(from\|for\|end\)\).*\<\(for\|import\|if\|try\|in\)\>" 3 font-lock-type-face)
     ("\(\$\(?:\sw\|}\|{\|\s_\)+\)" 1 font-lock-variable-name-face))
   )
  (font-lock-mode 1)
  )
(setq auto-mode-alist (cons '( "\.tmpl'" . cheetah-mode ) auto-mode-alist ))

previous version from chmouel.com/...

January 2, 2008

a simple rewrite

Filed under: Python — Braydon Fuller @ 6:33 pm

I needed a way of translating "644", an object permission setting, into something more readable.

I wanted to be able to do the following:

def determinePermissions(obj):
    obj_usr= {"owner":obj.owner, "group":obj.group, "everyone":True}
    usr = {
        "owner":cherrypy.session.get('user'),
        "group":cherrypy.session.get('group'),
        "everyone":True
    }
    perms = self.translatePermissions(obj)
    r, w = False, False
    for x in ["owner", "group", "everyone"]:
        r = True if perms[x]["read"] and obj_user[x] == usr[x] else r
        w = True if perms[x]["write"] and obj_user[x] == usr[x] else w
    if usr["owner"] == "root":
        r, w = True, True
    return {"read":r, "write":w}

So I first wrote this [unexecuted]:

def translatePermissions(self, obj):
        obj = self.get(oid=object_id)
        user, group, everyone = struct.unpack("3c",str(obj.permissions)):

        if owner == 6:
            owner["read"] = True
            owner["write"] = True
        if owner == 4:
            owner["read"] = True
            owner["write"] = False
        if owner == 0:
            owner["read"] = False
            owner["write"] = False

        if group == 6:
            group["read"] = True
            group["write"] = True
        if group == 4:
            group["read"] = True
            group["write"] = False
        if group == 0:
            group["read"] = False
            group["write"] = False

        if everyone == 6:
            everyone["read"] = True
            everyone["write"] = True
        if everyone == 4:
            everyone["read"] = True
            everyone["write"] = False
        if everyone == 0:
            everyone["read"] = False
            everyone["write"] = False

        return {"owner": owner, "group": group, "everyone": everyone}

And then I rewrote it to the following:

def translatePermissions(self, object_id):
        rw = []
        obj = self.get(oid=object_id)
        for value in struct.unpack("3c",str(obj.permissions)):
            if value == 6:
                r = True
                w = True
            elif value == 4:
                r = True
                w = False
            elif value == 2:
                r = False
                w = True
            else:
                r = False
                w = False
            rw.append({"read":r, "write":w})
        return {"owner": rw[0], "group": rw[1], "everyone": rw[2]}

And then checking for read and write rather than going through each possibility of v, as well as passing an object prior to reduce multiple seeks:

def checkPermissions(self, obj):
        rw = []
        for v in struct.unpack("3c",str(obj.permissions)):
            if v == 6 or v == 4:
                r = True
            else:
                r = False
            if v == 6 or v == 2:
                w = True
            else:
                w = False
            rw.append({"read":r, "write":w})
        return {"owner": rw[0], "group": rw[1], "everyone": rw[2]}

But with Python2.5 you can go even further and reduce it to:

def translatePermissions(self, obj):
        rw = []
        for v in struct.unpack("3c",str(obj.permissions)):
            r = True if v == 6 or v == 4 else False
            w = True if v == 6 or v == 2 else False
            rw.append({"read":r, "write":w})
        return {"owner": rw[0], "group": rw[1], "everyone": rw[2]}

From 32 lines at the start to 8 lines in the end! :) And both together they look like this:

def determinePermissions(obj):
    obj_usr= {"owner":obj.owner, "group":obj.group, "everyone":True}
    usr = {
        "owner":cherrypy.session.get('user'),
        "group":cherrypy.session.get('group'),
        "everyone":True
    }
    perms = self.translatePermissions(object_id)
    r, w = False, False
    for x in ["owner", "group", "everyone"]:
        r = True if perms[x]["read"] and obj_user[x] == usr[x] else r
        w = True if perms[x]["write"] and obj_user[x] == usr[x] else w
    if usr["owner"] == "root":
        r, w = True, True
    return {"read":r, "write":w}

def translatePermissions(self, obj):
    rw = []
    for v in struct.unpack("3c",str(o.permissions)):
        r = True if v == 6 or v == 4 else False
        w = True if v == 6 or v == 2 else False
        rw.append({"read":r, "write":w})
    return {"owner": rw[0], "group": rw[1], "everyone": rw[2]}

Poetry!

December 5, 2007

Imagine if instead of cryptic text strings, your computer produced error messages in haiku…

Filed under: Gnu/FS — Braydon Fuller @ 2:31 pm

I just stumbled upon this from Gnu.org, and thought this would -- even though a joke -- would be a good idea! :)

A file that big?
It might be very useful.
But now it is gone.

(more...)

December 4, 2007

An Empirical Comparison of Radial vs. Linear Menus

Filed under: Interface — Braydon Fuller @ 8:23 pm

Menus are largely formatted in a linear fashion listing items from the top to bottom of the screen or window. Pull down menus are a common example of this format. Bitmapped computer displays, however, allow greater freedom in the placement, font, and general presentation of menus. A pie menu is a format where the items are placed along the circumference of a circle at equal radial distances from the center. Pie menus gain over traditional linear menus by reducing target seek time, lowering error rates by fixing the distance factor and increasing the target size in Fitts's Law, minimizing the drift distance after target selection, and are, in general, subjectively equivalent to the linear style.

Full Comparison at Don Hopkin's Site

September 11, 2007

DOWNLOAD & INSTALL!
Falcon TypeSetter 0.2-dev
use any typeface on the web dynamically

Filed under: Brainstorm — Braydon Fuller @ 7:35 pm

This software gives you the bird-like freedom to use any typeface on the web, while still keeping it machine and human friendly. The text remains editable in the browser, or content management system, because of this. You can define styles ( in styles.conf), or use a php script to generate both dynamic css and falcontype styles, making using any typeface as flexible as if it was using css. Falcontype currently supports changing size, color, leading, and typeface. Image tags are generated with alt tags with an exact copy of the text for search engine optimization.

Licence: GNU GPL
Example: Basic
Download: http://interfce.com/software/falcon-typesetter-0-2.tar.gz

Changes: Translating text would now need to be done server-side, as the javascript repacement method has been replaced. Your pages will need to be php now as well.

Previous Version: Falcon TypeSetter 0.1-dev (Javascript Replacement Method)
Roadmap: "FalconWTS (WebTypeSetter)"

July 12, 2007

The Nature of an Interface

Filed under: Interface — Braydon Fuller @ 8:09 am

Fitts' Law:
The farther away, and smaller the target is from your starting position the more mental attention we need to hit the target.
http://en.wikipedia.org/wiki/Fitts'_law

Steering Law:
The more curves the movement path has more attention to avoid mistakes it needs and slower we need to go, and the wider the path for these curves less attention and faster we can go.
http://en.wikipedia.org/wiki/Accot-Zhai_steering_law

Crossing Based Interfaces:
Instead of pushing a button which triggers and action, crossing a goal triggers. Multiple actions can be started quickly like strumming guitar strings to form a chord.
http://en.wikipedia.org/wiki/Crossing_Based_Interfaces

Hick's Law:
The more choices we have the longer and more attention it takes to process, the less the faster. This also depends on individuals and their knowledge of the choices which can aid in reducing the complexity by forming groups of the many choices to form fewer choices.
http://en.wikipedia.org/wiki/Hick's_law

In Practice:
- The further away options are in a linear menu the more time, attention they need.
- Using scrollbars is like a 1 second game of golf 300 times a day, as are menu bars at the top of windows.
- A radial menu gives equal importance to many options, and a radial menu is never far away.
- Panning is always right underneath your hand.
- The command line goes against Hick's law by having thousands of commands, it thus takes lots of thought and time to understand.
- Menu's break many options into fewer, making it quicker to understand.
- Dropdown menu's give a small area to hit, and thus require more thought, attention and time, but do go with Hick's law in that it reduces the amount of things which makes it quicker to get.
- Buttons that are far away and small is also like playing a 2 second game of golf.
- Multiple levels in menu's with small goal crossing spots slow us down like having many tight curves in the road, which can be fun if that is the focus. Larger curves require less thought, and are we make less mistakes. If we're concentrating on something else, big curves are better so we don't make mistakes.

May 19, 2007

Los Angeles: Bike vs Car

Filed under: Life — Braydon Fuller @ 4:16 pm

So I did something new this Friday. I rode my bike to work. And then after work met up with Eric to grab ramen at Doukukai (spelling?), and then meet up for the Sins & Sprockets bike ride at the China Town metro station. View the path map.

Travel by bike:

Positives:
Exercise, better mood.
Easy parking
Flexible routes.
Increased interactions with environment

The total bike ride was about 35 miles, about 2,500 calories used, the time it took in total at around 3.5 hours at around 10mph on average.

2,500c =

  • 11 servings from the Bread, Cereal, Rice & Pasta Group
  • 4 servings from the Fruit Group
  • 4 servings from the Vegetable Group
  • 2 servings from the Milk, Yogurt, & Cheese Group
  • 6 oz. from the Meat, POULTRY, Fish, Dry Beans, Eggs & Nuts Group
  • About 13 1/2 tsp. added sugars in foods; 74 grams of fat (from the fat naturally in food plus added fat)

Travel by car:

Positives:
Faster.
Less expensive.

It would have still been 35miles, using 1.2 gallons of gasoline, and around 2 hours travel time including the hassle of parking, at around 17mph on average.

Gasoline costs $3.40 per gallon, so the total would be $4.00 dollars.

Gratis Books

Filed under: Life — Braydon Fuller @ 3:23 pm

If you live in Los Angeles they are available for pickup. If you live elsewhere, they are available for delivery for the price of packaging and shipping. Books available in these groupings, or individually selected. courier@braydon.com

Fiction

  • For whom the bell tolls, Ernest Hemingway
  • A Clockwork Orange, Burgess carla
  • Dune, The Butlerian Jihad, Brian Herbert and Kevin J. Anderson
  • Beowulf, translated by Seamus Heaney
  • To kill a mocking bird, Harper Lee
  • Slaughterhouse-five, Kurt Vonnegut, jr. lozzi
  • Dune, House Harkonnen, Brian Herbert and Kevin J. Anderson
  • 1984, George Orwell paganelli
  • This Side of Paradise, F. Scott Fitzgeraldcarla
  • Maus I & II, Spiegelman (graphic novel)

Computer

  • Cocoa Programming for Mac OS X, Aaron Hillegass
  • Learning Cocoa, Apple Computer, Inc.
  • Creating Motion Graphics with After Effects, 2nd Edition, Volume 2, Trish & Chris Meyer
  • Javascript Bible, 3rd Edition, Danny Goodman
  • Adobe Photoshop Master Class, John Paul Caponigropaganelli
  • Learning Cocoa with Objective-C, Apple Computer Inc.
  • Revolution in the Valley, The insanely great story of how the mac was made, Andy Hertzfeld paganelli
  • Digital Retro, Gordon Laing
  • Producing Open Source Software, Karl Fogel
  • The Succes of Open Source, Steven Weber

Design

  • Less is More; The new simplicity in Graphic Design, Steven Heller and Anne Fink
  • Maeda @ Media, John Maeda lozzi
  • Type in Motion; Innovations in Digital Graphics, Jeff Bellantoni, Matt Woolman
  • Color and Meaning; Art, Science, and Symbolism, John Cagecarla
  • Pause :59 Minutes of Motion Graphics, Julie Hirschfeld, Stefanie Barth, Perter Hall, Andrea Codrington
  • Symbols, Signs & Signets, Ernst Lehnerjordan
  • I am almost always hungry, Cahan & Associates
  • Flash Math Creativity
  • Flash to the Core, Joshua Davis
  • Flash Web Design, Hillman Curtis
  • MTIV; Process, Inspiration and Practice for the New Media Designer, Hillman Curtis

Non-Fiction

  • Buckminster Fuller; Anthology for a New Millennium, edited by Thomas T.K. Zungstephen
  • Metaphors we Live by, George Lakeoff and Mark Johnson
  • Cradle to Cradle, William McDonough @ Michael Braungart
  • Sigmund Freud; The Interpretation of Dreams
  • Machiavelli - The Discourses paganelli
  • Basic writings of NIETZSCHE carla
  • On Nature and Language, Noam Chomsky carla
  • Language and the Problems of Knowledge, Noam Chomsky carla

May 13, 2007

Libre Graphics Meeting

Filed under: Design — Braydon Fuller @ 10:30 pm

This is so cool. Some people have created a Libre Graphics Meeting in Montréal, Québec, Canada. A whole community based around Free Software and Graphic Design. Very cool, I wish I lived in Montréal so I could attend. Or maybe Libre Graphics Los Angeles, will be born sometime soon. :)

There is a report from the Libre Graphics Meeting at the CC Blog
And also at rejon.org, LGM 2007

April 9, 2007

-

Filed under: Design — Eric Cushing @ 10:36 pm

readthat.jpg

Just when you think you've done something interesting. I don't know who these folks over at productetcetera.com are, but it seems we get our news from the same damn place!!

In Response to Mr. Stark

Filed under: Design — Eric Cushing @ 10:18 pm

readthis.jpg

April 2, 2007

-

Filed under: Design — Braydon Fuller @ 9:11 pm

March 23, 2007

‘Saving the Stills’ by Eric Cushing

Filed under: Design — Eric Cushing @ 2:35 pm

There is an inevitable trend in our disposition towards our desire for personal entertainment; and that is our patience, or constantly waning supply as it seems. "I don't want to wait!" to sum up the nation's feelings.

It used to be that we would wait in weekly intervals for our favorite radio personalities to bring us the next installment of Little Orphan Annie. And when TV came along we did the same, for a little while at least, until our patience got a bit shorter and we expected new revelations of our favorite soap opera stars on a daily basis. But even that has become to much to bear, and we have decided that no show should revolve around any schedule, but our own; and with on-demand types of services we have become our own TV guide. But with on-demand you still have to tolerate commercials, at least once in a while, and that brings us to the forefront of this two century long battle, where advertising and DVR (digital video recorders) hold one another at the throat.

Most people know DVR as the popular brand name TiVo, which origianlly set out to free viewers from the shackles of commercials by allowing us to fast forward through buffered TV content that was captured on the device in realtime on a HDD (hard disk drive). Advertisers and the like have done everything they can to prevent the control of television content from falling completely into the hands of the viewer, but if we get our way, as history suggests we will and as most of us already have via streaming internet content, television advertising is going to have to reevaluate its tactics.

This brings me to the meat of the subject. Motion graphics has recently been a rapidly growing field of graphic design, and most of that growth can be attributed to it increasingly popular use in television and internet advertising. Certain circles of print and still-image graphic designers have been muttering curses at the motion graphics community for quite a time now, either fearing for their jobs or fearing to learn new software in order to keep up with this trend. But I say, "fear not," for the end of the motion
graphics boom is already in sight.

With convenience on its side, DVR will win the fight and soon everyone will briskly fast forward through the commercials, and what good is fancy motion graphics when 3 minuts of advertising speeds past in just 3 seconds, well it's not much good at all. But there is one device that can work it's magic in 3 seconds or less, and that's still-image communication; good still-image communication.

So those of you that never quite saw the magic of motion graphics in advertising, who held fast to your belief that 1 good image is infinitely more powerful that 30 minutes of fluff; the throne of graphic communication has been briefly sidled by a trend, only to be set ablaze by technology, seemingly, of the same blood. And from the smoldering ashes of motion graphics, will be reborn, single image, still-communication.

March 3, 2007

Concept: Make Money withFree/Unfettered Software, Music, Movies, Books, Photos, etc.

Filed under: Brainstorm — Braydon Fuller @ 6:39 pm

Richard Stallman, the 'father' of the GNU/Linux free software movement, gives many speeches around the world about Free Software (audio clip explaining free software's freedoms), and at the end of the speeches many people ask him how the ideas of Free Software can apply to other things. Listen to him speak about freedom in other things (audio clip), or his entire lecture (audio) at CalTech on Copyright vs Community in the Age of Computer Networks.

Free? What about money? The thing that confuses people is that they think free software is "for free" or "for zero price", but this is not the case. While the software is often available to download without a monetary price, they often sell cd/dvds; Free Software is about freedom; users are free to give back in a way that works for them. Some people will give back to the Free Software by further developing the software, since the source-code is free, some will help by promoting the software, or by giving support for the software, some will also send money to support the project.

For the latter, the money way of giving, Richard Stallman suggests a few ways of how money and Free Software and Free other things, in a lecture at the California Institute of Technology (Caltech).

Richard Stallman: Ways to make money with Free Software and other things (below). From his Copyright vs Community in the Age of Computer Networks speach at Caltech (full length uncut audio).

1. Tax Based System:
A tax is collected and distributed to artists based on their popularity.

2. The $1 Button on Media Players
A button put on media players that will send a $1 to the artist.

3. Sell Merchandise
Create physical objects to buy, so that there is an incentive to buy the 'hard' object, over the 'soft' object.

February 28, 2007

‘The Mind is The Limit’ by Eric Cushing

Filed under: Interface — Braydon Fuller @ 11:19 pm

As I sat and stared at my monitor, the hourglass trickling pixel by pixel, I dreamed of how great it would be when some day I owned a 1000mhz super computer. At the click of a button, or a double click as it were, I would be able to open and close programs at a whim. Notepad, Minesweeper, Netscape Navigator and more would fall to their knees, no longer a challenge for my bit cruncher. This is how a computer should integrate with you(me, humans)...at least on a primitive level, as fast as I can think and instruct the computer to execute my command, there shall it be.

Ah, but that was a dream. I still sit in front of my 2800mhz machine and wait for my programs to open, to save, to compute. Of course the programs I'm using now are capable of doing such things I could scarcely have imagined back then. But what about in 10 more years? Will we still be pushing the limits of computing power, only to mire that power down in new dreams we've yet to have? How many times can we awaken to a horizon of possibilities promised to be limitless? I suspect that if big business and the software/computer industry continue to share a bed, the answer is forever.

For every leap in computing power there is countless billions to be had. For every incompatibility, there must exist a promised version of compatibility. And for every second that I wait for my request to be processed there builds a desire, pumping life into the possibility of my next computer upgrade, my next paycheck spent. But what about when I no longer have to wait?

My monitor pulses with the instantaneous creation and destruction of the computational power of my mind paired with my computer. But this is not just the computer I have this year, this is THE computer; I have it from birth 'till death. It exceeds the speed of my mind and my ability to control it and so, I never need to upgrade. I never need to buy the latest model, compete with the Jones' or save-up.

Great forces would like for this day never to come. That is the reason that for all the strides we've made, we feel as though we're still watching the same hourglass. Our minds will be the limiting factor, but whether they ARE our limits or they DEFINE our limits is up to us.

submitted by Eric Cushing (http://coffeeanddonut.com/ | Culture as Client)

February 27, 2007

Audio/Voice: Richard Stallman: Copyright vs Community in the Age of Computer Networks (2007)

Filed under: Gnu/FS — Braydon Fuller @ 5:19 pm

"This speech will be accessible to all audiences and the public is encouraged to attend. Copyright developed in the age of the printing press, and was designed to fit with the system of centralized copying imposed by the printing press. But the copyright system does not fit well with computer networks, and only draconian punishments can enforce it. The global corporations that profit from copyright are lobbying for draconian punishments, and to increase their copyright powers, while suppressing public access to technology. But if we seriously hope to serve the only legitimate purpose of copyright--to promote progress, for the benefit of the public--then we must make changes in the other direction." (http://www.fsf.org/events/caltechspeech/view)

During this early afternoon (February, 27, 2007), I got a chance to hear Richard Stallman (Wikipedia | FSF Blog | Personal | "Free as in Freedom" | Gnu Philosophy | Interview) give a lecture on Copyright in the Age of the Computer. I walked to the speech at Caltech (California Institute of Technology) from my apartment here in Pasadena. It was about 15min on a warm/cool sunny day, the walk was great, and the presentation was entertaining & educating.

The talk was very popular, many people were standing outside the door to listen. Richard spoke near the door so everyone could hear well.

I brought my RadioShack 2 Speed Microcassette Recorder, and ripped the audio onto my MacBook Pro. I had to change tapes in the middle of the presentation, and I changed the speed so I could record more, I wanted to make sure I got it all. I am not familiar with analog tape recording. I hear you can run Linux on iPods which give you many options for how you record, although I've heard recording using the iPod software saves as an aiff file at about 1mb per min.

Full-length (1hour 37min)


download mp3 (22MB) | download ogg (27MB)

Audio Sections

1. Introduction (3min 54sec)

2. Respecting Freedom

3. Beginning of Free Operating System GNU/Linux

4. Freedom in Other Things

5. Copyright Laws and the Computer

6. Break: Pepsi & Coke

7. History of Copy Technology & Copyright Law

8. Note: Copyright & Patents

9. Break: Choices of Pepsi

10. History of Copy Technology & Copyright Law (continued)

11. History of Copy Technology & Copyright Law (continued 2)

12. History of Copy Technology & Copyright Law (continued 3)

13. Present: Movie Copyright

14. Break: Pepsi Test

15. Present: Music Copyright

16. Present: Book Copyright

******this is an incomplete set of clips, the full length includes everything. the rest will perhaps be made later. if you wish for them, please send me an email.******

Other "Copyright vs Community in the Age of Computer Networks" Resources

Video Recording ( MPEG4 (297 MB) | QuickTime (811 MB) | Internet Archive ) (2004)
Audio Recording (May 20, 2004)
Audio Recording (February, 2002)
Text Transcription (7th July, 2000)
Text Transcription (7th July, 2000)

GNU Background

http://www.gnu.org/
http://www.gnu.org/philosophy/audio/audio.html
http://www.gnu.org/philosophy/philosophy.html
http://www.gnu.org/philosophy/free-sw.html
http://www.gnu.org/philosophy/free-software-for-freedom.html
http://www.gnu.org/philosophy/free-doc.html
http://www.gnu.org/licenses/licenses.html
http://www.gnu.org/copyleft/copyleft.html
http://www.gnu.org/gnu/manifesto.html
http://www.gnu.org/gnu/thegnuproject.html
http://www.gnu.org/gnu/linux-and-gnu.html
http://www.gnu.org/gnu/why-gnu-linux.html

Powered by WordPress