×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

FreeBSD 4.6

michael posted more than 11 years ago | from the daemonettes dept.

BSD 320

An Anonymous Coward writes "FreeBSD 4.6 is out! The announcement is out, and so are the release notes. Have fun, and thanks to the FreeBSD team!" The announcement has all the mirror information, etc.

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

320 comments

no first post on bsd? (-1, Offtopic)

gTsiros (205624) | more than 11 years ago | (#3710493)

what are you waiting for?
is second post more valuable on bsd.slashdot.org?

OT: iso-8859-7 characters in your signature (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#3710590)

-Ãéñãéïò Ôóßñïò (you need iso-8859-7 and respecive font to view that correctly)

Use Unicode [unicode.org] instead of iso-8859-7 in your signature and everyone with good software will see your text, with no need to write "you need iso-8859-7 and respecive font to view that correctly". The Greek characters starts from U+0391 (here's a PDF chart [unicode.org] and Named and Numeric HTML Entities [uwaterloo.ca]). The Greek characters are very important in Latin based languages for mathematic formulas, so they are usually installed by default in modern operating systems and they even have named HTML entities, so you can write α β γ δ Ψ Ω in your sig or comments and get . I don't know what software do you use, but I know that under Debian GNU/Linux [debian.org] which I use, the unicode Greek fonts are installed by default and Mozilla [mozilla.org] displays them also by default (as well as lots of characters from many exotic scripts). Hope it helps.

cool (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710494)

cool

*BSD is dying (-1, Redundant)

Anonymous Coward | more than 11 years ago | (#3710495)

It is official; Netcraft confirms: *BSD is dying

One more crippling bombshell hit the already beleaguered *BSD community when IDC confirmed that *BS market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming on the heels of a recent Netcraft survey which plainly states that *BSD has lost more market share, this news serves to reinforce what we've known all along. *BSD is collapsing in complete disarray, as fittingly exemplified by failing dead last [samag.com] in the recent Sys Admin comprehensive networking test.

You don't need to be a Kreskin [amdest.com] to predict *BSD's future. The hand writing is on the wall: *BSD faces a bleak future. In fact there won't be any future at all for *BSD because *BSD is dying. Things are looking very bad for *BSD. As many of us are already aware, *BSD continues to lose market share. Red ink flows like a river of blood.

FreeBSD is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time FreeBSD developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: FreeBSD is dying.

Let's keep to the facts and look at the numbers.

OpenBSD leader Theo states that there are 7000 users of OpenBSD. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the *BSD market. Therefore there are (7000+1400+700)*4 = 36400 FreeBSD users. This is consistent with the number of FreeBSD Usenet posts.

Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.

All major surveys show that *BSD has steadily declined in market share. *BSD is very sick and its long term survival prospects are very dim. If *BSD is to survive at all it will be among OS dilettante dabblers. *BSD continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, *BSD is dead.

Fact: *BSD is dying

Re:*BSD is dying (2, Insightful)

aic (305925) | more than 11 years ago | (#3710498)

Isn't Apple's Mac OSX a BSD unix?

Re:*BSD is dying (2)

zaren (204877) | more than 11 years ago | (#3710608)

You are correct. Mac OS X is built around Darwin, which is partly based on FreeBSD. See http://developer.apple.com/darwin/ [apple.com] for more details. Darwin is also available for x86-compatible computers, so it's not a Mac-only thing.
-----
Darwin is an evolutionary OS... [cafepress.com]

What misinformed crap (0)

Anonymous Coward | more than 11 years ago | (#3710506)

You justify your user base statistics on Usenet posts? And you think that Walnut Creek's problems put an Open Source product out of business? If anything, FreeBSD has grown over time. Check your facts, bub.

Re:What misinformed crap (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710526)

to all replying to the "*BSD is DYING post":

YOU ARE REPLYING TO AN ANCIENT TROLL.

get a life

YHBT. YHL. HAND. (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710537)

sad but true

Re:*BSD is dying (0)

Melantha_Bacchae (232402) | more than 11 years ago | (#3710541)

An AC wrote:

> FreeBSD is the most endangered of them all,
> having lost 93% of its core developers. The sudden
> and unpleasant departures of long time FreeBSD
> developers Jordan Hubbard and Mike Smith only
> serve to underscore the point more clearly. There
> can no longer be any doubt: FreeBSD is dying.

Silly troll! If FreeBSD can come out with new versions so frequently with only 7% of its developers, it isn't in danger of dying any time soon. And once Jaguar comes out from Apple this summer, it will be "*BSD is dying" troll posts on the endangered species list.

> Nothing short of a miracle could save it at this
> point in time.

Gee you missed the miracles. What a shame! They occured in 1996 and 1997. See "Rebirth of Mothra 1" and "Rebirth of Mothra 2" for details.

"It's a miracle! The sea water has once again created new life."
Moll, "Rebirth of Mothra 2"

Re:*BSD is dying (-1, Troll)

JPriest (547211) | more than 11 years ago | (#3710560)

Leave the trolling the user base that read the HOWTO. Trolling is an art form, you're just making stick figures with finger paint.

Re:*BSD is dying (0)

Anonymous Coward | more than 11 years ago | (#3710604)

> FreeBSD is the most endangered of them all,
> having lost 93% of its core developers.

Gee, I wonder why the number of core developers keeps on increasing? Isn't that odd? Some wierdo really has it in for *BSD.

Re:*BSD is dying (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710610)

Fact: usenet is dying. Usenet posts indicate that usenet is for the most part only frequented by pornographers, middle aged perverts, aol users, and illiterate linux zealots with no life and no future.

Re:*BSD is dying (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710682)

Jon Barrett [goatse.cx] uses FreeBSD, and it doesn't seem like it's dying to him. Maybe he doesn't notice because he's busy SPOOGING over how much Linux sucks.

Re:*BSD is dying (2, Informative)

Anonymous Coward | more than 11 years ago | (#3710750)

It will, however, run Linux software! Here's how:

# cd /usr/ports/emulators/linux_base
# make install
# echo 'linux_enable="YES"' >> /etc/rc.conf


Note that if you choose linux binary compatibility during installation, the above is done for you.

For some things (vmware) you may need to add linprocfs to /etc/fstab.

linux_base comes with rpm, et al. Rarely, you may need to copy some shared libraries from a linux box to the the appropriate directories under /usr/compat/linux/

Insider's scoop: Why FreeBSD is dying (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710497)

The End of FreeBSD

[ed. note: in the following text, former FreeBSD developer Mike Smith gives his reasons for abandoning FreeBSD]

When I stood for election to the FreeBSD core team nearly tw years ago, many of you will recall that it was after a long series of debates during which I maintained that too much organisation, too mny rules and too much formality would be a bad thing for the project.

Today, as I read the latest discussions on the future of the FreeBSD project, I see the same problem; a few new faces and many of the old going over the same tired arguments and suggesting variations on the same worthless schemes. Frankly I'm sick of it.

FreeBSD used to be fun. It used to be about doing things the right way. It used to be something that you could sink your teeth into when the mundane chores of programming for a living got you down. It was something cool and exciting; a way to spend your spare time on an endeavour you loved that was at the same time wholesome and worthwhile.

It's not anymore. It's about bylaws and committees and reports and milestones, telling others what to do and doing what you're told. It's about who can rant the longest or shout the loudest or mislead the most people into a bloc in order to legitimise doing what they think is best. Individuals notwithstanding, the project as a whole has lost track of where it's going, and has instead become obsessed with process and mechanics.

So I'm leaving core. I don't want to feel like I should be "doing something" about a project that has lost interest in having something done for it. I don't have the energy to fight what has clearly become a losing battle; I have a life to live and a job to keep, and I won't achieve any of the goals I personally consider worthwhile if I remain obligated to care for the project.

Discussion

I'm sure that I've offended some people already; I'm sure that by the time I'm done here, I'll have offended more. If you feel a need to play to the crowd in your replies rather than make a sincere effort to address the problems I'm discussing here, please do us the courtesy of playing your politics openly.

From a technical perspective, the project faces a set of challenges that significantly outstrips our ability to deliver. Some of the resources that we need to address these challenges are tied up in the fruitless metadiscussions that have raged since we made the mistake of electing officers. Others have left in disgust, or been driven out by the culture of abuse and distraction that has grown up since then. More may well remain available to recruitment, but while the project is busy infighting our chances for successful outreach are sorely diminished.

There's no simple solution to this. For the project to move forward, one or the other of the warring philosophies must win out; either the project returns to its laid-back roots and gets on with the work, or it transforms into a super-organised engineering project and executes a brilliant plan to deliver what, ultimately, we all know we want.

Whatever path is chosen, whatever balance is struck, the choosing and the striking are the important parts. The current indecision and endless conflict are incompatible with any sort of progress.

Trying to dissect the above is far beyond the scope of any parting shot, no matter how distended. All I can really ask of you all is to let go of the minutiae for a moment and take a look at the big picture. What is the ultimate goal here? How can we get there with as little overhead as possible? How would you like to be treated by your fellow travellers?

Shouts

To the Slashdot "BSD is dying" crowd - big deal. Death is part of the cycle; take a look at your soft, pallid bodies and consider that right this very moment, parts of you are dying. See? It's not so bad.

To the bulk of the FreeBSD committerbase and the developer community at large - keep your eyes on the real goals. It's when you get distracted by the politickers that they sideline you. The tireless work that you perform keeping the system clean and building is what provides the platform for the obsessives and the prima donnas to have their moments in the sun. In the end, we need you all; in order to go forwards we must first avoid going backwards.

To the paranoid conspiracy theorists - yes, I work for Apple too. No, my resignation wasn't on Steve's direct orders, or in any way related to work I'm doing, may do, may not do, or indeed what was in the tea I had at lunchtime today. It's about real problems that the project faces, real problems that the project has brought upon itself. You can't escape them by inventing excuses about outside influence, the problem stems from within.

To the politically obsessed - give it a break, if you can. No, the project isn't a lemonade stand anymore, but it's not a world-spanning corporate juggernaut either and some of the more grandiose visions going around are in need of a solid dose of reality. Keep it simple, stupid.

To the grandstanders, the prima donnas, and anyone that thinks that they can hold the project to ransom for their own agenda - give it a break, if you can. When the current core were elected, we took a conscious stand against vigorous sanctions, and some of you have exploited that. A new core is going to have to decide whether to repeat this mistake or get tough. I hope they learn from our errors.

Future

I started work on FreeBSD because it was fun. If I'm going to continue, it has to be fun again. There are things I still feel obligated to do, and with any luck I'll find the time to meet those obligations.

However I don't feel an obligation to get involved in the political mess the project is in right now. I tried, I burnt out. I don't feel that my efforts were worthwhile. So I won't be standing for election, I won't be shouting from the sidelines, and I probably won't vote in the next round of ballots.

You could say I'm packing up my toys. I'm not going home just yet, but I'm not going to play unless you can work out how to make the project somewhere fun to be again.

= Mike

--

To announce that there must be no criticism of the president, or that we are to stand by the president, right or wrong, is not only unpatriotic and servile, but is morally treasonable to the American public. -- Theodore Roosevelt

Great! (0, Redundant)

dajjer (579938) | more than 11 years ago | (#3710499)

Great!
When's 5.0 due?

Have you noticed: #@ +1 ; Provocative @# (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#3710601)

The increasing number of stories submitted by
Anonymous Coward. These are probably generated by
the Slashdot Editorial board.

Thanks in advance.

Re:Great! (0)

Anonymous Coward | more than 11 years ago | (#3710771)

Well, we're already taking bets on how many days before it's out Slashdot will post about it!

Great to hear it... (5, Interesting)

Meat Blaster (578650) | more than 11 years ago | (#3710501)

It looks like they took care of the handful of things that were causing me a lot of problems. Not only that, but I'm rather intrigued by this bit:

Selected network drivers now implement a semi-polling mode, which makes systems much more resilient to attacks and overloads.

A partial defense against IP DoS attacks?

Another thing that looks really cool is that reboot now takes a flag to tell it which kernel to reboot to. Isn't this cool? Granted, most of the time on my Linux system I'm at the console when I do a reboot, so I can just pick it from GRUB, but for remote reboots this could be quite handy. And they've eliminated the deal with the odd legit TCP SYN packet from crashing the box to boot. In a nutshell, it's time to start downloading...

Re:Great to hear it... (2, Informative)

cbcbcb (567490) | more than 11 years ago | (#3710521)

If you use lilo you can use lilo -R to select which kernel to boot.

semi-polling mode (5, Informative)

sigxcpu (456479) | more than 11 years ago | (#3710532)

AFAIK selected polling mode means that after an interupt the driver switches to poling mode to avoid the interrupt overhead.
Some of Donald Becker's linux driver have this feature.
This improves system stabillity and responsivenes under high nework loads, and avoides the so called 'livelock' where the system isn't hung but it is wasting so much time doing interupt handling that it can't do anything else.
This is a GOOD THING but it won't help much against DDOS

FreeBSD versus GNU/Linux (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710598)

Yet another crippling bombshell hit the beleaguered Dirty GNU Hippie community when last month IDC confirmed that Rancid Smelling GNU Hippies account for less than a fraction of 1 percent of all humans. Coming on the heels of the latest Netcraft survey which plainly states that Natty haired greasy GNU Hippie have lost more market share, this news serves to reinforce what we've known all along. Reeking Linux Hippies are collapsing in complete disarray, as further exemplified by failing dead last [sysadminmag.com] in the recent Sys Admin comprehensive /usr/bin/sh test.

You don't need to be a Kreskin [amdest.com] to predict the future of the Stinking sweaty Linux hippie. The hand writing is on the wall: Foul-stenched GNU hippies with swampy armpits face a bleak future. In fact there won't be any future at all for them because they are dying. Things are looking very bad for Hairy-backed GNU hippie. As many of us are already aware, they continue to lose market share. Red ink flows like a river of blood.

Let's keep to the facts and look at the numbers.

Troll leader Anonymous Coward states that there are 7000 goatse.cx trolls. How many ascii art trolls are there? Let's see. The number of goatse.cx versus ascii art posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 ascii art trolls. Pimply-faced GNU hippies posts on $lashdot are about half of the volume of ascii art posts. Therefore there are about 700 Cock-Gobbling GNU Hippies. A recent article put "first post" at about 80 percent of the troll market. Therefore there are (7000+1400+700)*4 = 36400 "first post" trolls. This is consistent with the number of first posts.

All major surveys show that Putrid smelling greasy GNU hippies have steadily declined in market share. $lashdot is very sick and its long term survival prospects are very dim. If Grubby Smelly Linux Hippies are to survive at all it will be among troll hobbyist dabblers. $lashdot continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, Dirty GNU Hippies are dead.

Lilo... (3, Informative)

wowbagger (69688) | more than 11 years ago | (#3710699)

If you use LILO, you can specify the kernel to reboot by:

lilo -R
reboot.

I have an "exp" config in my LILO, for experimental kernels before I move them off probation. So, when I have done my build and install, I just type
lilo -R exp && reboot
and there I go.

I don't know if Grub has anything similar.

Been there... (0)

Anonymous Coward | more than 11 years ago | (#3710502)

...done that. In fact I've been runnung FreeBSD 4.6-RELEASE for about three days now.

Re:Been there... (2)

Leimy (6717) | more than 11 years ago | (#3710525)

not possible.. I updated last night and built it. This morning I updated it again. Now it actually says FreeBSD 4.6 RELEASE not RC #0.

Re:Been there... (0)

Anonymous Coward | more than 11 years ago | (#3710555)

uuh yes it's possible. I've had uname spit out 4.6-RELEASE for a week now...

Re:Been there... (1)

mosch (204) | more than 11 years ago | (#3710741)

RELENG_4_6, not RELENG_4.

just because you don't know how it's done, doesn't mean it's not possible.

Re:Been there... (2, Interesting)

flynn_nrg (266463) | more than 11 years ago | (#3710533)

The fact that the mini iso as already there doesn't mean it had been officially released. A new version of FreeBSD is not officially out until the announcement is made. This is necessary because isos and files need to be mirrored before the load spike comes. For the rest of us, we just cvsup and don't really worry when it comes :-)

flynn@kajsa# uname -a
FreeBSD kajsa.energyhq.tk 4.6-STABLE FreeBSD 4.6-STABLE #0: Sun Jun 16 14:08:54 CEST 2002 root@kajsa.energyhq.tk:/usr/obj/usr/src/sys/KAJSA i386

software for BSD (0)

Anonymous Coward | more than 11 years ago | (#3710503)

What does it take for a non-programmer to run Linux software on FreeBSD?

Need I wait for the big guys to adapt them?

Re:software for BSD (1)

dajjer (579938) | more than 11 years ago | (#3710505)

Linux binary emulation layers, I'd presume.
They're available with the release, I think, can't really remember correctly.

Re:software for BSD (4, Informative)

Janon (137970) | more than 11 years ago | (#3710509)

Much Free Software from linux compiles fine on BSD, if that isn't what you meen by being a programmer. Otherwise, you can mount your linux system under /usr/compat/linux, add linux_enable="YES" to /etc/rc.conf and run your linux binaries as they are.

Re:software for BSD (4, Informative)

elbuddha (148737) | more than 11 years ago | (#3710536)


# cd /usr/ports/emulators/linux_base
# make install
# echo 'linux_enable="YES"' >> /etc/rc.conf


Note that if you choose linux binary compatibility during installation, the above is done for you.

For some things (vmware) you may need to add linprocfs to /etc/fstab.

linux_base comes with rpm, et al. Rarely, you may need to copy some shared libraries from a linux box to the the appropriate directories under /usr/compat/linux/

Really, its easy. The FreeBSD handbook does a good job of explaining [freebsd.org].

warning: corrupt ISOs (0)

Anonymous Coward | more than 11 years ago | (#3710504)

I d/l the iso image for disc 1 of freebsd-4.6, but cannot get it to install. The install fails during the installation of the ports collection with a cpio error. I tried installing 4.5 from a cd I have, and it installed fine, so I dont think its my hd. I've burned 3 copies and all three die at the same time, about 16% through installing the ports. I've checked the md5sum and it matches for the d/l, but is it possible something happened during the d/l and the file is corrupt? Are there any others with the same problem?

= Kev

Worked fine for me (0)

Anonymous Coward | more than 11 years ago | (#3710512)

Are you grabbing from a mirror? using Mozilla to download it?

Re:warning: corrupt ISOs (0)

Anonymous Coward | more than 11 years ago | (#3710540)

Maybe u install one of these trojans they were going on about

Re:warning: corrupt ISOs (0)

Anonymous Coward | more than 11 years ago | (#3710920)

Congratulations, your hardware sucks.

Jesus was a Negro. (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#3710510)


Praise be to the black Savior!

Jesus was a Negro.
Jesus was a Negro.
Jesus was a Negro.
Jesus was a Negro.
Jesus was a Negro.
Jesus was a Negro.

-Rev. Leroy Jones

What we can learn from BSD (-1, Redundant)

Anonymous Coward | more than 11 years ago | (#3710511)

What We Can Learn From BSD
By Chinese Karma Whore [slashdot.org], Version 1.0

Everyone knows about BSD's failure and imminent demise. As we pore over the history of BSD, we'll uncovr a story of fatal mistakes, poor priorities, and personal rivalry, and we'll learn what mistakes to avoid so as to save Linux from a similarly grisly fate.

Let's not be overly morbid and give BSD credit for its early successes. In the 1970s, Ken Thompson and Bill Joy both made significant contributions to the computing world on the BSD platform. In the 80s, DARPA saw BSD as the premiere open platform, and, after initial successes with the 4.1BSD product, gave the BSD company a 2 year contract.

These early triumphs would soon be forgotten in a series of internal conflicts that would mar BSD's progress. In 1992, AT&T filed suit against Berkeley Software, claiming that proprietary code agreements had been haphazardly violated. In the same year, BSD filed countersuit, reciprocating bad intentions and fueling internal rivalry. While AT&T and Berkeley Software lawyers battled in court, lead developers of various BSD distributions quarreled on Usenet. In 1995, Theo de Raadt, one of the founders of the NetBSD project, formed his own rival distribution, OpenBSD, as the result of a quarrel that he documents [theos.com] on his website. Mr. de Raadt's stubborn arrogance was later seen in his clash with Darren Reed, which resulted in the expulsion of IPF from the OpenBSD distribution.

As personal rivalries took precedence over a quality product, BSD's codebase became worse and worse. As we all know, incompatibilities between each BSD distribution make code sharing an arduous task. Research conducted at MIT [mit.edu] found BSD's filesystem implementation to be "very poorly performing." Even BSD's acclaimed TCP/IP stack has lagged behind, according to this study [rice.edu].

Problems with BSD's codebase were compounded by fundamental flaws in the BSD design approach. As argued by Eric Raymond in his watershed essay, The Cathedral and the Bazaar [tuxedo.org], rapid, decentralized development models are inherently superior to slow, centralized ones in software development. BSD developers never heeded Mr. Raymond's lesson and insisted that centralized models lead to 'cleaner code.' Don't believe their hype - BSD's development model has significantly impaired its progress. Any achievements that BSD managed to make were nullified by the BSD license, which allows corporations and coders alike to reap profits without reciprocating the goodwill of open-source. Fortunately, Linux is not prone to this exploitation, as it is licensed under the GPL.

The failure of BSD culminated in the resignation of Jordan Hubbard and Michael Smith from the FreeBSD core team. They both believed that FreeBSD had long lost its earlier vitality. Like an empire in decline, BSD had become bureaucratic and stagnant. As Linux gains market share and as BSD sinks deeper into the mire of decay, their parting addresses will resound as fitting eulogies to BSD's demise.

Re:What we can learn from BSD (0)

Anonymous Coward | more than 11 years ago | (#3710547)

Everyone knows Theo is an arrogant ass, but Darren Reed is not far behind. Check recent postings by him in the FreeBSD-stable archives.

ATTENTION (-1, Redundant)

Anonymous Coward | more than 11 years ago | (#3710517)


I have an important announcement to make.

ahem...

Most users of this web-site are homosexual.

This message was brought to you by the Institute of Creation Science [drdino.com].

God made Adam and Eve, not Adam & Steve!!

Thank you.

Re:ATTENTION (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#3710583)

God made Adam and Eve, not Adam & Steve!!

Yes, that's true. If only he wasn't smoking some real funky shit that day, he would have gotten it right and made Adam & Steve.

Summation of my recent "Science" submission. (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#3710522)


CDC researchers speculate: AIDS CURES FAGS.

*BSD is dying (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710528)

It is now official - Netcraft has confirmed: *BSD is dying

Yet another crippling bombshell hit the beleaguered *BSD community when recently IDC confirmed that *BSD accounts for less than a fraction of 1 percent of all servers. Coming on the heels of the latest Netcraft survey which plainly states that *BSD has lost more market share, this news serves to reinforce what we've known all along. *BSD is collapsing in complete disarray, as fittingly exemplified by failing dead last [samag.com] in the recent Sys Admin comprehensive networking test.

You don't need to be a Kreskin [amdest.com] to predict *BSD's future. The hand writing is on the wall: *BSD faces a bleak future. In fact there won't be any future at all for *BSD because *BSD is dying. Things are looking very bad for *BSD. As many of us are already aware, *BSD continues to lose market share. Red ink flows like a river of blood. FreeBSD is the most endangered of them all, having lost 93% of its core developers.

Let's keep to the facts and look at the numbers.

OpenBSD leader Theo states that there are 7000 users of OpenBSD. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the *BSD market. Therefore there are (7000+1400+700)*4 = 36400 FreeBSD users. This is consistent with the number of FreeBSD Usenet posts.

Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.

All major surveys show that *BSD has steadily declined in market share. *BSD is very sick and its long term survival prospects are very dim. If *BSD is to survive at all it will be among OS hobbyist dabblers. *BSD continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, *BSD is dead.

Fact: *BSD is dying

Is this for Real this time? (0)

Anonymous Coward | more than 11 years ago | (#3710529)

Considering how many false reports on slashdot has on that "FreeBSD X.X released!", I guess I have to hand it to them for finally getting it right.

First UUEncoded version of BSD IS DYING! (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#3710545)

begin 644 bsd-is-dying.txt
hGLEUOLAUPaxr64xaNaZXOK3g60oUHaJ oMr7VNbEUO43n64BjP aNdQapZN1cU
h8Y7HF0-dQm-YSKZiNm+B0ZZZR0-VPaxoO4Jm 64BmOL-kP4ZiN m-WPqpWQqVZ
hP4kUO4Zo65FcNG-WNKlZMKRpNL7ZN0+eEZB2 64BjPKppPaZoS G-rO4Ji657Z
hMqJiR4lt62Z2Em-XPqtaOL7hNKEUR4VVR0+e EZB2643XMqxpP bFn64NjQW-g
hNLBn65FcMKsUMG-aQa3XR4ZjPW-jNW+l65-Z QaBZPbEUPqMUM Klg65BZQbNZ
hQbAi62BjPKZiNm-jPW-oO4IUO4JZP5AUPqMU R4VZ64lVR4JnR 0-CNLFXQa3a
hR0-nRL7qNLYURqVdMqUUQ4lVOKtgSG-nR43o NLAUR4VVR0+eE ZB264VVQm-g
hPrBo64pjQaIUPK3mOqJo65BcML7Z90-oO4Zn 64tZRrAUQqJmR aJn65Fj657Z
hOKtaPr7XNG-rO43o65RZ7rNZ64hiPrRi643g P0-VP4xiNmsU8 Y7HF0-dQm-X
hPqlgML-nOKtb64Zi64BjPL-gNLFZ64FdQq3m Qa3t90-VQm-aO LFoOKtbP5YU
hNLVZPL-gOKNdNKEUMbYUNa3dP4ZiNm-YNK3Y 64lVQrEUKrBVP K3b9aBjPJoU
hOKsUR4VZ657ZMqJiR0-HSLAUEKFhOKsUMqxh Q57ZO4JiQqZqN G-iNLFrPr7f
hOKtb65FZQrEi1EcB0ZZjRG-YPqsbR0-iNKJY 65Fj647Z642UG r7ZQqhdPW-P
hMKpYNLBo9aBjPJoUR4wUQ57ZN4ZXR0+eEZB2 7rAUNbJoRL7Z9 W-IO4IUO43i
hN0-rQaZoOKtb64Zn64xi65FcNG-rMKlgCW+e EZB264NVMqJn6 42UMalZMKgU
hNbJoRL7Z9W-7PW-aMKBo65FcNL7Z65RjPWRo 647Z643iSG-aR LFpQaIUMLEU
hMKlg64NjQW+eEZB2647ZMq3pQqIU8Y7HF0-d Qm-YSKZiNmsUJ 4VdPaRn643m
hNG-gPqxfOKtb65NZQbYUMa3Y64NjQW+eEZB2 9W--Qm-hMKtt6 4xa65Jn643m
hNG-VP57ZMKFt643rML7Z90+eEZB264BjPbFd PbJZQm-oPm-gP rBZ64pVQahZ
hR0-nO43mNGsUIaJY64ZiOm-aP4xrQm-gOKhZ 642UQaZqNL6UP qMUMaljPqEi
h62NmNKJ0IoEUOLAUR4VZ64pjQrEUNKtYMKtb NL7ZN0-jNW-oO 4Jh643gP0kU
hO43qOKtb64ljQrEUCHAZ64xa64ZoQm-XPr7Z 64FZRaJgPr-ZQ bAi1EcB0YlZ
hR0Rn64hZNL+UR4wUR4VZ64NVMrFn643iN0-g Pqxf643o65FcN G-iRKpWNL7n
h9W+B0Uo8Hr-ZPY7HF0-gNK3YNL6UJ4VZPm-n R43oNLAUR4VVR 0-oO4JmNG-V
hQaIUBn+kA0-pQqJmQm-jNW-DQ4JiEZB29W-6 PrQUPK3iSG-pQ qJmQm-jNW-C
hNLF0IoEUML7Z65FcNL7ZDm-ANLEbQm-nNKIi 63FcNG-iRKpWN L6UPqMUHr-Z
hPY7HF0-qNL7nRLAUHaJoEZB265-jQrFn64xi 63JnNKtZR0-dQ m-mPrJbO4lt
h64Zi657VR4Zj64xa61IUR4wUAGsUJ4VZQaJa Pr7Z65FcNL7Z6 43mNG-VMaxp
hR0+rA1+k9nIUDG+lB1+k62tZR27HF0-pQqJm QmsUEZB29oxH6 5-jQrFn64xi
h63JnNKtZR0-VQaIUMK7jRLEUO43gNW-jNW-o O4IURaxgRKpZ6 4xa62tZR27H
hF0-kPrBoQmsUJ4VZQaJaPr7Z65FcNL7Z643m NG-VMaxpR0+rA 1+URLBZQbAU
hPqMUEZB29oxH9W--657ZMqJiR0-VQbFdMqlZ 65-pR0-4QaJZE ZB2643o643W
hPrJo61Uk65-ZQaBZPbEUPqMUR4VZ60d0IoEU PK3mOqJo9W-IO 4JmNKNjQaIU
hR4VZQaIUML7Z60UrA1+k8n2oA1+fBn+k8Gco 61oUAnMoA1+UF b7ZNI7HF0-p
hQqJmQmsUJ4VdQm-dQm-XPqtnOLBoNKto65Rd R4UUR4VZ64tpP K7ZQW-jNW-4
hQaJZEZB263JnNKtZR0-kPrBoQmsU1EcB0YFp NG-oPm-oO4IUR 57jRK7gNLAU
hPqMUJq3gPbJo62BmNKJf90-VMbZnPK3g65BV P4Jn643iN0-nP m-jPWkUFb7Z
hNI7HF0-rNKto64xpR0-jNW-WRLBdPaJnQm-V PaEURq3n65FVO qJi64xqNL6U
hMbYUEZB2GG-rO4wUQqJgP0-VPaxoO4Jm65Fm PrJWP4JY62xH9 W-CPrQUEZB2
hGG-dQm-VP5Bj64FZMKEg64ZoQm-XPr7kQqIU R5JmPaJY64xqN L6UR4wUSKJo
h643iPrFcNL6UMqVVQatZP0-cPrJnNGsU1EcB 0Y3gP0-hMKdjQ W-nRL7qNLZn
h65BcPrQUR4VVR0+eEZB264VVQm-nR4JVN4Zg SG-YNKBgOKtZN 0-dPW-hML7f
hNLEUQqVVQaIi60d0IoEUOLAURaJmSG-nOKBf 643iN0-dR5AUP 4xiNm-oNL7h
h65BpQbNdRa3g65-mPrBkNKBoQm-VQaIURaJm SG-YOKoi62Za6 0d0IoEUOLAU
hR4wUQrJmRaZqNG-VR0-VP4kUOLEURqZgP0-W NG-VPKxiNm-DI m-cPq7WSKZn
hR0-YMK7WP4JmQmsU8Y7HF0-XPqtoOKtpNLAU R4wUN4JXMLYi6 2tjR4VdPaQU
hQqVjQbEUPqMUMG-hOL7VMqlZ64BjRKlY65BV RaIUOLEUMLEUR 4VdQm-kPqZi
hR0-dPW-oOKpZ9W-4Pr6UMKlg65-mMKBoOKBV P0-kRL7kPrBZQ mkU8Y7HF0-d
WQm-YNK3Y9W+B0Uo8Fa3XR1cU8Y7HF0-dQm-Y SKZiNm+B0W+B
+
end

Alright, (3, Funny)

GldisAter (138585) | more than 11 years ago | (#3710550)

We are now accepting bets on whether or not Slashdot announces 4.7 before it is actually released and by how many days.

bsd is dying (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710551)

With all the recent advances linux has made, why would I possibly want to use such a doomed OS? It seems clear that BSD wont exist in 2 years from now. I'll be sad to see it go but all these releases really are just attempts to try to reanimate a corpse. Let it go.

GAAHH! (1)

Rhinobird (151521) | more than 11 years ago | (#3710552)

I JUST installed Suse 8, now this. I need another HD, that's all there is to it...

Re:GAAHH! (0)

Anonymous Coward | more than 11 years ago | (#3710596)

Question: Do ever do anything useful with the latest, greatest OS beyond just installing it?

26 killed in Uttaranchal bus mishap (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#3710553)

At least 26 people were killed when the bus they were travelling in fell into a ravine in Uttaranchal, according to a television report on Sunday. The accident occured late Saturday when one of the tires of the bus burst and the driver lost control of the vehicle, the report said.

There were about 32 passengers in the bus which was enroute to Badrinath when it fell into the ravine. Seven people were pulled out of the river with seriously injuries. Four bodies have been recovered. The other 21 people on the bus were believed dead, according to a police official said. ``There is remote possibility of any one surviving,'' said Deputy Inspector General L.P. Mishra.

Rescuers descended down the treacherous mountainside and were scouring the fast currents for bodies and the mangled hulk of the bus. Police and emergency services have been rushed to the area to supervise rescue work. Local authorities have sought help from the Indian army in the rescue effort.

figures (4, Funny)

jhines (82154) | more than 11 years ago | (#3710554)

I installed 4.5 yesterday. Sigh.

Re:figures (0)

Anonymous Coward | more than 11 years ago | (#3710558)

Cheer up will ya? You can always upgrade it :)

Re:figures (0)

Anonymous Coward | more than 11 years ago | (#3710588)

Save yourself a headache. Learn how to use cvsup. Install it. Upgrade /usr/src to -STABLE. cd to /usr/src. make buildworld. make installworld. invoke mergemaster. make buildkernel KERNCONF=YERKERNELCONFIGFILE. make installkernel. reboot. cd /dev . ./MAKEDEV all. Reboot. Voila.

Re:figures (1)

R.Caley (126968) | more than 11 years ago | (#3710624)

cvsup
make buildworld installworld buildkernel installkernel
mergemaster
reboot

Re:figures (0)

Hyperhaplo (575219) | more than 11 years ago | (#3710774)


Arrgl!!! I just finished downloading 4.5 (replacement disk) today, and I just reinstalled my server box!

Ah well, time to upgrade anyway :)

I can't wait till 5.0 is released so I can die and go to heaven. Is anyone else waiting till 5.0 to buy the 4cd set + book?

Bing!

Re:figures (3, Informative)

AilleCat (178989) | more than 11 years ago | (#3710630)

Time to learn how to use cvsup

then cd /usr/src
make buildworld
make buildkernel
make installkernel
reboot
make installworld
mergemaster

then optional: reboot again

:)

Re:figures (2)

White Shadow (178120) | more than 11 years ago | (#3710789)

Heh, fortunately, upgrading FreeBSD is pretty painless (at least, in my experience). Simply upgrade the source code in /usr/src (I recommend using CVSUP), then type "make buildworld && make installworld" while in /usr/src. More detailed instructions can be found in the handbook [freebsd.org].

Re:figures (1)

ecliptik (160746) | more than 11 years ago | (#3710791)

I was almost on that boat with ya too yesterday. I was redoing a game server and was trying out different OSs, OpenBSD first, then Gentoo, and today I was goin to do FreeBSD 4.5, boy am I'm glad I was itching more to try Gentoo.

Re:figures (0)

Anonymous Coward | more than 11 years ago | (#3710914)

sucks to be you.

It's a pitty (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710566)

that BSD* is dead though. Just like BeOS.

Ohh well.

Re:It's a pitty (0)

Anonymous Coward | more than 11 years ago | (#3710609)

Just like BeOS

BeOS? - another dead system. Stay with Linux.

Linux for desktop, *BSD for servers? (4, Interesting)

korpiq (8532) | more than 11 years ago | (#3710571)


My frustration grew last year proportionally with the time it took to make Linux 2.4 stable enough for production server use. It still makes me a bit nervous and I have decided to go for *BSD in future where possible.

However, since Linux got most of the hype, most *nix desktop stuff especially from commercial side like game companies is targeted for it. So it makes sense to use it on the desktop. Just keep your data on the servers ;)

More experienced administrators: do you support this kind of dualism?

Re:Linux for desktop, *BSD for servers? (1)

halftrack (454203) | more than 11 years ago | (#3710585)

Not to mention that asking someone if they've heard of Linux gives a better yes-odds than asking if they've heard of BSD.

Re:Linux for desktop, *BSD for servers? - Nope (0)

Anonymous Coward | more than 11 years ago | (#3710589)

Considering Apple is shipping 1/4 of a millon Mac OS X (based on BSD) machines a quarter, it looks like BSD works JUST FINE as a desktop.

And, it works fine with some of the most finkey desktop users out there - Mac owners.

Mac OS X is not really BSD. (0)

Anonymous Coward | more than 11 years ago | (#3710620)

It's not really free. It's a pain in the [...] to add unofficial hardware support. There are problems with porting of Linux desktop software to Mac OS X. And it's not a multi-platform.

Re:Mac OS X is not really BSD. (2)

rtaylor (70602) | more than 11 years ago | (#3710647)

What does price or freedom have to do with anything?

BSDi certainly wasn't free, but it sure was BSD and in some cases was well worth the price.

Thats like saying, "Thats not bread because it doesn't have a hard brown crust on it". You just haven't been paying attention to the breads which don't brown.

Re:Mac OS X is not really BSD. (1, Interesting)

Anonymous Coward | more than 11 years ago | (#3710776)

It's not really free.

Do you have a point?

It's a pain in the [...] to add unofficial hardware support.

And this is different than Windows, The 190+ versions of GNU/Linux, BeOS etc la HOW?

There are problems with porting of Linux desktop software to Mac OS X. And it's not a multi-platform.

Talk to the bozos who write non-portable code. Writing code that is linux-only is different than writing code that is windows-only how?

If your goal it to be no better than Windows, writing non-portable code gets you there. Some people have higher goals in life.

Re:Linux for desktop, *BSD for servers? (0)

Anonymous Coward | more than 11 years ago | (#3710592)

BSD runs most of the Linux desktoppy apps out there, whether natively or through emulation.

Not a zoo. Linux is good enough (0)

Anonymous Coward | more than 11 years ago | (#3710679)

For sysadmins a zoo [mix of different systems] is very bad. Especially today, when executive officers finally begin to count the budget and lay off all "un-needed" resources.

In our company we decided to stick with Linux on both desktops and servers. The decision is based on the formula "good enough". M$win is the desktop platform users use now, but Linux is good enough to save money on destop licenses. BSD is the best server platform, but Linux is good enough to work as a server and to save money on sysadmin training.

MacOS is not a choice in the company with limited budget. No support of PC hardware, expensive Mac hardware, yet expensive commercial software.

After considering it we stick with Linux: Linux firewalls, Linux servers for DB, CVS, email and web, Linux on desktops with OpenOffice, Gimp and NetBeans. Why would we need BSD?

Someone may try the last argumet: mission critical applications. Well, for our DB server (Linux and PostgreSQL) we have a tape backup, replicated stand-by and load-balanced web-servers. Is it less reliable than if it would be on PostgreSQL? It's all about chances and the difference is very small. Same arguments about firewalls.

So, why would we need BSD?

Re: Linux is good enough (but are your admins?) (1)

Wouter Van Hemel (411877) | more than 11 years ago | (#3710798)


After considering it we stick with Linux: Linux firewalls, Linux servers for DB, CVS, email and web, Linux on desktops with OpenOffice, Gimp and NetBeans. Why would we need BSD?


Well. If you run the same distribution of linux everywhere, you're gonna be seriously screwed if there's some security problem / stability problem / whatever ... with it.

If you _don't_ run the same distro everywhere, your argument about 'zoo' and 'mix of different systems' doesn't really matter, because different linux distro's can be as different as some linux distro's and *bsd. Compare slackware with freebsd, for instance. If your admins need training to work with your linux systems, they'll need it for every other distribution just as for bsd, so you save nothing.

And having different systems and people who _understand_ them is much more beneficial to your company in many ways, than cheap click-monkey admins who need gui's.

You haven't taken it for a test drive. (0)

Anonymous Coward | more than 11 years ago | (#3710917)

You have much more control over ports system than you would over those terrible RPMs for one. The second argument would be kernel stability, and the flakiness of most Linux distrobution "companies" like RedHat


Example: RedHat professional, RedHat amateur, RedHat peewee, RedHat for people who don't want to pay, RedHat for people with millions of dollars etc...

Re:Linux for desktop, *BSD for servers? - why not. (2, Interesting)

Wouter Van Hemel (411877) | more than 11 years ago | (#3710761)


I like linux, but if I can choose freely, there is nothing I would pick over a *bsd, most likely freebsd.

There is no linux distribution that is as mature and aimed for servers. Don't even start talking about the bloated linux 'server' editions... A minimal bsd install, the latest versions of the services you really need compiled by hand and optimized, and you're set.

Mind though: I really don't think there's such a big difference between freebsd and linux, each has its pro's and con's... It really doesn't matter that much. Just use the right tools for the job, it's all opensource anyway.

And you can build a very minimal Linux distro yourself too, if you want... It's all about freedom, if you want linux on workstations (because that's what most distro's aim at) and freebsd on servers, you do that. And it'll work.

I wish the 'x is better than y'-people would just shut up and use 'x' in silence. Or contribute, if they really have too much time and energy anyway.

Re:Linux for desktop, *BSD for servers? - why not. (0)

Hyperhaplo (575219) | more than 11 years ago | (#3710778)

Plus the fact that dual booting is very common now AND that you CAN run Linux apps in FreeBSD :) Bing!

Re:Linux for desktop, *BSD for servers? (3, Informative)

White Shadow (178120) | more than 11 years ago | (#3710818)

Actually, I use FreeBSD for both desktop and server. I admit that I originally made this decision based on my familiarity with FreeBSD and I was a bit apprehensive, but I've found it to be just as good for everything I do. My original concern was hardware support (getting XFree86 4.x to work properly and firewire support), but it hasn't been a problem. Over the past couple weeks, I've successfully installed [aypwip.org] one of the 4.6 pre-releases on my laptop, including the firewire cd-rom drive and internal wireless card. Tangentially, I must say that networking with FreeBSD is incredibly easy, I was amazed at how little effort it took to get the wireless card up and running.

I think FreeBSD works fine on the desktop, but then again, I don't really play games. I use all the same software as linux folks such as galeon, gaim, enlightenment, kde, etc

Re:Linux for desktop, *BSD for servers? (1)

numbuscus (466708) | more than 11 years ago | (#3710864)

I tend to agree. I currently manage a couple small networks and FreeBSD has always given me the reliability I needed - especially in the server realm. For workstations, I am forced to use Windows and a bit of Linux, but my box is FreeBSD/Windows. I tried Linux (Debian) for a time and was impressed with dselect and the whole packaging system; however, I did have some stability issues (most likely my fault) and I reverted to FreeBSD. I've never had a FreeBSD system crash on me and the only complaint I do have is the delay between the Linux release of some software and the time it takes to find its way into ports. I guess I could install by hand - but I'm lazy.

give it up you freebsd using shitheads (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710572)

GNU/Linux is the wave of the future and the operating system of young communists everywhere. You wont see GPL software inside Microsoft Windows (proprietary = EVIL) releases! Use GNu/Linux now and join the revolution!

Hooray for Anonymous Cowards! (0)

Anonymous Coward | more than 11 years ago | (#3710579)

Hooray for anonymous cowards! Unlike Slashdot regulars, they get the story straight!

It's still dead... (-1, Troll)

flacco (324089) | more than 11 years ago | (#3710582)

...its fingernails and hair are still growing in the coffin, that's all.

WANTED (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710591)

The now DEAD Bsd Daemon is wanted for its history of Penguin rape [hazardous.org] If you see him please shove his head up here [goatse.cx] Remember that goatse.cx runs on linux, [netcraft.com] not DeadBSD

Thank you for your cooperation.

Elegy for *BSD (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710594)


I am a *BSD user
and I try hard to be brave
That is a tall order
*BSD's foot is in the grave.

I tap at my toy keyboard
and whistle a cheerful tune
but keeping happy is so hard,
*BSD will be dead real soon.

Each day I wake and softly sob
Nightfall finds me crying
Not only am I a zit faced slob
but *BSD is dying.

C# Sourcecode for Slashdot Troll Bot!!! (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710597)

C# Sourcecode for Slashdot Troll Bot!!!
Published under the TPL (Trolling Public License)

usingSystem;
usingSystem.Drawing;
usingSystem. Collections;
usingSystem.ComponentModel;
usingSy stem.Windows.Forms;
usingSystem.Data;
usingSyste m.Data.OleDb;
usingSystem.Runtime.InteropServices ;namespaceSlash man{
publicclassMainFrm:System.Windows.Forms.Form {[DllI mport("winmm.dll")]
publicstaticexternlongPlaySou nd(Stringlpszname,lon ghModule,longdwFlags);privateboolmanualMode=false;
privateboolcontextTroll=false;privateboolcontext Tr ollOnly=false;
privatestringlatestStory="";privat estringlatestSto ryDisplay="";
privatestringlatestURL="";privatest ringlatestTime= "";
privatestringlastStory="";privateintselTroll= 1;
privateSystem.Randomrand=newSystem.Random();pr ivat eDateTimenextCheck=System.DateTime.Now+System.Time Span.FromSeconds(6);
privateSystem.Windows.Forms. Labellabel1;privateSys tem.Windows.Forms.LinkLabellinkURL;
privateSystem .Windows.Forms.LabellabelTime;private System.Windows.Forms.ButtonbuttonCheck;
privatebo oltrying=false;privateSystem.Timers.Timer theTimer;
privateSystem.Windows.Forms.LabellabelN extCheck;pr ivatestringmainURL="http:privatestringreplyURL="ht tp:privateSystem.Data.DataTabletrollTable;
privat eSystem.Data.DataSettrollSet;privateSystem.D ata.DataTablecontextTable;
privateSystem.Data.Dat aSetcontextSet;privateSystem . indows.Forms.ButtonbtnPost;
privateboolisposting= false;privateintpreinctroll=0 ; BR>privatestringdirBase="";privateSystem.Window s.Fo rms.ButtonbtnOptions;
privateSystem.Windows.Forms .ContextMenutrayMenu;pr ivateSystem.Windows.Forms.MenuItemmenuItem1;
priv ateSystem.Windows.Forms.MenuItemmenuItem2;priv ateSystem.Windows.Forms.MenuItemmenuItem3;
protec tedSystem.Windows.Forms.NotifyIcontIcon;priv ateSystem.ComponentModel.IContainercomponents;
pr ivateOleDbConnectiondbConn;privateOleDbDataAdapt erdbTrollsAdapter;
privateSystem.Windows.Forms.La bellbResult;privateO leDbDataAdapterdbContextAdapter;
publicMainFrm(){ InitializeComponent();

SlashCfg.SetDefaults();ReadDB();}
protectedover ridevoidDispose(booldisposing){if(dis posing){
if(components!=null){components.Dispose( );}
}base.Dispose(disposing);}
#regionWindowsFor mDesignergeneratedcodeprivatevoid InitializeComponent(){
this.components=newSystem. ComponentModel.Container ();System.Resources.ResourceManagerresources=newSy stem.Resources.ResourceManager(typeof(MainFrm));
this.linkURL=newSystem.Windows.Forms.LinkLabel();t his.label1=newSystem.Windows.Forms.Label();
this. labelTime=newSystem.Windows.Forms.Label();thi s.labelNextCheck=newSystem.Windows.Forms.Label();
this.buttonCheck=newSystem.Windows.Forms.Button() ; this.theTimer=newSystem.Timers.Timer();
this.btnO ptions=newSystem.Windows.Forms.Button();t his.btnPost=newSystem.Windows.Forms.Button();
thi s.tIcon=newSystem.Windows.Forms.NotifyIcon(this . omponents);this.trayMenu=newSystem.Windows.Forms.C ontextMenu();
this.menuItem1=newSystem.Windows.Fo rms.MenuItem(); this.menuItem3=newSystem.Windows.Forms.MenuItem();
this.menuItem2=newSystem.Windows.Forms.MenuItem( ); this.lbResult=newSystem.Windows.Forms.Label();
(( System.ComponentModel.ISupportInitialize)(this.t heTimer)).BeginInit();this.SuspendLayout();
this. linkURL.Location=newSystem.Drawing.Point(16,4 8);this.linkURL.Name="linkURL";
this.linkURL.Size =newSystem.Drawing.Size(432,23);t his.linkURL.TabIndex=0;
this.linkURL.LinkClicked+ =newSystem.Windows.Forms. LinkLabelLinkClickedEventHandler(this.linkURL_Link Clicked);this.label1.Location=newSystem.Drawing.Po int(16,16);
this.label1.Name="label1";this.label1 .Size=newSyst em.Drawing.Size(80,23);
this.label1.TabIndex=1;th is.label1.Text="LastCheck : ;
this.labelTime.Location=newSystem.Drawing.Point (10 4,16);this.labelTime.Name="labelTime";
this.label Time.Size=newSystem.Drawing.Size(128,23) ; his.labelTime.TabIndex=2;
this.labelTime.Text="00 :00";this.labelNextCheck.Lo cation=newSystem.Drawing.Point(240,16);
this.labe lNextCheck.Name="labelNextCheck";this.lab elNextCheck.Size=newSystem.Drawing.Size(208,23);
this.labelNextCheck.TabIndex=3;this.labelNextCheck . ext="NextCheckin0Seconds";
this.buttonCheck.Locat ion=newSystem.Drawing.Point( 376,120);this.buttonCheck.Name="buttonCheck";
thi s.buttonCheck.TabIndex=4;this.buttonCheck.Text= "CheckNow";
this.buttonCheck.Click+=newSystem.Eve ntHandler(thi s.buttonCheck_Click);this.theTimer.Enabled=true;
this.theTimer.Interval=1000;this.theTimer.Synchron izingObject=this;
this.theTimer.Elapsed+=newSyste m.Timers.ElapsedEve ntHandler(this.OnFireTimer);this.btnOptions.Locati on=newSystem.Drawing.Point(200,120);
this.btnOpti ons.Name="btnOptions";this.btnOptions. TabIndex=5;
this.btnOptions.Text="Options";this.b tnOptions.Cli ck+=newSystem.EventHandler(this.btnOptions_Click);
this.btnPost.Location=newSystem.Drawing.Point(28 8, 120);this.btnPost.Name="btnPost";
this.btnPost.Ta bIndex=7;this.btnPost.Text="PostNow ";
this.btnPost.Click+=newSystem.EventHandler(thi s.bt nPost_Click);this.tIcon.ContextMenu=this.trayMenu;
this.tIcon.Icon=((System.Drawing.Icon)(resources .G etObject("tIcon.Icon")));this.tIcon.Text="SlashMan ";
this.tIcon.Visible=true;this.tIcon.DoubleClick +=ne wSystem.EventHandler(this.DblClickTrayIcon);
this .trayMenu.MenuItems.AddRange(newSystem.Windows . orms.MenuItem[]{this.menuItem1,
this.menuItem3,th is.menuItem2});
this.menuItem1.DefaultItem=true;t his.menuItem1.Ind ex=0;
this.menuItem1.Text="Open...";this.menuItem 1.Click +=newSystem.EventHandler(this.menuItem1_Click);
t his.menuItem3.Index=1;this.menuItem3.Text="-";
th is.menuItem2.Index=2;this.menuItem2.Text="Exit";
this.menuItem2.Click+=newSystem.EventHandler(this. menuItem2_Click);this.lbResult.Location=newSystem. Drawing.Point(16,80);
this.lbResult.Name="lbResul t";this.lbResult.Size=n ewSystem.Drawing.Size(432,23);
this.lbResult.TabI ndex=8;this.lbResult.Text="LastR esult:None";
this.AutoScaleBaseSize=newSystem.Dra wing.Size(5,13 );this.ClientSize=newSystem.Drawing.Size(472,149);
this.Controls.AddRange(newSystem.Windows.Forms.C on trol[]{this.lbResult,
this.btnPost,this.btnOption s,
this.buttonCheck,this.labelNextCheck,
this.la belTime,this.label1,
this.linkURL});this.Icon=((S ystem.Drawing.Icon)(re sources.GetObject("$this.Icon")));
this.MaximizeB ox=false;this.Name="MainFrm";
this.StartPosition= System.Windows.Forms.FormStartP osition.CenterScreen;this.Text="SlashMan";
this.S izeChanged+=newSystem.EventHandler(this.Size Chang);((System.ComponentModel.ISupportInitialize) (this.theTimer)).EndInit();
this.ResumeLayout(fal se);}#endregion
[STAThread]staticvoidMain(){
App lication.Run(newMainFrm());}privatevoidReadDB() {
try{dirBase=System.Diagnostics.Process.GetCurre ntP rocess().MainModule.FileName;
dirBase=dirBase.Sub string(0,dirBase.LastIndexOf("\ \"));System.IO.Directory.CreateDirectory(dirBase);
stringmdbFile="Provider=Microsoft.Jet.OLEDB.4.0; Da taSource="+dirBase+"\\Slashman.mdb";dbConn=newOleD bConnection(mdbFile);
dbTrollsAdapter=newOleDbDat aAdapter();OleDbCommand dbInsert=newOleDbCommand("INSERTINTOtrolls(ID,Subj ect,Body)Values(?,?,?)",dbConn);
dbInsert.Paramet ers.Add("ID",OleDbType.Numeric,0," ID");dbInsert.Parameters.Add("Subject",OleDbType.V arChar,255,"Subject");
dbInsert.Parameters.Add("B ody",OleDbType.Char,6553 5,"Body");OleDbCommanddbUpdate=newOleDbCommand("UP DATEtrollsSETSubject=?,Body=?WHEREID=?",dbConn);
dbUpdate.Parameters.Add("Subject",OleDbType.VarCha r,255,"Subject");dbUpdate.Parameters.Add("Body",Ol eDbType.Char,65535,"Body");
dbUpdate.Parameters.A dd("ID",OleDbType.Numeric,0," ID");OleDbCommanddbDel=newOleDbCommand("DELETEFROM trollsWHEREID=?",dbConn);
dbDel.Parameters.Add(ne wOleDbParameter("ID",OleDbT ype.Numeric,0,"ID"));dbTrollsAdapter.InsertCommand =dbInsert;
dbTrollsAdapter.UpdateCommand=dbUpdate ;dbTrollsAda pter.DeleteCommand=dbDel;
dbTrollsAdapter.SelectC ommand=newOleDbCommand("SEL ECT*FROMtrolls",dbConn);dbContextAdapter=newOleDbD ataAdapter();
dbContextAdapter.SelectCommand=newO leDbCommand("SE LECT*FROMContext",dbConn);dbConn.Open();
trollSet =newSystem.Data.DataSet("trollset");trollT able=newDataTable("trolls");
dbTrollsAdapter.Fill (trollTable);trollSet.Tables.A dd(trollTable);
if(trollTable.Rows.Count==0){Syst em.Windows.Forms. MessageBox.Show("Thetrollsdatabaseismissingorempty . );
thrownewSystem.Exception("Thetrollsdatabaseism issi ngorempty.");}contextSet=newSystem.Data.DataSet("c ontextset");
contextTable=newDataTable("Context") ;dbContextAdap ter.Fill(contextTable);
contextSet.Tables.Add(con textTable);this.Visible=t rue;
this.Update();}finally{
dbConn.Close();}}
privateboolSendMail(stringfrom,stringto,stringsubj ect,stringbody){try{
System.Web.Mail.MailMessaget heMail=newSystem.Web.M ail.MailMessage();theMail.From="your@email.com";
theMail.To=to;theMail.Subject=subject;
theMail.Bo dy=body;theMail.BodyFormat=System.Web.Ma il.MailFormat.Text;
System.Web.Mail.SmtpMail.Smtp Server="your.server.c om";System.Web.Mail.SmtpMail.Send(theMail);
retur ntrue;}catch(Exceptione){
System.Windows.Forms.Me ssageBox.Show(e.Message);re turnfalse;}
}privatevoidUpdateForm(){
this.label Time.Text=latestTime;this.linkURL.Text=l atestStoryDisplay;}
privatestringGetTaggedText(st ringfrom,stringtagBeg in,stringtagEnd){intbegin=from.IndexOf(tagBegin);
if(begin==-1)thrownewSystem.Exception("tagBeginno t found");stringretstr=from.Substring(begin+tagBegin . ength);
intend=retstr.IndexOf(tagEnd);if(end==-1) thrownewS ystem.Exception("tagEndnotfound");
returnretstr.S ubstring(0,end);}privatestringStripT ags(stringfrom){
stringret=from;intbegin=ret.Inde xOf("");
while(begin=0){intend=ret.IndexOf("",beg in);
if(end==-1)break;ret=ret.Remove(begin,(end-b egin)+ 1);
begin=ret.IndexOf("");}returnret;}
privatest ringGetHref(stringfrom){stringtagHref="AH REF=\"";
stringret=from;intbegin=ret.IndexOf(tagH ref);
if(begin0)thrownewSystem.Exception("GetHref failed( 1).");begin+=tagHref.Length;
intend=ret.IndexOf(" \"",begin);if(end0)thrownewSys tem.Exception("GetHreffailed(2).");
ret=ret.Subst ring(begin,end-begin);if(!ret.StartsW ith("http:"))ret="http:"+ret;
returnret;}privates tringDoHttpPost(stringinURI,Sys tem.Collections.Specialized.NameValueCollectionval ues){
System.Net.WebClientcli=newSystem.Net.WebCl ient(); byte[]resp=cli.UploadValues(inURI,values);
return System.Text.Encoding.ASCII.GetString(resp);} privatestringDoHttpGet(stringinURI){
System.Net.H ttpWebRequestreq=(System.Net.HttpWebRe quest)System.Net.WebRequest.Create(inURI);req.Cook ieContainer=newSystem.Net.CookieContainer();
req. CookieContainer.Add(newSystem.Net.Cookie("user ",SlashCfg.userCookie,"/","slashdot.org"));System. Net.WebResponseresp=req.GetResponse();
System.IO. StreamReadersr=newSystem.IO.StreamReader (resp.GetResponseStream(),System.Text.Encoding.ASC II);returnsr.ReadToEnd();}
privatevoidPrePro(refs tringtheData){theData=theDat a.Replace("Your Rights Online: Where Are You Publishing?",latestStory);
theData=theData.Replac e("191",selTroll.ToString()) ; heData=theData.Replace("193",trollTable.Rows.Count . oString());}
privatevoidUpdateStatus(stringstat){ tIcon.Text=sta t;
labelNextCheck.Text=stat;labelNextCheck.Update ();}
privatevoidPromptTrollData(outstringsubj,out string body){subj="";
body="";GetTrollgt=newGetTroll(lat estStory,latestU RL);
gt.ShowDialog(this);if(!gt.accepted)thrownew System . xception("AbortedEntry");
subj=gt.thesubj;body=gt .thebody;
if((subj=="")||(body==""))thrownewSyste m.Exception ("AbortedEntry");}privatevoidGetTrollData(outstrin gsubj,outstringbody){
inti=contextTable.Rows.Coun t;subj="";
body="";if(contextTroll){
for(i=0;ico ntextTable.Rows.Count;i++){if(latestSto ry.IndexOf(contextTable.Rows[i]["IfContain"].ToStr ing())=0){
intidx=(int)contextTable.Rows[i]["Post "];subj=trol lTable.Rows[idx-1]["Subject"].ToString();
body=tr ollTable.Rows[idx-1]["Body"].ToString();bre ak;}
}}if(i==contextTable.Rows.Count){
if(contex tTrollOnly){thrownewSystem.Exception("Noc ontexttrollexistsforthispost.");}
preinctroll=Sla shCfg.curTrollIndex;if(SlashCfg.cur Troll==0){
SlashCfg.curTrollIndex++;if(SlashCfg.c urTrollIndex =trollTable.Rows.Count)SlashCfg.curTrollIndex=1;
selTroll=SlashCfg.curTrollIndex;}else{
selTroll=S lashCfg.curTroll;}if(selTroll=trollTable . ows.Count){
thrownewSystem.Exception("Theselected trollisgreate rthanthenumberoftrollsinthetable.");}subj=trollTab le.Rows[selTroll]["Subject"].ToString();
body=tro llTable.Rows[selTroll]["Body"].ToString(); }if(SlashCfg.appendPostfix){
body+="P"+SlashCfg.a ppendPosttext;}PrePro(refsubj) ; BR>PrePro(refbody);}privatevoidPostComment(){
/ *stringxtheSubj,xtheBody;
GetTrollData(outxtheSub j,outxtheBody);System.Windo ws.Forms.MessageBox.Show(xtheBody,xtheSubj);
retu rn;*/
if(isposting)return;isposting=true;
if(man ualMode)PlaySound(Application.StartupPath+"\ \alert.wav",0,1);try{
stringtheSubj="",theBody="" ;if(!manualMode){
GetTrollData(outtheSubj,outtheB ody);}UpdateStatus( "Readingcommentspage...");
stringpageText=DoHttpG et(latestURL);stringtagSID=" INPUTTYPE=\"HIDDEN\"NAME=\"sid\"VALUE=\"";
string tagCID="INPUTTYPE=\"HIDDEN\"NAME=\"cid\"VALU E=\"";stringtagPID="INPUTTYPE=\"HIDDEN\"NAME=\"pid \"VALUE=\"";
stringtagKEY="INPUTTYPE=\"HIDDEN\"NA ME=\"formkey\" VALUE=\"";stringtagEND="\"";
stringSID=GetTaggedT ext(pageText,tagSID,tagEND);st ringCID=GetTaggedText(pageText,tagCID,tagEND);
st ringPID=GetTaggedText(pageText,tagPID,tagEND);st ringreplyPage=replyURL+"?";
replyPage+="sid="+SID +"&";replyPage+="pid="+PI D+"& ";
replyPage+="cid="+CID+"&";replyPage+="op=Reply &mod e=flat&commentsort=0&threshold=-1";
UpdateStatus( "RequestingReplyPage...");pageText=Do HttpGet(replyPage);
SID=GetTaggedText(pageText,ta gSID,tagEND);PID=GetT aggedText(pageText,tagPID,tagEND);
stringKEY=GetT aggedText(pageText,tagKEY,tagEND);Sy stem.Collections.Specialized.NameValueCollectionnv s=newSystem.Collections.Specialized.NameValueColle ction();
nvs.Add("sid",SID);nvs.Add("pid",PID);
nvs.Add("mode","flat");nvs.Add("startat","");
nvs .Add("threshold","-1");nvs.Add("commentsort","0 ");
nvs.Add("formkey",KEY);nvs.Add("rlogin","1");
nvs.Add("unickname",SlashCfg.username);nvs.Add(" up asswd",SlashCfg.password);
nvs.Add("op","Submit") ;nvs.Add("posttype","1");
if(manualMode){PromptTr ollData(outtheSubj,outtheBo dy);}
else{UpdateStatus("Waiting20seconds...");
System.Threading.Thread.Sleep(21000);}nvs.Add("pos tersubj",theSubj);
nvs.Add("postercomment",theBod y);pageText=DoHttpPo st(replyURL,nvs);
stringtagErrorResult="!--Errort ype:--";stringtagPo stResult="FACE=\"arial,helvetica\"SIZE=\"4\"COLOR= \"#FFFFFF\"B";
stringtagPostResultEnd="/B";string PostResult=GetTa ggedText(pageText,tagPostResult,tagPostResultEnd);
boolisOK=(pageText.IndexOf(tagErrorResult)==-1); if ((!isOK)&&(PostResult=="PostComment")){
try{PostR esult=GetTaggedText(pageText,tagErrorResu lt,".");}catch{}
while((PostResult.Length0)&&((Po stResult[0 ]32)||(P ostResult[0]127)))PostResult=PostResult.Substring( 1);}if(isOK){
CID=GetTaggedText(pageText,tagCID,t agEND);lbResult . ext="PostedComment";
stringlink="http:}else{
lbR esult.Text="ERROR:"+PostResult;}isposting=false ;
catch(System.Exception){isposting=false;
throw; }UpdateStatus("PostComplete.");}
privatevoidTryRe ad(){if(trying)return;
trying=true;stringtagTitle =@"FACE=""arial,helvetic a""SIZE=""4""COLOR=""#FFFFFF""B";
stringtagTitleE nd="/B";stringtagUrl="PB(/B";
stringtagUrlEnd="BR eadMore.../B";UpdateStatus("Che ckingNow...");
boolretryPost=false;try{
stringpa gestr=DoHttpGet(mainURL);latestStory=Strip Tags(GetTaggedText(pagestr,tagTitle,tagTitleEnd));
latestStoryDisplay=latestStory;latestURL=GetHref (G etTaggedText(pagestr,tagUrl,tagUrlEnd));
latestUR L+="&threshold=-1";latestTime=System.D ateT ime.Now.ToString();
if((lastStory.Length0)&&(late stStory!=last Story)){ PlayAlert();
PostComment();}}
catch(System.Excep tione){if(e.Message.IndexOf("(40 4)")0){
SlashCfg.curTrollIndex=preinctroll;retryP ost=true; }
latestStoryDisplay=e.Message;latestURL="ERROR";
latestTime="ERROR";}if(retryPost==false){
lastS tory=latestStory;nextCheck=DateTime.Now.AddSe conds(SlashCfg.checkIntervalMin+rand.Next(SlashCfg . heckIntervalMax-SlashCfg.checkIntervalMin));}
els e{nextCheck=DateTime.Now.AddSeconds(5);}
UpdateFo rm();trying=false;}
privatevoidbuttonCheck_Click( objectsender,System.E ventArgse){TryRead();}
privatevoidOnFireTimer(obj ectsender,System.Timers. ElapsedEventArgse){if(trying)return;
if(isposting )return;if(DateTime.NownextCheck){
TryRead();}Upd ateStatus("NextCheckin"+(int)((nextC heck-DateTime.Now).TotalSeconds)+"Seconds.");}
pr ivatevoidNavigateLink(){try{System.Diagnostics.P rocess.Start(latestURL);}
catch{}}privatevoidPlay Alert()
{}privatevoidlinkURL_LinkClicked(objectse nder,Syst em.Windows.Forms.LinkLabelLinkClickedEventArgse){
NavigateLink();}privatevoidbtnPost_Click(objectse n der,System.EventArgse){
if((latestURL==null)||(la testURL=="ERROR")||(lates tURL.Length==0)){System.Windows.Forms.MessageBox.S how("Mustgetthepostfirst!(PressCheckNow)","Error", System.Windows.Forms.MessageBoxButtons.OK,System.W indows.Forms.MessageBoxIcon.Stop);
return;}try{
PostComment();}catch{}}
privatevoidbtnOptions_Cli ck(objectsender,System.Ev entArgse){Slashman.OptionsFrmopts=newSlashman.Opti onsFrm();
opts.trollTable=trollTable;opts.ShowDia log(this);
if(opts.pressedOK){dbTrollsAdapter.Upd ate(trollTab le);
trollTable.AcceptChanges();}else{
trollTabl e.RejectChanges();}}
privatevoidShowMe(){this.Vis ible=true;
this.Activate();this.WindowState=Syste m.Windows.Fo rms.FormWindowState.Normal;}
privatevoidHideMe(){ this.Visible=false;}
privatevoidmenuItem1_Click(o bjectsender,System.Eve ntArgse){ShowMe();}
privatevoidmenuItem2_Click(ob jectsender,System.Eve ntArgse){this.Close();}
privatevoidSizeChang(obje ctsender,System.EventArgs e){if(this.WindowState==System.Windows.Forms.FormW indowState.Minimized){
HideMe();}}
privatevoidDb lClickTrayIcon(objectsender,System.Ev entArgse){ShowMe();}
}}

GNU/Linux OR FreeBSD WHICH FASTER? (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710602)

Yet another crippling bombshell hit the beleaguered Dirty GNU Hippie community when last month IDC confirmed that Rancid Smelling GNU Hippies account for less than a fraction of 1 percent of all humans. Coming on the heels of the latest Netcraft survey which plainly states that Natty haired greasy GNU Hippie have lost more market share, this news serves to reinforce what we've known all along. Reeking Linux Hippies are collapsing in complete disarray, as further exemplified by failing dead last [sysadminmag.com] in the recent Sys Admin comprehensive /usr/bin/sh test.

You don't need to be a Kreskin [amdest.com] to predict the future of the Stinking sweaty Linux hippie. The hand writing is on the wall: Foul-stenched GNU hippies with swampy armpits face a bleak future. In fact there won't be any future at all for them because they are dying. Things are looking very bad for Hairy-backed GNU hippie. As many of us are already aware, they continue to lose market share. Red ink flows like a river of blood.

Let's keep to the facts and look at the numbers.

Troll leader Anonymouse Coward states that there are 7000 goatse.cx trolls. How many ascii art trolls are there? Let's see. The number of goatse.cx versus ascii art posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 ascii art trolls. Pimply-faced GNU hippies posts on $lashdot are about half of the volume of ascii art posts. Therefore there are about 700 Cock-Gobbling GNU Hippies. A recent article put "first post" at about 80 percent of the troll market. Therefore there are (7000+1400+700)*4 = 36400 "first post" trolls. This is consistent with the number of first posts.

All major surveys show that Putrid smelling greasy GNU hippies have steadily declined in market share. $lashdot is very sick and its long term survival prospects are very dim. If Grubby Smelly Linux Hippies are to survive at all it will be among troll hobbyist dabblers. $lashdot continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, Dirty GNU Hippies are dead.

Fact:: $lashdot is fucking stupid

This article is +r0113ed (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710611)

ATOP there was 44 posts moderated to 0 or less and only 18 posts at one or more. In conclusion when there are more trolls than proper comments then an article is +r0113d!

The most common articles to be trolled usually are.

BSD articles
KDE/Gnome articles
vi / emac articles
and kernel releases

Now mod this down as -1 troll too!

TCL Sourcecode For Slashdot Troll Bot!!! (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710612)

#!/usr/bin/tclsh
## Slashdot poster by christfokkar@yahoo.com 2002.04.24 version 1.0 Bug reports / feature requests welcome
## REQUIREMENTS You need tclsh (TCL language) 8.3 or higher. Should be installed on most unix systems. If not, go to http://dev.scriptics.com. Make sure the first line in the file #!/usr/bin/tclsh points to your tcl interpreter.
## INSTRUCTIONS You need to edit this script each time and set 6 vars. Then you specify the Body and the Subject on the command line. 1. Set the authorization info. Remember, there are three ways to post: logged in, logged in/anonymous, and logged out. You can leave your auth info in here and simply toggle the anon and rlogin flags. 2. Set the sid and pid of the comment you wish to reply to. Use pid 0 for a new comment 3. Set posttype, and decide whether you want to preview or submit 4. Execute ./slashdot_post.tcl body_filename.txt "Your subject line here" When done, it will output an html receipt with the story id, the comment id, and the new comment id (or "Preview") in the filename.
### AUTH CONFIG - SET ONCE
set unickname trollaxor
set upasswd i_am_in_jail
### COMMENT CONFIG - SET EACH TIME
set rlogin 1 #login
set anon 1 #post anonymously (must be logged in)
set sid 31620 #story id (article) - get this from slashdot
set pid 0 #comment id - get this from slashdot - set 0 for New Reply
set posttype 1 #posttype 1=text 2=html 3=extrans 4=code
set submit 0 #set 0 to Preview
### check version
package require http 2.3
regexp {8\.?} [info tclversion] match_one
if {![info exists match_one]} { puts "FATAL: You must be running Tcl >= 8.3 You are running [info tclversion]"; exit }
### get comment text from file
if {$argc == 2 } {
set inputfile [lindex $argv 0]
set postersubj [lindex $argv 1]
} else { puts "USAGE: ./slashdot_post.tcl inputfilename.txt \"This is my subject line\""; exit }
if {[catch {set fp [open $inputfile r]} catch_error ]} { puts "FATAL: Could not open inputfile $inputfile $catch_error"; exit }
set postercomment ""
while { ![eof $fp] } { set postercomment $postercomment\n[gets $fp] }
### set some vars
if {$anon && $rlogin} { set postanon "&postanon=1"; set anontext "logged in/anonymous" } else {
set postanon ""
if {$rlogin} { set anontext "logging in" } else { set anontext "not logged in" } }
set typetext "???"
if {$posttype == 1 } { set typetext "Plain Text" }
if {$posttype == 2 } { set typetext HTML }
if {$posttype == 3 } { set typetext Extrans }
if {$posttype == 4 } { set typetext Code }
if {$submit} { set op Submit } else {set op Preview}
### get formkey
puts "You are posting as $unickname, $anontext, $op mode as $typetext"
puts "Getting formkey..."
http::config -useragent "Mozilla"
if {[catch {set token [http::geturl http://slashdot.org/comments.pl?sid=$sid&pid=$ pid&op=Reply]} catch_error]} { puts "FATAL: Unable to GET comments.pl $catch_error"; exit }
upvar #0 $token state
regexp {NAME="formkey" VALUE="([0-9a-zA-Z]+)">} $state(body) match_two formkey
if {![info exists formkey] || ![string compare $formkey ""] } { puts "FATAL: Unable to retrieve formkey";exit }
if {$submit} { puts "Got formkey. Waiting 20 seconds to Submit..."; after 20000 } else { puts "Got formkey, Previewing..." }
### post comment
if {$rlogin} {set auth &[http::formatQuery unickname $unickname upasswd $upasswd]} else {set auth ""}
set query $postanon$auth&[http::formatQuery op $op sid $sid pid $pid posttype $posttype rlogin $rlogin formkey $formkey postersubj $postersubj]&[http::formatQuery postercomment $postercomment]
if {$submit} { puts "Submitting now..." }
if {[catch {set token [http::geturl http://slashdot.org/comments.pl? -query $query]} catch_error ]} { puts "FATAL: unable to POST query. $catch_error";exit}
upvar #0 $token state
### write out results
if {$submit} { regexp "Comment Submitted" $state(body) match_three } else { regexp "<H2>Preview Comment</H2>" $state(body) match_three }
if {![info exists match_three] || ![string compare $match_three ""]} { set success "Rejected" } else { set success "Accepted" }
if {$submit && $success == "Accepted" } { regexp {cid=([0-9]+)\"} $state(body) match4 cid; set cidtext "as_[set cid]" } else { set cidtext "Preview" }
set filename "story_[set sid]_replyto_[set pid]_[set cidtext].html"
if {[catch {set fp [open $filename w]} catch_error]} { puts "ERROR: Unable to open output file. $catch_error" } else {
puts $fp $state(body)
close $fp
}
set error_message "(grep for error text failed)"
if {$success == "Rejected" } { regexp {[ \n]*(.+?)[ \n]*} $state(body) match_five error_message; puts "REJECTED: $error_message" }
puts "END. Your $op was [set success]. Output to disk as\n$filename"

haiku (-1, Troll)

Anonymous Coward | more than 11 years ago | (#3710670)

helicopter crash
dead flesh stinking charred flesh
freebsd death

Features? (1, Funny)

Sponge Bath (413667) | more than 11 years ago | (#3710751)

Is this the version with the Hurd kernel, runs on computers with nanotube transistor technology, and comes with Duke-Nukem Forever bundled?

Or is that version 5.0?

FreeBSD sucks (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#3710783)

FreeBSD is not stable. This is a legend. My company has a bunch of FreeBSD web servers, and they are crashing like hell. Remove the keyboard, plug it in again, and it doesn't work any more, wow.

And no, FreeBSD isn't fast. The filesystem is damn slow, and unreliable, even with softupdates. And don't expect to have a lot of files in the same directory, you would hurt it.

Linux is way better. Does FreeBSD have ReiserFS, XFS and Intermezzo? No. Does FreeBSD handle SMP? Very poorly (one giant lock, ahaahah, how scalable) . Is FreeBSD portable? No, this is the least portable of all BSD. Is FreeBSD standard conformant? No, Linux is way more POSIX conformant, the GNU Libc is extremely modern and complete.

And what about the ports collection? Yes, "ports", because they are just some lucky Linux software that were ported to FreeBSD. They need experimental tweaks to work, while any free software will work on Linux.

Internationalisation? Forget it.

Ease of installation? Good joke. FreeBSD installer looks like a Slackware installer 7 years ago.

Multimedia? Another good joke. Where's Alsa? Ah yeah, there's OSS, but it's commercial, and the API sucks compared to Alsa's.

Clustering software? On FreeBSD? Ahahaah no sorry, if you want serious clusters, you have to use Linux.

Great packaging system? No. If you like the way it downloads and compiles stuff, try Gentoo Linux, and you will realize that FreeBSD packaging system is really poor.

FreeBSD will die. It was fun 10 years ago. But we're in 2002, and it's just ridiculous nowadays.

Re:FreeBSD sucks (2)

Leimy (6717) | more than 11 years ago | (#3710809)

So why did you read the article... why did you bother to comment? Everything you wrote smells of asshole.

Bad day bad day! (2)

AndroidCat (229562) | more than 11 years ago | (#3710932)

Well I certainly picked the wrong day to install FreeBSD! The FTP site was jammed, so I surfed over to Slashdot and .. D'OH! New release ..

And I was looking forward to adding a 486/66 to my RC5 efforts! :^) (Hey, I need something to plug all my old ISA cards into.)

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...