Slashdot Mirror


User: Tom+Christiansen

Tom+Christiansen's activity in the archive.

Stories
0
Comments
621
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 621

  1. Re:Table widths? on redhat.com Site Redesigned · · Score: 2

    That's why I wrote the diversity guidelines for HTML creation. I talk about how evil absolute pixels are, and also these epileptic pages.

  2. Re:Not hard drives. on 420 Gigabyte Hard Drives · · Score: 3
    The geek-to-luser translation table has more than one technical interpretation of what the mundanes means when they say "hard drive":
    1. controller = hard drive
    2. disk = hard drive
    3. disk controller = hard drive
    4. disk drive = hard drive
    5. drive = hard drive
    6. file system = hard drive
    7. logical disk = hard drive
    8. mount point = hard drive
    9. partition = hard drive
    10. physical disk = hard drive
    As you see, they aren't particularly precise. It's no surprise that this too should end up being called a "hard drive". Nearly everything is. :-)
  3. Re:Need Free Messaging Software! on Messaging Software Wars · · Score: 2
    All the messaging programs at the moment suck really badly. ICQ and AIM are both pretty woeful.
    The other day somebody was mumbling about Zephyr , an Athena messaging system. I have no idea whether it's suitable, because I've never used it. But I've never used these consumer-based things either. Somebody might want to evaluate it.
  4. Programmerese/Userese Dictionary on BSD: "The Net's stealth operating system" · · Score: 3
    What's an "app"?
    Here's a translation table to help techies programmer types and consumerist non-computer types talk to each other. Yes, I know that there's a many-to-many mapping here. That's always true when translating one language to another. Oh, some of these are slightly less than serious, and occasionally even slightly less than accurate. I also intentionally de-alphabetized them so you could have more fun.
    • open source = source code
    • manpage = documentation
    • Enterprise = that spaceship from Star Trek
    • binary edit = patch
    • physical disk = hard drive
    • box = computer
    • mount point = hard drive
    • file = binary file
    • open source = shareware
    • binaries = programs
    • alpha = beta
    • CGI scripts = CGIs
    • partition = drive letter
    • off the net = offline
    • obvious = subtle
    • MS-ASCII = text
    • alpha = new technology
    • computer secretary = admin
    • logical disk = hard drive
    • Evil One = Bill Gates
    • program = script
    • criminal = hacker
    • bug fix = upgrade
    • commonplace = ubiquitous
    • programmer = software engineer
    • floppy disk = disk
    • luser = surfer
    • network = web
    • hide = protect
    • computer scientist = mathematician
    • net = web
    • daemon = server
    • legal extortion = per-seat licensing
    • diskette = disk
    • hacker = coder
    • physical disk = drive letter
    • secretary = HTML programmer
    • sysadmin = sysop
    • cracker = hacker
    • IRC client = IRC browser
    • computer = server
    • memory = RAM
    • logical disk = drive letter
    • programmer = scripter
    • mail messages = e-mails
    • flexible = difficult
    • beggarware = shareware
    • paid bug fixes = updates
    • disk drive = hard drive
    • Internet Exploder = Internet Explorer
    • eye trash = banner ads
    • shell command = system call
    • couldn't care less = could care less
    • drive = hard drive
    • greatest common factor = least common denominator
    • Unix = UNIX
    • Microsoft's mistakes = virii
    • copy = upload
    • competence = elitism
    • monolithic program = application
    • programming = scripting
    • computer scientist = engineer
    • fleeceware = software
    • lying = marketing
    • file system = hard drive
    • controller = hard drive
    • PC = home computer
    • coredump = blue screen
    • offline = away from the computer
    • millennium = millenium
    • partition = hard drive
    • beginner = newbie
    • business = enterprise
    • competent = elite
    • bloatware = apps
    • fleeceware = commercial software
    • function = command
    • configurable = confusing
    • Mordor = Redmond
    • mail = e-mail
    • challenging = impossible
    • kernel = kernal
    • disk controller = hard drive
    • mails = sends e-mails
    • executables = programs
    • binaries = shareware
    • crippleware = shareware
    • buggy = beta
    • mark-up language = programming language
    • system call = command
    • internal network = Intranet
    • beta = production
    • open source = freeware
    • system call = operating system function
    • copy = download
    • fix = hire a consultant for
    • luser = user
    • disk space = memory
    • code = software
    • MS-HTML = HTML
    • netiquette = useless manners
    • newsreader = news browser
    • IRC channel = chat room
    • disk = hard drive
    • Evil Empire = Microsoft
    • GUI annoyance = wizard
    • operating system = kernel
    • kernel = operating system
    • newsgroup = chat room
    • editor = text editor
    • bloatware = application
    • patch = source edit
    • file = text file
    • file system = drive letter
    • expert-hostile = user-friendly
    • login = shell account
    • mount point = drive letter
    • connect to http://www.foo.com/ = logon to foo.com
    • access the web = surf the net
    Your job now is to write a program than converts from one lingo to the other, or vice versa.
  5. Re:Java language no larger than C on On Perl 5.6 · · Score: 2
    And [Java] runs about as fast as Perl or Python, especially for non-graphical stuff.
    There aren't many numbers out there on this, which leaves most such statements subjective, anecdotal, or at best, irreproducible. That's too bad. It would be nice to have some real numbers.

    One place where you can read more about this is in Timing Trials, or, the Trials of Timing: Experiments with Scripting and User-Interface Languages, a white paper by Brian Kernighan and Christopher Van Wyk.

    Another interesting metric is taken from The Practice of Programming, by Brian Kernighan and Rob Pike (1999). It is difficult to reproduce the table here, because slashdot doesn't permit tables, preformatted tags, xmp tags, or even nonbreaking spaces. Sigh. (And no, this feature lack has nothing to do with Perl. They just chose for it to work this way.) I will try to uses hyphens instead of spaces, but no promises.

    PLATFORM--------250mhz Irix-----400mhx pII MS---line count

    C---------------0.36 sec--------0.30 sec--------150
    Java------------4.9-------------9.2-------------10 5
    C++/STL/deque---2.6------------11.2--------------7 0
    C++/STL/list----1.7-------------1.5--------------7 0
    Awk-------------2.2-------------2.1--------------2 0
    Perl------------1.8-------------1.0--------------1 8

    You'll have to read their analysis of these data for more explanation. I should point out that the STL obviously has a bug under Microsoft's version of the deque.

    But this really should call into question the speed claims of the Java people. And it's my understanding that this benchmark did use the fabled JIT tech. It was a Markov chain generator, by the way.

  6. Why threads? on On Perl 5.6 · · Score: 3
    multi threading though? Why?
    Mostly because due to the horrible botch that Microsoft has made of processes, without threading, the Prisoners of Bill have no possibility of anything resembling real multitasking.

    Certainly there exists a class of problems that lends itself to more than one PC (program counter; it means program counter damn it) executing simultaneously in the same text and data. Personally, I prefer everything unshared unless I say otherwise, not the other way around.

    But it's pretty scary stuff for all but the most rigorous of seasoned programmers. To my mind, handing a script kiddie multithreading is like handing a six year old a loaded Uzi. That's not to say that in the hands of a trained professional, these aren't useful. But in the wrong hands, they're more like a sneaky murder-suicide device.

    It's getting a bit dated, and certainly carries its own agenda, but several years ago, John Ousterhout gave a talk on Why Threads Are A Bad Idea (for most purposes) that you might like to check out.

    If you're curious about threading in Perl, the best place to start is probably the perlthrtut manpage. Some low-level documentation is also available.

    I'll be giving a half-day talk on multitasking (both forking processes and spawning threads) in August at the Perl Conference in Monterey. I've got about 100 slides for 3 hours of talk, which should be, um, brisk. :-)

    "In short, just as the Multics mentality of careful access controls shows up throughout Unix, the cretinous CP/M mentality of uncontrolled havoc shows up in DOS and all its mutant children." --tchrist
  7. Be Not Afraid! on On Perl 5.6 · · Score: 4
    Once again, the rabble rousing has begun. For those of you who don't know me, I completely assure you that you'll never find anyone more anti-MS than me -- although many of you are at the same level. There is a FAQ that explains why your fears of MS involvement with Perl are unfounded. You could also search the perl5-porters mailing list. It's on DejaNews under the newsgroup perl.* (I forget exactly) and also has its own search archive. Search for articles by Sarathy (that's gsar) about this.

    If you were on p5p, I'm quite certain you wouldn't be joining the other Illuminati wannabes with these unsubstantiated delusions of evil conspiracies and take-overs. Please try to simmer down, and do a little research. You'll see that all is well. Or talk to one of us directly if you'd prefer.

  8. Re:parsing features on On Perl 5.6 · · Score: 2

    I think you'll find that either the Parse::RecDescent module or the Parse:Yapp module will do what you want. They're really very neat, although I've only ever spent much time reading up on the first of them.

  9. Re:When will Perl 5.6 be released? on On Perl 5.6 · · Score: 2

    You can look up information on the conference on the web. It's at the end of August in Monterey, CA.

  10. Mozilla Scriptability? on Mozilla M8 Released · · Score: 2

    Could someone who has played with it please report on what sorts of embedded scripting languages it supports? Are we still stuck with just javascript, or can we now say SCRIPT LANGUAGE=xxx for other interesting values of xxx?

  11. Re:Free /. from advertising bias! (HHOS) on Feature:News in the Slashdot Decade · · Score: 4
    I think you've brought up a valid point that deserves a bit of consideration. Remember the account from a few weeks ago in which someone wondered whether content might not become merely a vehicle for advertising?

    The question is to what extent you get in bed with advertisers. Is all money good money? Is money from Microsoft ok? What about the Tobacco Barons? What about the KKK? Where do you draw the line? Can you turn one away? Could you be sued for doing so?

    What if they want to pay you a lot of money? What if they wouldn't pay you a lot of money if your stories put a bad light on them? Remember what happened with the MSNBC reporter who was covering the MS-DOJ trial. He was fired.

    Can you survive without advertising? Is it better to do so? If going without advertising has an impact on the quality of your publication, where do you draw the line?

    Neil Postman, in his book Amusing Ourselves to Death, wrote that ``Contempt, rather than celebration, is the proper response to advertising and the system that makes it possible.'' Pervasive advertising to captive audiences has certainly gone from bad to worse in the last few years, not just in this medium but everywhere. Yet those who sip from the teat of money, especiall free spamvert money, are addicted far worse than any cocaine user ever was.

    I regret that I offer no solution.

  12. Infinite Untapped Revenue Potential on Dirty Domain Names Allowed Again · · Score: 3
    As you know, many large companies routinely buy up likely domains that are variants of their own company name.

    For example, consider the mythical corporation named `XXX, Incorporated'. Their domain of XXX.com is probably not the only one they happen to own. They often also own XXXsucks.com as well. Now suddenly they need to rush out and buy up fuckXXX.com as well.

    Now, apply this to zillions of companies, and it sure looks to me as though this is a way to generate a lot of cash quickly. In other words, a get-rich-quick scheme. :-)

  13. Re:Depends on what your program does. on Ask Slashdot: GPLed code with non-GPLed output · · Score: 2
    However, if the ONLY reason you produced a non-GPL readline() was to impede efforts to encourage freeing up code (by those who wanted to use readline() but had non-free code), then that's simply spiteful.
    I do from your writings consider you a reasonable man. I believe that reasonable men can differ here as in many places. It is possible that you and I will be such.

    I wrote it for the same reason as I perceive Richard to have written the GPL: I wanted there to be more free software in the world. Is that really so bad? Was Richard spiteful of commercial interests when he freed previously non-free code? Are we really that far apart?

    I happen to believe that having the GPL on libraries is wrong because it harms innocent people -- that libraries should at most never be more than LGPL'd. It makes no sense to me that a script that calls a GPL'd program is not itself GPL'd, but that a program that calls a GPL'd library is. This seems a false distinction. What if the script got compiled into C code someday, and things like basename were inlined? Would it suddenly become tainted?

    I have therefore provided through my functioning prototype an insight so that any who care enough about the matter for a particular library function can free that function from the GPL so that it is only under the LGPL and therefore useful once again.

    My stated position is that it's time for the FSF to issue all libraries under the LGPL alone. I have since been apprised of certain unpleasantries regarding that licence which may themselves prove problematic.

    But at least simple use of readline() is free at last.

    I enclose here my release announcement:

    GPL'd libraries infect code that links against them, but LGPL'd libraries do not. The FSF is trying to back off from the LGPL because it is non-viral, and the virus serves their nefarious purposes to restrict people's freedom. The GPL applied to libraries interferes with honest people trying to do honest work, e.g. you can't use both GNU readline and proprietary libraries from Oracle (or Sun or Microsoft, etc) in the same program with the GPL, but you can with the LGPL.

    The FSF's published position is that if there exists *only* a GPL version of a particular library function, then a program that uses that function's API is infected with the GPL. But if there exists both a GPL *and* a non-GPL version of that function, then a program that uses the function's API is *not* infected, even if it should be linked against the GPL library.

    This strange-action-at-a-distance policy, in which the incidence of infection rests upon unknown and perhaps unknowable acts of a third party who wrote neither the program nor the library, would appear fundamentally unsound, because it means that the actual contamination is indeterminable. Yet being that their position, it is also their downfall.

    What I've done is demonstrated how you can isolate GPL'd library code in a separate *program*. You then write a function with the same API that access the contaminated code in the external *program*. Programs do not infect either their callers or their callees, so your function is now safe. After all, programs that invoke emacs are not contaminated, nor are programs which emacs invokes.

    More importantly, the mere *existence* of this "condomized" function means that anyone may now link directly with the GPL'd version without becoming infected with its virus.

    And thus by this simple idea can all GPL'd libraries be freed from their vexing bonds of servitude and insidious infection, becoming instead LGPL'd ones available for unobstructed linking by anyone for anything, thereby making the world a better place.

    I encourage all to look through the code. This is the same thing as BSD's bc program does -- it's a program wrapper.
  14. Separation of Components on Ask Slashdot: GPLed code with non-GPLed output · · Score: 2
    As many have pointed out, separation of components is the way to win at this game. You can place the clean parts in a separate file, which is a good idea anyway, since data-driven programs are much more flexible.

    Or you could take the separation-of-processes approach the way BSD's bc program does. That's the same kind of approach taken by my freed version of getline().

    Then again, was there some reason you had to use the GPL?

  15. Re:Depends on what your program does. on Ask Slashdot: GPLed code with non-GPLed output · · Score: 2
    I suppose we could be clever and make the binding between application and interpreter looser (say, consider spawning an interpreter task to which one pipes commands, and from which one reads output)
    Funny you should mention that. I just posted a freed version of readline(). OK, it's not totally free, but I freed what I could; it's still LGPL'd. But at least the grim spectre of GPL'd libraries instead of simply LGPL'd ones has been put to rest.
  16. Re:Broadband will make Spam a Huge Burden on Austria Bans Spam · · Score: 2
    This is not realistic for many reasons.

    Not everyone lives by POP. In fact, I doubt whether most people do. I know I certainly do not.

    It places the burden on the individual programmer to devise his own personal solution to a pernicious and global problem. This assumes a skill level or global availability of off-the-shelf software for all possible platforms which simply does not exist.

    Your approach does nothing to relieve the burden on the mail servers. If you do not think it's the end user who will ulimately bear the burden of these costs, then you're just fooling yourself.

    I like the analogy that spam is like direct marketing through collect phone calls - the recipient always pays. It's a succinct and easily understandable statement that leads easily and directly to illegalization.

  17. Re:Broadband will make Spam a Huge Burden on Austria Bans Spam · · Score: 2
    You could just get a program that allows you to delete the mail off the server without downloading it.
    I'm wondering whether `just' does not in this context constitute a four-letter word. :-)
  18. Re:There are no virii for Unix -- or for anywhere! on DEF CON 7.0 Begins, and NYT Coverage · · Score: 0
    I find it remarkably demoralizing that a work of serious scholarship about a topic in daily use should out of spite be branded a troll by an overzealous moderator. You cannot imagine the extreme fondness with which I eagerly anticipate that day when I shall create a similar document that carefully documents the distinctions between Unix and Linux, between Hacker and Cracker, or between dynamic versus static programming languages, and watch as it too receives the mark of Cain upon is its brow.

    Next time, I suppose I should just flame rabidly rather than resort to honest scholarship so you would actually have something legitimate to whinge about. Any outside observer would certainly ascertain that these fora are principally about flaming anyway, so at least that would serve to fulfill those lowered expectation of mediocrity and strife.

  19. Re:No hacker uses vi on Storm Linux · · Score: 4
    Here's one: me.

    Here are some others: Chris Torek, Larry Wall, Eric Allman, Keith Bostic, Rob Kolstad, Margo Seltzer, Kirk McKusick.

    Happy now? We are. :-)

  20. There are no virii for Unix -- or for anywhere! on DEF CON 7.0 Begins, and NYT Coverage · · Score: 1
    interesting claims about virii on Unix
    Egads! Not this `virii' nuttiness again. Please, please, please read the viruses document before you propagate this silly notion. I honestly believe you will find the article informative and convincing.
  21. Re:BSD is dying on Storm Linux · · Score: 1
    Don't you folks get tired of the same old trolls?

    BSD is used in hundreds of commercial applications, from companies with special purpose video processing or security technology to consumer-ended companies such as Apple with their MacOS X. In fact, BSD more easily lends itself to this kind of thing in a non-trivial number of commercial environments than does Linux. You may not like this, but that's the way it is.

    Repeating an untruth has no effect on its veracity.

  22. Re:Worse than UNIX fragmentation on Storm Linux · · Score: 2
    That's what you get with an OS that has no central design and no vision.
    This reminds me of a passage I once read by Waldo with regard to C++:
    What seems to have been lost over the years [...] is the common understanding of what the design center of the language is. While it is clear that the original design center as enunciated by [its creator] is no longer sufficient to guide the development of the language, there has been no discussion of a replacement for that design center. Indeed, it is not at all clear that the current community of users is even in agreement about what the language ought to be capable of doing and, perhaps more important, what it should not attempt to do.

    The lack of a clearly articulated, generally accepted design center for the language has resulted in a lack of a set of principles that can be used to judge the direction of language change. The danger is that the language will attempt to become something that does everything, with the result that it will do nothing well.

    In his book Wonderful Life, Stephen Gould argues that one should not confuse biological evolution with progress. The forces that shape the survival of one species over another, Gould points out, are far more random than what is required to allow one to claim that species for recently evolved are in any way more advanced or superior to those from which they evolved.

    Without a clear design center than can be used to determine a notion of progress in the evolution of a language, the changes that have been made [...] take on many of the aspects of biological evolution. The language has been used able to adapt itself to the changing environment of the increasing number of users. But with no goal for the language, the evolution of the language can only be seen as change, not progress towards that goal.

    It seems applicable to what your querulous remark was speaking of.
  23. Re:A Challenge for Tom on White Camel Award Nominations · · Score: 2
    But the "timeout" function I created above can also accept normal functions. As mentioned earlier, I did have a version that didn't use a separate class.
    "Normal functions" aren't good enough. When I pass in sub { $line = readline(*STDIN) } that's a closure. It find the version of $line which is currently in scope. You know, a lambda that actually works right, because it has correct scope? Python can't do that, because its idea of scope is not rich enough. Lisp, Scheme, and Perl can all do it. There is no end of gross workarounds for not having closures, but such they remain. You cannot compare simple wrapping a bit of sub{} around something to all that OO bull. It's just not the same. At all. I'm disappointed that you seem to pretend that it is.
    I notice you completely ignored my other points. I'll assume that means you couldn't think of any way to refute them.
    Bah. I don't have infinite time. You can't bait me into playing that game. And I despise the web as a conversation forum. Get thee to a newsgroup so I can use a real newsreader and a real editor, damn it. I'm tired of cutting and pasting from vi into lynx or netscrape. And I hate writing in HTML, but if I don't, it looks like shit.
    I also find it amusing that you said you were going to give me the last word,
    I said if you planned on simply being a flamer.
    That depends on what you consider to be correct. I could just as easily say that it shows Perl is incapable of doing correct runtime bounds-checking. You seem to think that "however Perl does it is the right way".
    It's all part of the "do-what-I-mean" philosophy; or, if you would, the automatic memory management philosophy. If I want to assign to a variable and there's something already there, I expect what was used to be there to get recycled properly. If I want to assign to a variable and there's nothing there yet, I expect the system to allocate space for me. In Python, I can't do the simple equivalent to:
    my @list;
    $list[$place] = some_value();
    This goes against the principle of least surprise. Why do I have to presize arrays (`lists')? I don't have to do so with strings! That's part of the beauty of implicit memory management. It drives me nuts. Why can I do this:
    a = {}
    a["fred"] = "barney"
    but I can't do this
    a = []
    a[23] = "barney"
    It just doesn't make sense. It's a pain in the butt.

    And I don't see why you allocate hashes (`dictionaries') with braces and dereference them with brackets. The queer thing is that this:

    a = {}
    a["fred"] = "barney"
    a[23] = "barney"
  24. Re:you've lost me with your loose talk on Feature: On Being Proprietary · · Score: 2
    It has been my observation that not only do the overwhelming majority of Internet posters in both this forum and nearly every other one you are apt to come across find themselves miserably incapable of spelling even the most common of words with the accuracy expected of your average fifth grader, they are also hard put to compose a sentence that uses words with anything longer than two or perhaps three syllables and nine or ten characters, whichever comes first. But this already sordid state of affairs does not begin to reveal the deplorable state of their linguistic destitution. Few and far between are those writers today whose video-game-addled attention spans permit them to compose or even to assimilate sentences containing more than one independent clause, let alone to weave together several varied devices into one larger, coherent construct. Although it is almost embarrassingly easy to notice and decry their pathetically clumsy stabs at rigorous orthography, that particular failing is but a venial sin that pales in comparison before the far more perilous problem so clearly indicated by their complete ineptitude when it comes time to logically develop and carefully enunciate a thought of any depth or complexity--in a sense, to think with deep breaths and to set these thoughts down in well-formed writing.

    I recommend to you Amusing Ourselves To Death, by Neil Postman.

  25. Re:A Challenge for Tom on White Camel Award Nominations · · Score: 2
    Congratulations -- you failed twice, as I knew you would.

    You failed with the closure example because you were forced to create a whole new class just to pass a bit of code in, for God's sake. Do you really have no understanding of what lexical scoping is about, or did you just want to avoid admitting that Python is fundamentally incapable of coping with treating functions as first class citizens? That was the ugliest, least readable, most cumbersome hack I can imagine. What if you had 100 different callbacks, each of which did different things and which played with different lexically scoped variables from different scopes? Don't you see how your solution is an crufty hack, and no real solution at all? You failed.

    As for the second example, I was showing you that Python is incapable of doing correct allocation on demand. Instead, you were forced to do all the dirty work the way you do it in some low-level language. Memory management is too important a task to leave up to the programmer, and too tedious a one as well. Once again, you try to present this design flaw as a feature. I'm sorry, but you're wrong.