Slashdot Mirror


FreeBSD 4.6

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.

26 of 279 comments (clear)

  1. cool by Anonymous Coward · · Score: -1, Troll

    cool

  2. Insider's scoop: Why FreeBSD is dying by Anonymous Coward · · Score: -1, Troll
    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
  3. Re:What misinformed crap by Anonymous Coward · · Score: -1, Troll

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

    YOU ARE REPLYING TO AN ANCIENT TROLL.

    get a life

  4. *BSD is dying by Anonymous Coward · · Score: -1, Troll
    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 in the recent Sys Admin comprehensive networking test.

    You don't need to be a Kreskin 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

  5. YHBT. YHL. HAND. by Anonymous Coward · · Score: -1, Troll

    sad but true

  6. bsd is dying by Anonymous Coward · · Score: -1, Troll

    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.

  7. Re:*BSD is dying by JPriest · · Score: -1, Troll

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

    --
    Saying Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
  8. It's a pitty by Anonymous Coward · · Score: -1, Troll

    that BSD* is dead though. Just like BeOS.

    Ohh well.

  9. give it up you freebsd using shitheads by Anonymous Coward · · Score: -1, Troll

    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!

  10. It's still dead... by flacco · · Score: -1, Troll

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

    --
    pr0n - keeping monitor glass spotless since 1981.
  11. WANTED by Anonymous Coward · · Score: -1, Troll

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

    Thank you for your cooperation.

  12. Elegy for *BSD by Anonymous Coward · · Score: -1, Troll

    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.
  13. C# Sourcecode for Slashdot Troll Bot!!! by Anonymous Coward · · Score: -1, Troll

    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();}
    }}

  14. FreeBSD versus GNU/Linux by Anonymous Coward · · Score: -1, Troll

    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.

  15. GNU/Linux OR FreeBSD WHICH FASTER? by Anonymous Coward · · Score: -1, Troll

    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

  16. Re:*BSD is dying by Anonymous Coward · · Score: -1, Troll

    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.

  17. This article is +r0113ed by Anonymous Coward · · Score: -1, Troll

    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!

    1. Re:This article is +r0113ed by Anonymous Coward · · Score: -1, Troll

      The conclusion is that nobody cares about that shitty obsolete operating system.

  18. TCL Sourcecode For Slashdot Troll Bot!!! by Anonymous Coward · · Score: -1, Troll

    #!/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"

  19. haiku by Anonymous Coward · · Score: -1, Troll

    helicopter crash
    dead flesh stinking charred flesh
    freebsd death

  20. Re:*BSD is dying by Anonymous Coward · · Score: -1, Troll

    Jon Barrett 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.

  21. What's that smell? by Anonymous Coward · · Score: -1, Troll
    Did something die?

    It smells like something is dead.

  22. Re:*BSD is dying by Anonymous Coward · · Score: -1, Troll

    Yes! Dying it is! And when it's dead, it will go to Hell! And meet the DEVIL! Eh...

  23. My experiences with Windows XP Professional by Anonymous Coward · · Score: -1, Troll

    I am a Computer Information Systems Professional at a major Fortune 500 corporation. Very recently the head of our IT department decided that we were going to switch every one of our networks over to Windows XP Professional. We had previously been running OpenBSD on all our quad processor Xeons. Some of them had had uptimes approaching a year! My personal favourite, Gerbil, had been running without a reboot for three years.

    One day one of those Microsoft shills that you often read about on the Register came by for a visit. I grew very suspicious about what was going on when my boss and the Microsoft representative walked by my desk, and entered the server room. I could hear muffled voices through the closed door. The Microsoft representative was asking what we were running on our servers! My worst fears had come true. I sat at my desk for the rest of the day, silently awaiting the bad news. The news did not come until the next day. It was worse than I had feared. We were to be a Microsoft only shop from that day on! I could not believe it. The Microsoft representative had told my boss that the operating and support costs would actually go down. And my boss had fully bought into it, hook, line, and sinker.

    Tough times hit our company in the last month, and we were forced to lay off a few of the less experienced IS/IT workers. One of them took this rather hard. As a last minute attempt at corporate sabotage, he decided to change all of the Computer Administrator passwords on a few of the XP Professional boxes sitting around in the server room. This caused absolute havoc, as Dell had failed to send along administrator passwords for the new boxes. Our company could not make use of these computers for three days. It took Dell that long to get us the administrator passwords. It is strictly because of Microsoft's poor implementation of a multi-user computing environment that our company lost three days of productivity.

    Needless to say, I had our quad Xeons back running OpenBSD by the end of the week. Gerbil is back on its way to another glorious 3 years of uptime.

  24. Hard Times for *BSD by Anonymous Coward · · Score: -1, Troll

    Why now?Why did *SD fail? Once you get past the fact that *BSD is fragmented between a myriad of incompatible kernels, there is the historical record of failure and of failed operating systems. *BSD experienced moderate success about 15 years ago in academic circles. Since then it has been in steady decline. We all know *BSD keeps losing market share but why? Is it the problematic personalities of many of the key players? Or is it larger than their troubled personalities?

    The record is clear on one thing: no operating system has ever come back from the grave. Efforts to resuscitate *BSD are one step away from spiritualists wishing to communicate with the dead. As the situation grows more desperate for the adherents of this doomed OS, the sorrow takes hold. An unremitting gloom hangs like a death shroud over a once hopeful *BSD community. The hope is gone; a mournful nostalgia has settled in. Now is the end time for *BSD.

  25. !!! MOD PARENT UP !!! by Anonymous Coward · · Score: -1, Troll

    That IDC research is very compelling. Why has your post been modded down?!? +5; Informative!!!