Slashdot Mirror


User: pjrc

pjrc's activity in the archive.

Stories
0
Comments
1,197
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 1,197

  1. Re:What's the alternative to banners? on The Ultimate Destination of Banner Ads · · Score: 2
    If you're a guy with a website that you want to see grow by having more bandwidth and disk space without having a corporate sponsor who's willing to pay for it, the only way is banner ads.

    I have a little web site, which was started about 6 years ago, that's mostly free resources for electronics projects, programming firmware, and similar technical subjects. For almost 4 years, it was hosted at a university web site, which cost me nothing, but 2 years ago they were no longer willing to host it, and I had to start paying. The site runs on it's own local-to-us server (not virtual hosted), so it's not exactly cheap to run, but I really need that local access to expend the creative energy to author reasonable web pages.

    Well, over the years people have sent emails from time to time, asking where to get some of the parts and materials shown on the pages. A couple years ago, shortly before moving the site, a friend-of-a-friend agreed to offer a couple of parts from his site, which had other e-commerce going on. Their price was much too high and their service wasn't so good. They eventually sold the boards they had paid to get made, and I decided to set up shop myself.

    Robin (girlfriend, partner, accountant) tells me that we've actually made a tiny profit, after having paid for the site hosting and all the other expenses. Of course, that tiny profit is based on working for free, but hey, I did that before.

    Now I'll agree that this model can't work for a lot of sites, like news sites, but it is sort-of working for us. The point is that banner adds are not the only way. My site has never carried a banner ad, and probably never will. Maybe someday we'll even make enough money that I can work on producing new material full time instead of just doing it on-the-side. As it is, I'm pretty damn excited that it's managing to cover the expenses, which I had been paying out-of-pocket !!

    If you're interested in the site, here's a link.

  2. Re:Hehhehe on The Ultimate Destination of Banner Ads · · Score: 2
    To add something that'll appear like

    <sarcasm> links to own site </sarcasm>

    into your post, you need to actually type it like this:

    &lt;sarcasm&gt; links to own site &lt;/sarcasm&gt;

    ... and use that preview button!

  3. Re:Even better.. on The Ultimate Destination of Banner Ads · · Score: 2
    Now that's a troll...

    I've seen this bug from time to time using Netscape in linux. I had created a web page a few years ago that produced this effect, but I fixed it after a few people complained.

    It's likely the Netscape, well know for shoddy 4.x browsers, is at fault and not BSD.

  4. According to Katz on Second Thoughts: Microsoft on Trial · · Score: 2
    Katz claims:
    Microsoft's gargantuan and controversial presence ... was also instrumental in spawning Open Source, Free Software...

    Ok, some minor editing where the "..." appears, but Katz really does say that above.

    I believe it's a well known fact that RMS started the Free Software movement in 1984, when Microsoft's size was anything but "gargantuan". It's true that Stallman's goals were a response to proprietary software licensing restrictions, but Microsoft wasn't a significant player back then.

    The concept of Open Source was born just a few years ago, but the only thing "instrumental in spawning" open source was a common negative reaction to Stallman's rhetoric. The goal was to bring the software to a larger audience, which had previously been turned off to the concept.

    Are Stallman's tactics a failure? Does open source undermine the ultimate goals behind almost two decades of RMS and the FSF's hard work? Is it "ok" to say Linux without prepending a "GNU/" to it? Those are tough questions to answer.

    Was Microsoft's monopoly "instrumental in spawning" either Free or Open Source Software? That's an easy one to answer, and as usual, Katz rambles on and ends up saying things that are obviously wrong.

  5. Re:This is only half right on Copyright.net Springs Into Action · · Score: 2
    ... unwarrented search and seizures might apply here. Even if you can search a person's hard-drive wihtout the users permission or a warrent

    But they're not searching user's hard drives, they're searching a publically visible list of file names. They can even download some or all of the files, as the user is offering them for public downloading by sharing them.

    It's like claiming someone would need a search warrant to read my public web pages. How silly is that?

    does that mean you can use it as evidence against someone?

    Court cases can introduce evidence which was publically published material. There's no rule that says evidence need be obtained with a warrant for search, only evidence collected by searching private property requires warrant. There are rules of the way evidence must be handled, to be admissible in court. Of course, there is no court case in this example.

    And even better - does that mean a legal agency can enforce laws (IE banning you off your ISP or disconnecting your phone or whatever). Personally I don't think so.

    They're not enforcing a law and charging you with a crime. They're requesting that Napster remove your account. Napster's service agreement states that Napster may terminate your account if they believe you have violated the terms of the agreement, which includes not distributing copyrighted material. Most ISPs have similar terms and conditions in their terms of service, which you agree to when you sign up.

    Law enforcement and due process don't enter into it. Nobody is being charged with a crime... Napster is just excersizing their rights as spelled out in the service agreement. The agreement allows Napster to make the determination at their sole discression. Due process isn't part of the agreement between Napster and its users. Most ISPs allow themselves sole discression as well. In the case of an ISP, where you pay real money, there is the question of wether you are due a refund for any unused time that you're already paid for. In the case of Napster, you paid nothing.

    On the other side I'm kinda hoping that ... forces napster to filter out "illegal" mp3's - because then it will be a boon to the vastly under-rated unsigned artist community

    If it helps unsigned artists remains to be seen, but I hope it will.

  6. Re:Just admit you're breaking the law on Copyright.net Springs Into Action · · Score: 2

    There's no need for due process to cancel a Napster account. Napster can cancel anyone's account at their discresion. Since Napster accounts are free, there's not any sort of obligation on their part, as you might expect had you paid.

  7. free market economy on Rebooting The World? · · Score: 2

    Assuming that the hypothetical event that causes all electonic devices to vanish doens't also cause the world's monetary systems to fail, there will be no shortage of invertors and entreprenuers who will rapidly apply all the existing knowledge and know-how to recreate computers and electronic products. In all likelyhood, everything would be re-built in a very similar manner, as there would be tremendous pressure to get products back onto the market as quickly as possible.

  8. Animation on Making Banner Ads Suck Less · · Score: 2
    I patched my copy of netscape to never loop animation (see this page for info about it, or email me if you'd like some code to do it in linux). Any animated image I download runs its animation only once and then sits still on its last frame. This makes reading material on the web so much nicer that I wonder how I ever surfed without the patch... kinda like trying to remember leftovers before the days of microwave ovens (for those of us who're a bit older at least).

    If you're going to have user prefs, consider having a choice for:

    • Send me normal animation
    • Send me loop once and stop animation
    • Send me only 1 frame, never animate anything
    Of course, everyone will want the third option, but perhaps you can offer it as a reward for having taken a moment to specify a few categories of products they'd be more interested in seeing. Having the ability to shut off animation, which is less distracting and would load faster, if it were very easy and didn't require providing any personal info, might really attract people's interest in your prefs page.

    The most important problem you'll have is trust. You have very little being an advertiser. I'm sure your clients will want you to collect email addresses and other info. If you ask for any info at all, I'd be suprised if anyone would use it. Even assigning a username/password won't work... you'll have to store a cookie and log their IP number on every access to see if they have a static IP (and if anyone else shares that same IP). Even then, cookies aren't so reliable for a long term storage, as so many sites assign them for such a long time, and I'd expect a user's reaction to having their settings lost would be somewhere between "their site is flakey" to "those bastards intentionally wiped away my no-animation setting, gawd damnit!"

    In any case, it certainly is an interesting idea and I hope you give it a try and resist the temptation to ask for any personal info such as email addresses.

    One last idea would be to give optional micropayments a try. Perhaps you could have a page where the user pays some dollar figure of their choice, perhaps from a short list like $5, $10, $25, and they get a credit towards completely banner free surfing (at least on the sites you control), with a tiny fraction of a cent deducted from their account for each non-impression. Personally, I think micropayments don't have much chance, but if they're ever going to work, at least on top of the existing transaction services (credit cards), the model will probably end up being "pre-pay several dollars, and have tiny portions of a cent deducted automatically", of course with an e-mail generated automatically when the accound gets low and needs a "recharge".

    Wow, did I just sound like I think micropayments might be a good idea? Interesting, yes, but I'll be amazed if anyone can really make it work.

  9. Re:Stockpiling on CPRM Smokescreen · · Score: 2
    for damn sure once they've corrupted the HD's they will go after motherboards to make sure they don't work with anything but their bullshit.

    If there really were a conspiracy here, the changes you're anticipating would be in the BIOS, and for systems like Linux, they'd only be effective during startup. They'd have to go after projects like FreeBIOS (perhaps as anti-circumvention devices?)

    But this all assumes that there really is a conspiracy going on in "a smoke-filled room". What, other than the sensational and very biased writing of John Gilmore, would lead you to believe that? It's a story on slashdot, so it must be true!! John says it's a plot against consumers and fair use (and uses sensational language to describe the conspirators) so it must be true.

    Please re-read John's message once more (with a grain of salt this time), and try to find some shred of evidence that this is a conspiracy to add copy control functions. The only words that come close are:

    If they really wanted to support arbitrary "generic" functionality, they should design something that would handle more than a single custom function per disk drive.

    This is John Gilmore's opinion. If you read the proposal below, you'll see it's wrong. I think anyone reasonably familiar with the ATA spec would come to the same conclusion. (I have implemented an open-source MP3 player with an embedded processor, in assembly language, that accesses drives using the ATA commands... link to the website above) That conclusion is that John's opinion is as accurate as staring right at the sun on a bright and sunny day and claiming it seems dark outside. The proposal sets aside 8 command codes, so a drive manufacturer could easily implement at least 8 custom functions per drive, and many more if they implement sub-functions, as the "Set Features" command that's already in the ATA spec does.

    John Gilmore's "single custom function" clearly doesn't agree with the attached proposal, which ought to at least draw the rest of his writing into a bit of suspicion as to it's accuracy. In fact, the only evidence he presents that this is indeed a conspiracy is that the proposal isn't well suited to provide generic custom functions (and thereforrrrr... a witch, er... an underhanded conspiracy to embed copy control functions). In fact, it is well suited to provide several custom functions per drive.

    The committee chair asking "why are we doing this?" is a valid question, and it is indeed unwise to write a blank check (at least in the interest of interoperability)... but if there really were some evidence of a conspiracy here, don't you think John could find some more interesting words to quote? In fact, the standards process is to evaluate proposals like this one, both for technical merit and that they are well thought out to make ATA-interface products interoperable.

    Now I like a good conspiracy theory, but this just ain't one. You see, a conspiracy theory needs some shred of evidence (even circumstantial). This conspiracy theory lacks any evidence, and the claimed fact that the proposal was not a good way to introduce generic functions is clearly wrong, which only serves to take this entire fiasco out of the realms of "intriguing conspiracy theory" and into "biased sensational propoganda".

    Like or (more likely) hate the MPAA and RIAA, please re-read John Gilmore's writing once more, and if there really is even one reason presented (other than John's suspicion and biased opinion) to believe that this really is a conspiracy, please post it.

    And finally, I apologize, as this is my second slashdot posting today, both in this thread. I'm trying to cut back...

  10. Looks pretty generic to me on CPRM Smokescreen · · Score: 4
    John Gilmore writes:
    If they really wanted to support arbitrary "generic" functionality, they should design something that would handle more than a single custom function per disk drive.

    The message is a bit sensational, but I just don't understand where he gets the "single custom function", when in fact the proposal sets aside 8 of the 1-byte command codes, and whatever functionality the manufacturer would introduce under a particular code could easily access many custom functions, along the lines of the "Set Features" command (code 0xEF in my copy of ATA-3).

    Intuitively it does seem like a bad idea to set aside a block of 8 command codes (of the 256 possible) and a group of 8 bytes from the 512 byte device ID data, with no functionality specified.

    Besides, there's already plenty of "vendor specific" appearing in the ATA spec. For example, the "Download Microcode" (code 0x92) is a blank slate. So is "Format Track" (code 0x50). The device ID has several "vendor specific" bytes, but they're mostly obsolete data.

    It would be tricky and a bit risky to build copy protection (or some other vendor's feature) on top of these things, some existing (perhaps old) applications use those ID bytes. Some software may generate those requests (eg Format Track), so the drive would need to be "smart" and not actually format tracks when the parameters (all vendor specific, not defined by the ATA spec) indicate a copy control operation. Of course, the software would also need to be "smart" and check the device ID data to make sure the drive really has the copy control features built onto a command like Format Track, as legacy drives might actually do something a little less desirable with that command (the RIAA would probably be pleased, as a pirate would lose his copy, and a legit consumer would have to pay again!)

    I'm sure this slashdot story will get a lot of folks rilled up... but before you go leaping to conclusions, ask yourself what evidence is actually presented to establish that this is really a conspiracy? Not much... the only words I could find were that this proposal was ill-conceived to provide generic functionality (the "single custom function" comment), when in fact it appears to be a very reasonable way for a vendor to implement lots of custom functions, up to eight if each command is assigned a single function.

    I'll agree that the generic custom functionality concept is a flawed idea, but this proposal is a reasonably well thought-out way to do it. Perhaps there is/was a conspiracy brewing, but it'd be nice to have some actual evidence of that before jumping to the conclusing and passing (mental) judgement on whoever made the proposal.

    Indeed that's what standards are all about, discussing and accepting or rejecting proposals based on the combined wisdom of the participants in the process. That looks like what happened here.

  11. 13 years ago.... on Computer Science vs. Computer Engineering? · · Score: 2
    When I started at Oregon State University in 1988, the "Computer Engineering" degree was relatively new, at least at OSU. I had been interested in programming and electronics for many years, and at an orientation I originally mentioned "computer science". I did quite a bit of hardware hacking in my last year of high school, mostly connecting stuff to my homebuilt Apple2 (hey, it was a mainstream system back then). I was a bit bored with only programming and hardware seemed much more creative, so I changed to "Computer Engineering". I later switched to Electrical Engineering, mostly because the CS department at OSU had a three-year run of TAs they hired who couldn't speak english (accent so heavy it was like listening to the teacher in Peanuts!)

    At least in 1988 to 1992, the difference between computer engineering and electrical engineering was a small handful of classes. CpE required about 6 classes in algorithms and other programming related topics, which replaced EE classes about machines/motors, transmission lines (all the wierd stuff that happens when you don't terminate a cable, like forgetting that 50 ohm resistor on 10BaseT), and a couple more more advanced math classes. Other than switching this small handful of classes, there really weren't any differences between CpE and traditional EE. In the final year of EE, there is some choice about what classes to take, such as control/feedback, communication theory (math), analog electronics, high power systems/circuits, computer/digital architecture, and microcontroller-based design. If you went the CpE route, you'd take the courses in these last two groups.

  12. Re:I'm for it on Banner Ads Could Soon Be Bigger · · Score: 2
    jimhill rightly states:
    Reading a web page nowadays is not unlike being in a Vegas casino. The effort required to concentrate on the purpose of your visit ... in the face of things that move and flash and beep quickly makes the entire experience a headache-inducing grind.
    There is a simple hack to stop animation in all version of netscape. It probably also works in MSIE. It involves patching the binary so that the browser believes the animated gif should play only once and then stop. I patched my netscape binary months ago, and it's really nice.

    I'll attach some code you you. Refer to the URL in the comment for info about how it works. I believe there's a windoze version you can download somewhere, if you're stuck with a microsoft system.


    /* patch the netscape binary to overwrite "NETSCAPE2.0"
    * and "ANIMEXTS1.0" with different strings, so that
    * netscape will be tricked into thinking all animated
    * gifs are not to be looped. This is nice, since those
    * annoying ads will play once and then stop.
    *
    * For more info, see this page:
    * http://simmons.starkville.ms.us/tips/081097/
    */

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <sys/stat.h>

    #define NETSCAPE "/usr/lib/netscape/netscape-communicator"
    // #define NETSCAPE "/usr/lib/netscape/netscape-navigator"

    #define STR1 "NETSCAPE2.0"
    #define STR2 "ANIMEXTS1.0"

    const unsigned char *memstr(const char *haystack, const char *needle, int size);

    int main(int argc, char **argv)
    {
    int fd, r, pos;
    struct stat nsstat;
    unsigned char *buf, *p;

    r = stat(NETSCAPE, &nsstat);
    if (r != 0) {
    fprintf(stderr, "File %s doesn't exist\n", NETSCAPE);
    exit(1);
    }

    buf = (unsigned char *)malloc(nsstat.st_size);
    if (buf == NULL) {
    fprintf(stderr, "Unable to allocate %ld bytes of memory\n",
    (long)nsstat.st_size);
    exit(1);
    }

    fd = open(NETSCAPE, O_RDWR);
    if (fd < 0) {
    fprintf(stderr, "Unable to open %s for read/write access\n",
    NETSCAPE);
    exit(1);
    }

    r = read(fd, buf, nsstat.st_size);
    if (r != nsstat.st_size) {
    fprintf(stderr, "Unable to read %ld bytes from %s\n",
    (long)nsstat.st_size, NETSCAPE);
    exit(1);
    }


    p = (unsigned char *)memstr(buf, STR1, nsstat.st_size);
    if (p == NULL) {
    fprintf(stderr, "Didn't find string \"%s\" within %s\n",
    STR1, NETSCAPE);
    exit(1);
    }
    pos = (int)(p - buf);
    r = lseek(fd, pos, SEEK_SET);
    if (r != pos) {
    fprintf(stderr, "Unable to seek to offset=%d within %s\n",
    pos, NETSCAPE);
    exit(1);
    }
    r = write(fd, "NO_ANIM_GIF", strlen(STR1));
    if (r != strlen(STR1)) {
    fprintf(stderr, "Error writing to %s at offset %d\n",
    NETSCAPE, pos);
    exit(1);
    }


    p = (unsigned char *)memstr(buf, STR2, nsstat.st_size);
    if (p == NULL) {
    fprintf(stderr, "Didn't find string \"%s\" within %s\n",
    STR2, NETSCAPE);
    exit(1);
    }
    pos = (int)(p - buf);
    r = lseek(fd, pos, SEEK_SET);
    if (r != pos) {
    fprintf(stderr, "Unable to seek to offset=%d within %s\n",
    pos, NETSCAPE);
    exit(1);
    }
    r = write(fd, "NO_ANIM_GIF", strlen(STR1));
    if (r != strlen(STR1)) {
    fprintf(stderr, "Error writing to %s at offset %d\n",
    NETSCAPE, pos);
    exit(1);
    }

    close(fd);

    return 0;
    }

    const unsigned char *memstr(const char *haystack, const char *needle, int size)
    {
    const char *p;
    int len;

    len = strlen(needle);

    while (size > 0) {
    p = memchr(haystack, *needle, size);
    if (p == NULL) return NULL;

    size -= (int)(p - haystack);
    if (size >= len && memcmp(p, needle, len) == 0) {
    return p;
    }
    p++;
    haystack = p;
    }
    return NULL;
    }

  13. Modem latency on The Modem Lives On · · Score: 2
    The sad fact is that modems have high latency.

    The the risk of sounding like a troll... asking everyone else to accomidate your 150 ms ping time is essentially asking the world to "dumb down" for you.

    It's really amazing how well on-line action games work. Game developers have done a pretty amazing job of making the most out of these high latency connections.

  14. Re:Two words: strong encryption on The Future of Copy Control · · Score: 4
    The moral to the story? Use strong encryption on *everything*. Hell, Napster could fsck over lots of its enemies simply by integrating strong encryption into its client.

    Yeah, that's a great plan. Post encypted material to Napster and Usenet newsgroups, so everyone in the world can download it and not use it.

    Oh wait, even better, include the encryption algorithm in the client software, which is readily available to anyone. That'll "fsck over" CCS really well when they just use the same client software that everyone else is using.

    And even more clue-challenged:

    All the cooperation from backbone providers et al won't do them a damn bit of good if they can't tell what's being passed thru them.

    This is what's called a fundamental lack of understanding. Dave Powell and his cronies call the upstream provider when the local ISP doesn't cooperate. The upstream provider doesn't know what's being transfered, Dave/CCS tells them and present compelling evidence they've collected. According to the article, they build a relationship with top-tier providers after a while, and at that point they just make a phone call and get their requests "rubber stamped". The top-tier provider probably never looks at a single byte of the alleged infringing data. So it does not matter if the data is encrypted as it passes through the backbone and upstream providers.

    Again, refering to the article, what might be effective is writing to upstream providers and telling them you or people you know have been unfairly accused. Perhaps you'd accuse Dave Powell of fabricating evidence (if you're a pirate, you're probably not above lying, though it may not actually be untrue). You'd certainly point out that Dave's never brought a single case to trial; that's never, even once, actually proven that someone was guilty of copyright violation. You'd claim that Dave Powell has a monetary interest in removing people he targets, and has no committment to justice, fairnesss or ethical practice. You'd claim (probably correctly) that Dave gets his "bounty hunter" payment by shutting down a pirate, and if he nails a dozen unsuspecting innocent bystanders he still gets his money. You'd probably try to collect horror stories about Dave Powell, with contact names of people he's had kicked off DSL/cable, who would probably be happy to write "Dave screwed me" letters also.

    The idea is FUD. You'd want to instill Fear, Uncertainty, and Doubt in the hearts and minds of your ISP and their upstream service providers as to the accuracy, accountability and legitimacy of Dave Powell's requests. If you're going to battle a guy like this, you want to convince ISPs (or at least make them suspect) that Dave Powell/CCS is a dishonest money-chasing bounty hunter and that they indiscriminately accuse people without much cause, because it turns a profit.

  15. Re:Lame Ain't Legal Either on Napster Offers $1B For Music-Swapping Rights · · Score: 2

    I was under the impression that MP3 used a polyphase filter bank, a modified discrete cosine transform. a non-linear scaling, grouping the spectra into three regions ("big" numbers, ± 1, zeros), a couple stereo encoding methods, lots of scale factors and bit mish-mashing, and adaptive huffman coding, but not a Fourier transform. Of course, the MDCT is half of a DFT/FFT. Maybe I missed the Fourier part ??

  16. Re:I'm a religious person on What Will Human Cloning Mean For Humanity? · · Score: 2

    There's a very strong possibility that the sum of the substance of each person's existance is only their physical implemenation. Soul, Spirit and similar concepts may be just romantic notions or wishful thinking. There's little reason to believe that there are extra-worldly beings (invisible friend who always loves you no matter what a fuck-up you are, named Jesus). The concept of life after death, much like the typical spam emails I receive, sounds much too good to be true. Equally unlikely is that it comes in only two extreem flavors.

  17. Anonymous Access Drives Napster's Sharing on More Napster Than You Can Shake A Copy-Protected MP3 At · · Score: 3
    The big problem I see with these changes is that Naspter lives on the (seemingly) anonymous nature of the access. You "sign up" by providing virtually no information about yourself. Sure, we tech-savvy geeks know that all the packets have a unique IP number, and the Napster client is closed source and could be doing literally anything behind the scenes, but...

    To ordinary users, approx 50 million of them, Napster feels like it's almost completely anonymous. You make up a fake name and provide virtually no identifying information. Feeling like nobody knows who you are, it's pretty easy to stick those CD into the drive and rip them into MP3s, or at least share the MP3 files already downloaded.

    When payment is required, all the comforting anonimity goes away. You'll have to send money, probably with your credit card. You'll almost certainly have to provide your address, since they'll want to do address verification. Now they know who a particular user is. Even if they are able to know user's true identity today, to the millions of Napster users with files in their share folder, it "feels" like nobody can tell who you are. It feels like the worst that could happen by sharing that Metallica song is getting your (free and anonymous) account terminated, and you'd just sign up for another one. It "feels" like nobody could ever trace it back to you and threaten you with legal action. To the millions of Napster users today, it feel like it's completely impossible for the cops/lawyers to ever know it was you. It seems completely free of any risk of ever getting "caught".

    It's hard to imagine that such a large number of people will rip CDs or share files that they know are copyrighted, when they've provided their name, home address, credit card number, and maybe even their phone number. My prediction is that the loss of the comfortable anonymous atmosphere will be the death of Napster, not the money itself or annoying copy restrictions. Those just won't matter if the service lacks the right atmosphere that appeals to the sharing (aka pirating) mentalitiy, and that critical atmosphere is (seemingly) anonymous access.

  18. One more reasons to disable javascript on Web Standards Project: Upgrade, Or Miss Out · · Score: 2
    I already leave javascript off most of the time, due to obnoxious sites like geocities poping up windows and making other javascript abuses. This will be just one more abuse of javascript that adds one more reason not to enable it.

    As a user, when I click on a link, I'm putting some small amount of trust in the author of that page to actually is valuable information that really is what the link's text described. There are several flavors of this (listed roughly in order of annoyance):

    • Some other place than what was described. I'll probably be a bit more cautious of following the author's links, if I return at all. If the author's site's value was mostly due to having lots of links to other sources, I'll probably look elsewhere for a more reliable author/page. This is exactly what the WaSP javascript redirector will do... in addition to the site turning away its visitors, it'll also ever-so-slightly undermine the credibility of any other site that linked to one if its "you're not cool enough to enter with that old browser".
    • Registration required site (New York Times), if the link didn't warn me about the registration, I'll slightly annoyed, though mostly at the site that wants my marketing info.
    • 404 Not Found. I'll immediately feel like the author isn't keeping his site up to date.
    • A redirect where my back button stops working. In this case, I'm mad. Does the WaSP redirect do this? If so, they'd probably tell me to upgrade to a newer browser.
    • Someplace that launches popups. This isn't the author of the link's fault, it's almost certainly the new site doing it.
    • goatse.cx... gawd damnit, I fell for it again.
  19. Re:MS will exploit IE, and that will push users aw on Eight Tenths Of A Lizard · · Score: 2
    "pb" asks:
    For instance, why can't I find a button to turn off animated gifs, cookies, and JavaScript?
    Because you've not tried "Edit - Preferences - Advanced", which has been available in netscape 4.x to disable cookies and javascript for years now.

    Turning off animated gifs, true, there hasn't been a menu option for it. But, you can patch your netscape (any version) to play animations only once and then stop. I'll attach a little bit of C code I wrote that does the job for you.p

    Still, it is nice to see the Mozilla guys including a preference to disable animation. Saddly, it seems that many users will never "find" it, judging from the post above.


    /* patch the netscape binary to overwrite "NETSCAPE2.0"
    * and "ANIMEXTS1.0" with different strings, so that
    * netscape will be tricked into thinking all animated
    * gifs are not to be looped. This is nice, since those
    * annoying ads will play once and then stop.
    *
    * For more info, see this page:
    * http://simmons.starkville.ms.us/tips/081097/
    */

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <sys/stat.h>

    #define NETSCAPE "/usr/lib/netscape/netscape-communicator"
    // #define NETSCAPE "/usr/lib/netscape/netscape-navigator"

    #define STR1 "NETSCAPE2.0"
    #define STR2 "ANIMEXTS1.0"

    const unsigned char *memstr(const char *haystack, const char *needle, int size);

    int main(int argc, char **argv)
    {
    int fd, r, pos;
    struct stat nsstat;
    unsigned char *buf, *p;

    r = stat(NETSCAPE, &nsstat);
    if (r != 0) {
    fprintf(stderr, "File %s doesn't exist\n", NETSCAPE);
    exit(1);
    }

    buf = (unsigned char *)malloc(nsstat.st_size);
    if (buf == NULL) {
    fprintf(stderr, "Unable to allocate %ld bytes of memory\n",
    (long)nsstat.st_size);
    exit(1);
    }

    fd = open(NETSCAPE, O_RDWR);
    if (fd < 0) {
    fprintf(stderr, "Unable to open %s for read/write access\n",
    NETSCAPE);
    exit(1);
    }

    r = read(fd, buf, nsstat.st_size);
    if (r != nsstat.st_size) {
    fprintf(stderr, "Unable to read %ld bytes from %s\n",
    (long)nsstat.st_size, NETSCAPE);
    exit(1);
    }


    p = (unsigned char *)memstr(buf, STR1, nsstat.st_size);
    if (p == NULL) {
    fprintf(stderr, "Didn't find string \"%s\" within %s\n",
    STR1, NETSCAPE);
    exit(1);
    }
    pos = (int)(p - buf);
    r = lseek(fd, pos, SEEK_SET);
    if (r != pos) {
    fprintf(stderr, "Unable to seek to offset=%d within %s\n",
    pos, NETSCAPE);
    exit(1);
    }
    r = write(fd, "NO_ANIM_GIF", strlen(STR1));
    if (r != strlen(STR1)) {
    fprintf(stderr, "Error writing to %s at offset %d\n",
    NETSCAPE, pos);
    exit(1);
    }


    p = (unsigned char *)memstr(buf, STR2, nsstat.st_size);
    if (p == NULL) {
    fprintf(stderr, "Didn't find string \"%s\" within %s\n",
    STR2, NETSCAPE);
    exit(1);
    }
    pos = (int)(p - buf);
    r = lseek(fd, pos, SEEK_SET);
    if (r != pos) {
    fprintf(stderr, "Unable to seek to offset=%d within %s\n",
    pos, NETSCAPE);
    exit(1);
    }
    r = write(fd, "NO_ANIM_GIF", strlen(STR1));
    if (r != strlen(STR1)) {
    fprintf(stderr, "Error writing to %s at offset %d\n",
    NETSCAPE, pos);
    exit(1);
    }

    close(fd);

    return 0;
    }



    const unsigned char *memstr(const char *haystack, const char *needle, int size)
    {
    const char *p;
    int len;

    len = strlen(needle);

    while (size > 0) {
    p = memchr(haystack, *needle, size);
    if (p == NULL) return NULL;

    size -= (int)(p - haystack);
    if (size >= len && memcmp(p, needle, len) == 0) {
    return p;
    }
    p++;
    haystack = p;
    }
    return NULL;
    }


  20. Re:Smokey back room education on MS Wants To Outlaw Open Source: "Threatens" the "American Way" · · Score: 3
    Ralph writes:
    Why do I picture an MS executive alone in the office of some commitee chairman, with checkbook in hand, saying "How much education do you think you'll need to outlaw open source software?" To which the Congressman replied,
    "How about Active-Update® exclusive premium placement on all Windows® desktops throughout the election season?"
  21. Re:In some ways, it does on MS Wants To Outlaw Open Source: "Threatens" the "American Way" · · Score: 2
    I don't think that it's a coincidence that the US, with it's many large corporations also has one of the highest stardards of living on the planet.

    Last time I checked, we were one of the last nations to offer health care to everyone. Great standard of living, if you're among the wealthy half of the population.

  22. Re:Let try and decide on SSH Claims Trademark Infringement by OpenSSH · · Score: 2
    Secure Host to Host (SHH).

    That's a damn good idea!

  23. Re:Right! on SSH Claims Trademark Infringement by OpenSSH · · Score: 2
    In fact, this is exactly equivalent to the GIF trick, because he's waited until the OpenSSH name is well established before acting.
    Unisys obtained a patent, something very different from a trademark, and then demanded that all software using the LZW algorithm either pay outragous licensing fees or remove the code and not use the algorithm at all. They then contacted users of software containing LZW (major websites with GIF images) and demanded that the users pay licensing fees as well.

    That's a lot different from claiming that his customers aren't savvy enough to tell OpenSSH apart from his product, and simple ask that the name be changed. He's not telling anyone that they can't use the algorithm (though he does advise against it, for what sounds like solid reasons) He's not demanding that anyone pay royalties, which are the things Unisys did with GIF. He's only asking for a name change.

  24. Specs on The Silent Kernel Platform War? · · Score: 1
    The article says:
    As a result, when you turn the drive on and off regularly, it should last much longer and wear less, according to Maxtor. The company rates the drive for at least 50,000 on/off cycles with a component design life of at least five years.
    Is that really good? this IBM 37 gig drive, for example, as a "Contact start stop (at 40 C)" spec of 40000. Maybe I just got lucky, so let's try another samplem this time at seagate.... hmm, not a lot of 5400 rpm drives, let's give try this one, ST340823A , which features "3-D Defense System, Protects users' data, increases reliability and eases handling" (whatever that means). The specs are on a PDF file, which says 50000 "Contact Start-Stops".

    Maybe I just got lucky, picking a couple drives at random from these sites? Maybe a "Contact Start Stop" is different from Maxtor's new 50000 "on/off cycles" ??

    I tried to look up the similar spec for my little Hitachi DK23AA-12 laptop drive, which I've abused in so many ways while working my my little homebrew mp3 player (ok, shameless plug)... but Hitachi doesn't seem to have a spec about the number of times you can start/stop the drive. Just for one last try, I pulled up one of IBM's laptop drives, the Travelstart 20GN (page also covers larger models), and they have a spec of 300000 "Load/unload cycles". I wonder if a "load/unload cycle" is similar to a "contact start stop".

    Sometimes I wonder if hard drive specs (other than formatted capacity) really mean much anyways.

  25. Re:This is not good news for Napster on Napster's Execution Stayed; Not Fair Use · · Score: 2
    theancient1 ponders...
    I wonder what would happen if you got rid of all the middle-aged judges, lawyers, and record industry execs, and replaced them with geeks.
    ...probably something similar as if you put all those judges, lawyers and execs in front of terminals running emacs and charged them with software development tasks!