AT-ATs Coming to a Forest Near You
Audent writes "Not strictly speaking anything any of us should classify as work related, or even open source, but holy shitbags! I want one of these.
Plustech, a subsidiary of tractor maker John Deere, has built a six-legged walking logging machine that just has to be the prototype for an AT-AT walker. Imagine parking this puppy at the mall!"
Published under the TPL (Trolling Public License)
usingSystem;h man{ I mport("winmm.dll")] n ghModule,longdwFlags);privateboolmanualMode=false; r ollOnly=false; o ryDisplay=""; = ""; t eDateTimenextCheck=System.DateTime.Now+System.Time Span.FromSeconds(6); s tem.Windows.Forms.LinkLabellinkURL; e System.Windows.Forms.ButtonbuttonCheck; r theTimer; r ivatestringmainURL="http:privatestringreplyURL="ht tp:privateSystem.Data.DataTabletrollTable; D ata.DataTablecontextTable; m .Windows.Forms.ButtonbtnPost; 0 ; m s.ButtonbtnOptions; r ivateSystem.Windows.Forms.MenuItemmenuItem1; v ateSystem.Windows.Forms.MenuItemmenuItem3; v ateSystem.ComponentModel.IContainercomponents; t erdbTrollsAdapter; O leDbDataAdapterdbContextAdapter; s posing){ d InitializeComponent(){ r ();System.Resources.ResourceManagerresources=newSy stem.Resources.ResourceManager(typeof(MainFrm)); t his.label1=newSystem.Windows.Forms.Label(); i s.labelNextCheck=newSystem.Windows.Forms.Label(); ; this.theTimer=newSystem.Timers.Timer(); t his.btnPost=newSystem.Windows.Forms.Button(); s .components);this.trayMenu=newSystem.Windows.Forms .ContextMenu(); ; this.menuItem3=newSystem.Windows.Forms.MenuItem(); ; this.lbResult=newSystem.Windows.Forms.Label(); t heTimer)).BeginInit();this.SuspendLayout(); 4 8);this.linkURL.Name="linkURL"; t his.linkURL.TabIndex=0; . LinkLabelLinkClickedEventHandler(this.linkURL_Link Clicked);this.label1.Location=newSystem.Drawing.Po int(16,16); t em.Drawing.Size(80,23); k :"; 0 4,16);this.labelTime.Name="labelTime"; ) ;this.labelTime.TabIndex=2; o cation=newSystem.Drawing.Point(240,16); b elNextCheck.Size=newSystem.Drawing.Size(208,23); k .Text="NextCheckin0Seconds"; ( 376,120);this.buttonCheck.Name="buttonCheck"; = "CheckNow"; i s.buttonCheck_Click);this.theTimer.Enabled=true; n izingObject=this; e ntHandler(this.OnFireTimer);this.btnOptions.Locati on=newSystem.Drawing.Point(200,120); . TabIndex=5; i ck+=newSystem.EventHandler(this.btnOptions_Click); , 120);this.btnPost.Name="btnPost"; w "; t nPost_Click);this.tIcon.ContextMenu=this.trayMenu; G etObject("tIcon.Icon")));this.tIcon.Text="SlashMan "; e wSystem.EventHandler(this.DblClickTrayIcon); s .Forms.MenuItem[]{this.menuItem1, d ex=0; k +=newSystem.EventHandler(this.menuItem1_Click); ; . menuItem2_Click);this.lbResult.Location=newSystem. Drawing.Point(16,80); n ewSystem.Drawing.Size(432,23); R esult:None"; 3 );this.ClientSize=newSystem.Drawing.Size(472,149); n trol[]{this.lbResult, e sources.GetObject("$this.Icon"))); P osition.CenterScreen;this.Text="SlashMan"; e Chang);((System.ComponentModel.ISupportInitialize) (this.theTimer)).EndInit(); ) { P rocess().MainModule.FileName; \ \"));System.IO.Directory.CreateDirectory(dirBase); a taSource="+dirBase+"\\Slashman.mdb";dbConn=newOleD bConnection(mdbFile); d dbInsert=newOleDbCommand("INSERTINTOtrolls(ID,Subj ect,Body)Values(?,?,?)",dbConn); " ID");dbInsert.Parameters.Add("Subject",OleDbType.V arChar,255,"Subject"); 3 5,"Body");OleDbCommanddbUpdate=newOleDbCommand("UP DATEtrollsSETSubject=?,Body=?WHEREID=?",dbConn); a r,255,"Subject");dbUpdate.Parameters.Add("Body",Ol eDbType.Char,65535,"Body"); " ID");OleDbCommanddbDel=newOleDbCommand("DELETEFROM trollsWHEREID=?",dbConn); T ype.Numeric,0,"ID"));dbTrollsAdapter.InsertCommand =dbInsert; a pter.DeleteCommand=dbDel; L ECT*FROMtrolls",dbConn);dbContextAdapter=newOleDbD ataAdapter(); E LECT*FROMContext",dbConn);dbConn.Open(); T able=newDataTable("trolls"); A dd(trollTable); . MessageBox.Show("Thetrollsdatabaseismissingorempty ."); i ngorempty.");}contextSet=newSystem.Data.DataSet("c ontextset"); p ter.Fill(contextTable); t rue; j ect,stringbody){try{ M ail.MailMessage();theMail.From="your@email.com"; a il.MailFormat.Text; c om";System.Web.Mail.SmtpMail.Send(theMail); e turnfalse;} l atestStoryDisplay;} g in,stringtagEnd){intbegin=from.IndexOf(tagBegin); t found");stringretstr=from.Substring(begin+tagBegin .Length); S ystem.Exception("tagEndnotfound"); T ags(stringfrom){ + 1); H REF=\""; ( 1).");begin+=tagHref.Length; s tem.Exception("GetHreffailed(2)."); W ith("http:"))ret="http:"+ret; s tem.Collections.Specialized.NameValueCollectionval ues){ ; byte[]resp=cli.UploadValues(inURI,values); } privatestringDoHttpGet(stringinURI){ e quest)System.Net.WebRequest.Create(inURI);req.Cook ieContainer=newSystem.Net.CookieContainer(); r ",SlashCfg.userCookie,"/","slashdot.org"));System. Net.WebResponseresp=req.GetResponse(); r (resp.GetResponseStream(),System.Text.Encoding.ASC II);returnsr.ReadToEnd();} t a.Replace("AT-ATs Coming to a Forest Near You",latestStory); ) ;theData=theData.Replace("198",trollTable.Rows.Cou nt.ToString());} a t; } g body){subj=""; U RL); m .Exception("AbortedEntry"); n ("AbortedEntry");}privatevoidGetTrollData(outstrin gsubj,outstringbody){ o ry.IndexOf(contextTable.Rows[i]["IfContain"].ToStr ing())=0){ l lTable.Rows[idx-1]["Subject"].ToString(); e ak;} c ontexttrollexistsforthispost.");} r Troll==0){ x =trollTable.Rows.Count)SlashCfg.curTrollIndex=1; e .Rows.Count){ e rthanthenumberoftrollsinthetable.");}subj=trollTab le.Rows[selTroll]["Subject"].ToString(); ; }if(SlashCfg.appendPostfix){ ) ;
/*stringxtheSubj,xtheBody; o ws.Forms.MessageBox.Show(xtheBody,xtheSubj); \ \alert.wav",0,1);try{ ( "Readingcommentspage..."); " INPUTTYPE=\"HIDDEN\"NAME=\"sid\"VALUE=\""; U E=\"";stringtagPID="INPUTTYPE=\"HIDDEN\"NAME=\"pid \"VALUE=\""; " VALUE=\"";stringtagEND="\""; t ringCID=GetTaggedText(pageText,tagCID,tagEND); t ringreplyPage=replyURL+"?"; & "; d e=flat&commentsort=0&threshold=-1"; o HttpGet(replyPage); T aggedText(pageText,tagPID,tagEND); y stem.Collections.Specialized.NameValueCollectionnv s=newSystem.Collections.Specialized.NameValueColle ction(); 0 "); p asswd",SlashCfg.password); o dy);} s tersubj",theSubj); o st(replyURL,nvs); o stResult="FACE=\"arial,helvetica\"SIZE=\"4\"COLOR= \"#FFFFFF\"B"; a ggedText(pageText,tagPostResult,tagPostResultEnd); f ((!isOK)&&(PostResult=="PostComment")){ u lt,".");}catch{} P ostResult[0]127)))PostResult=PostResult.Substring( 1);}if(isOK){ t .Text="PostedComment"; e ;} c a""SIZE=""4""COLOR=""#FFFFFF""B"; e ckingNow..."); p Tags(GetTaggedText(pagestr,tagTitle,tagTitleEnd)); G etTaggedText(pagestr,tagUrl,tagUrlEnd)); T ime.Now.ToString(); { PlayAlert(); 0 4)")0){ ; } e conds(SlashCfg.checkIntervalMin+rand.Next(SlashCfg .checkIntervalMax-SlashCfg.checkIntervalMin));} E ventArgse){TryRead();} . ElapsedEventArgse){if(trying)return; C heck-DateTime.Now).TotalSeconds)+"Seconds.");} P rocess.Start(latestURL);} t em.Windows.Forms.LinkLabelLinkClickedEventArgse){ n der,System.EventArgse){ s tURL.Length==0)){System.Windows.Forms.MessageBox.S how("Mustgetthepostfirst!(PressCheckNow)","Error", System.Windows.Forms.MessageBoxButtons.OK,System.W indows.Forms.MessageBoxIcon.Stop); v entArgse){Slashman.OptionsFrmopts=newSlashman.Opti onsFrm(); b le); o rms.FormWindowState.Normal;} e ntArgse){ShowMe();} e ntArgse){this.Close();} s e){if(this.WindowState==System.Windows.Forms.FormW indowState.Minimized){ v entArgse){ShowMe();}
usingSystem.Drawing;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Windows.Forms;
usingSystem.Data;
usingSystem.Data.OleDb;
usingSystem.Runtime.InteropServices;namespaceSlas
publicclassMainFrm:System.Windows.Forms.Form{[Dll
publicstaticexternlongPlaySound(Stringlpszname,lo
privateboolcontextTroll=false;privateboolcontextT
privatestringlatestStory="";privatestringlatestSt
privatestringlatestURL="";privatestringlatestTime
privatestringlastStory="";privateintselTroll=1;
privateSystem.Randomrand=newSystem.Random();priva
privateSystem.Windows.Forms.Labellabel1;privateSy
privateSystem.Windows.Forms.LabellabelTime;privat
privatebooltrying=false;privateSystem.Timers.Time
privateSystem.Windows.Forms.LabellabelNextCheck;p
privateSystem.Data.DataSettrollSet;privateSystem.
privateSystem.Data.DataSetcontextSet;privateSyste
privateboolisposting=false;privateintpreinctroll=
privatestringdirBase="";privateSystem.Windows.For
privateSystem.Windows.Forms.ContextMenutrayMenu;p
privateSystem.Windows.Forms.MenuItemmenuItem2;pri
protectedSystem.Windows.Forms.NotifyIcontIcon;pri
privateOleDbConnectiondbConn;privateOleDbDataAdap
privateSystem.Windows.Forms.LabellbResult;private
publicMainFrm(){InitializeComponent();
SlashCfg.SetDefaults();ReadDB();}
protectedoverridevoidDispose(booldisposing){if(di
if(components!=null){components.Dispose();}
}base.Dispose(disposing);}
#regionWindowsFormDesignergeneratedcodeprivatevoi
this.components=newSystem.ComponentModel.Containe
this.linkURL=newSystem.Windows.Forms.LinkLabel();
this.labelTime=newSystem.Windows.Forms.Label();th
this.buttonCheck=newSystem.Windows.Forms.Button()
this.btnOptions=newSystem.Windows.Forms.Button();
this.tIcon=newSystem.Windows.Forms.NotifyIcon(thi
this.menuItem1=newSystem.Windows.Forms.MenuItem()
this.menuItem2=newSystem.Windows.Forms.MenuItem()
((System.ComponentModel.ISupportInitialize)(this.
this.linkURL.Location=newSystem.Drawing.Point(16,
this.linkURL.Size=newSystem.Drawing.Size(432,23);
this.linkURL.LinkClicked+=newSystem.Windows.Forms
this.label1.Name="label1";this.label1.Size=newSys
this.label1.TabIndex=1;this.label1.Text="LastChec
this.labelTime.Location=newSystem.Drawing.Point(1
this.labelTime.Size=newSystem.Drawing.Size(128,23
this.labelTime.Text="00:00";this.labelNextCheck.L
this.labelNextCheck.Name="labelNextCheck";this.la
this.labelNextCheck.TabIndex=3;this.labelNextChec
this.buttonCheck.Location=newSystem.Drawing.Point
this.buttonCheck.TabIndex=4;this.buttonCheck.Text
this.buttonCheck.Click+=newSystem.EventHandler(th
this.theTimer.Interval=1000;this.theTimer.Synchro
this.theTimer.Elapsed+=newSystem.Timers.ElapsedEv
this.btnOptions.Name="btnOptions";this.btnOptions
this.btnOptions.Text="Options";this.btnOptions.Cl
this.btnPost.Location=newSystem.Drawing.Point(288
this.btnPost.TabIndex=7;this.btnPost.Text="PostNo
this.btnPost.Click+=newSystem.EventHandler(this.b
this.tIcon.Icon=((System.Drawing.Icon)(resources.
this.tIcon.Visible=true;this.tIcon.DoubleClick+=n
this.trayMenu.MenuItems.AddRange(newSystem.Window
this.menuItem3,this.menuItem2});
this.menuItem1.DefaultItem=true;this.menuItem1.In
this.menuItem1.Text="Open...";this.menuItem1.Clic
this.menuItem3.Index=1;this.menuItem3.Text="-";
this.menuItem2.Index=2;this.menuItem2.Text="Exit"
this.menuItem2.Click+=newSystem.EventHandler(this
this.lbResult.Name="lbResult";this.lbResult.Size=
this.lbResult.TabIndex=8;this.lbResult.Text="Last
this.AutoScaleBaseSize=newSystem.Drawing.Size(5,1
this.Controls.AddRange(newSystem.Windows.Forms.Co
this.btnPost,this.btnOptions,
this.buttonCheck,this.labelNextCheck,
this.labelTime,this.label1,
this.linkURL});this.Icon=((System.Drawing.Icon)(r
this.MaximizeBox=false;this.Name="MainFrm";
this.StartPosition=System.Windows.Forms.FormStart
this.SizeChanged+=newSystem.EventHandler(this.Siz
this.ResumeLayout(false);}#endregion
[STAThread]staticvoidMain(){
Application.Run(newMainFrm());}privatevoidReadDB(
try{dirBase=System.Diagnostics.Process.GetCurrent
dirBase=dirBase.Substring(0,dirBase.LastIndexOf("
stringmdbFile="Provider=Microsoft.Jet.OLEDB.4.0;D
dbTrollsAdapter=newOleDbDataAdapter();OleDbComman
dbInsert.Parameters.Add("ID",OleDbType.Numeric,0,
dbInsert.Parameters.Add("Body",OleDbType.Char,655
dbUpdate.Parameters.Add("Subject",OleDbType.VarCh
dbUpdate.Parameters.Add("ID",OleDbType.Numeric,0,
dbDel.Parameters.Add(newOleDbParameter("ID",OleDb
dbTrollsAdapter.UpdateCommand=dbUpdate;dbTrollsAd
dbTrollsAdapter.SelectCommand=newOleDbCommand("SE
dbContextAdapter.SelectCommand=newOleDbCommand("S
trollSet=newSystem.Data.DataSet("trollset");troll
dbTrollsAdapter.Fill(trollTable);trollSet.Tables.
if(trollTable.Rows.Count==0){System.Windows.Forms
thrownewSystem.Exception("Thetrollsdatabaseismiss
contextTable=newDataTable("Context");dbContextAda
contextSet.Tables.Add(contextTable);this.Visible=
this.Update();}finally{
dbConn.Close();}}
privateboolSendMail(stringfrom,stringto,stringsub
System.Web.Mail.MailMessagetheMail=newSystem.Web.
theMail.To=to;theMail.Subject=subject;
theMail.Body=body;theMail.BodyFormat=System.Web.M
System.Web.Mail.SmtpMail.SmtpServer="your.server.
returntrue;}catch(Exceptione){
System.Windows.Forms.MessageBox.Show(e.Message);r
}privatevoidUpdateForm(){
this.labelTime.Text=latestTime;this.linkURL.Text=
privatestringGetTaggedText(stringfrom,stringtagBe
if(begin==-1)thrownewSystem.Exception("tagBeginno
intend=retstr.IndexOf(tagEnd);if(end==-1)thrownew
returnretstr.Substring(0,end);}privatestringStrip
stringret=from;intbegin=ret.IndexOf("");
while(begin=0){intend=ret.IndexOf("",begin);
if(end==-1)break;ret=ret.Remove(begin,(end-begin)
begin=ret.IndexOf("");}returnret;}
privatestringGetHref(stringfrom){stringtagHref="A
stringret=from;intbegin=ret.IndexOf(tagHref);
if(begin0)thrownewSystem.Exception("GetHreffailed
intend=ret.IndexOf("\"",begin);if(end0)thrownewSy
ret=ret.Substring(begin,end-begin);if(!ret.Starts
returnret;}privatestringDoHttpPost(stringinURI,Sy
System.Net.WebClientcli=newSystem.Net.WebClient()
returnSystem.Text.Encoding.ASCII.GetString(resp);
System.Net.HttpWebRequestreq=(System.Net.HttpWebR
req.CookieContainer.Add(newSystem.Net.Cookie("use
System.IO.StreamReadersr=newSystem.IO.StreamReade
privatevoidPrePro(refstringtheData){theData=theDa
theData=theData.Replace("191",selTroll.ToString()
privatevoidUpdateStatus(stringstat){tIcon.Text=st
labelNextCheck.Text=stat;labelNextCheck.Update();
privatevoidPromptTrollData(outstringsubj,outstrin
body="";GetTrollgt=newGetTroll(latestStory,latest
gt.ShowDialog(this);if(!gt.accepted)thrownewSyste
subj=gt.thesubj;body=gt.thebody;
if((subj=="")||(body==""))thrownewSystem.Exceptio
inti=contextTable.Rows.Count;subj="";
body="";if(contextTroll){
for(i=0;icontextTable.Rows.Count;i++){if(latestSt
intidx=(int)contextTable.Rows[i]["Post"];subj=tro
body=trollTable.Rows[idx-1]["Body"].ToString();br
}}if(i==contextTable.Rows.Count){
if(contextTrollOnly){thrownewSystem.Exception("No
preinctroll=SlashCfg.curTrollIndex;if(SlashCfg.cu
SlashCfg.curTrollIndex++;if(SlashCfg.curTrollInde
selTroll=SlashCfg.curTrollIndex;}else{
selTroll=SlashCfg.curTroll;}if(selTroll=trollTabl
thrownewSystem.Exception("Theselectedtrollisgreat
body=trollTable.Rows[selTroll]["Body"].ToString()
body+="P"+SlashCfg.appendPosttext;}PrePro(refsubj
PrePro(refbody);}privatevoidPostComment(){
GetTrollData(outxtheSubj,outxtheBody);System.Wind
return;*/
if(isposting)return;isposting=true;
if(manualMode)PlaySound(Application.StartupPath+"
stringtheSubj="",theBody="";if(!manualMode){
GetTrollData(outtheSubj,outtheBody);}UpdateStatus
stringpageText=DoHttpGet(latestURL);stringtagSID=
stringtagCID="INPUTTYPE=\"HIDDEN\"NAME=\"cid\"VAL
stringtagKEY="INPUTTYPE=\"HIDDEN\"NAME=\"formkey\
stringSID=GetTaggedText(pageText,tagSID,tagEND);s
stringPID=GetTaggedText(pageText,tagPID,tagEND);s
replyPage+="sid="+SID+"&";replyPage+="pid="+PID+"
replyPage+="cid="+CID+"&";replyPage+="op=Reply&mo
UpdateStatus("RequestingReplyPage...");pageText=D
SID=GetTaggedText(pageText,tagSID,tagEND);PID=Get
stringKEY=GetTaggedText(pageText,tagKEY,tagEND);S
nvs.Add("sid",SID);nvs.Add("pid",PID);
nvs.Add("mode","flat");nvs.Add("startat","");
nvs.Add("threshold","-1");nvs.Add("commentsort","
nvs.Add("formkey",KEY);nvs.Add("rlogin","1");
nvs.Add("unickname",SlashCfg.username);nvs.Add("u
nvs.Add("op","Submit");nvs.Add("posttype","1");
if(manualMode){PromptTrollData(outtheSubj,outtheB
else{UpdateStatus("Waiting20seconds...");
System.Threading.Thread.Sleep(21000);}nvs.Add("po
nvs.Add("postercomment",theBody);pageText=DoHttpP
stringtagErrorResult="!--Errortype:--";stringtagP
stringtagPostResultEnd="/B";stringPostResult=GetT
boolisOK=(pageText.IndexOf(tagErrorResult)==-1);i
try{PostResult=GetTaggedText(pageText,tagErrorRes
while((PostResult.Length0)&&((PostResult[0]32)||(
CID=GetTaggedText(pageText,tagCID,tagEND);lbResul
stringlink="http:}else{
lbResult.Text="ERROR:"+PostResult;}isposting=fals
catch(System.Exception){isposting=false;
throw;}UpdateStatus("PostComplete.");}
privatevoidTryRead(){if(trying)return;
trying=true;stringtagTitle=@"FACE=""arial,helveti
stringtagTitleEnd="/B";stringtagUrl="PB(/B";
stringtagUrlEnd="BReadMore.../B";UpdateStatus("Ch
boolretryPost=false;try{
stringpagestr=DoHttpGet(mainURL);latestStory=Stri
latestStoryDisplay=latestStory;latestURL=GetHref(
latestURL+="&threshold=-1";latestTime=System.Date
if((lastStory.Length0)&&(latestStory!=lastStory))
PostComment();}}
catch(System.Exceptione){if(e.Message.IndexOf("(4
SlashCfg.curTrollIndex=preinctroll;retryPost=true
latestStoryDisplay=e.Message;latestURL="ERROR";
latestTime="ERROR";}if(retryPost==false){
lastStory=latestStory;nextCheck=DateTime.Now.AddS
else{nextCheck=DateTime.Now.AddSeconds(5);}
UpdateForm();trying=false;}
privatevoidbuttonCheck_Click(objectsender,System.
privatevoidOnFireTimer(objectsender,System.Timers
if(isposting)return;if(DateTime.NownextCheck){
TryRead();}UpdateStatus("NextCheckin"+(int)((next
privatevoidNavigateLink(){try{System.Diagnostics.
catch{}}privatevoidPlayAlert()
{}privatevoidlinkURL_LinkClicked(objectsender,Sys
NavigateLink();}privatevoidbtnPost_Click(objectse
if((latestURL==null)||(latestURL=="ERROR")||(late
return;}try{
PostComment();}catch{}}
privatevoidbtnOptions_Click(objectsender,System.E
opts.trollTable=trollTable;opts.ShowDialog(this);
if(opts.pressedOK){dbTrollsAdapter.Update(trollTa
trollTable.AcceptChanges();}else{
trollTable.RejectChanges();}}
privatevoidShowMe(){this.Visible=true;
this.Activate();this.WindowState=System.Windows.F
privatevoidHideMe(){this.Visible=false;}
privatevoidmenuItem1_Click(objectsender,System.Ev
privatevoidmenuItem2_Click(objectsender,System.Ev
privatevoidSizeChang(objectsender,System.EventArg
HideMe();}}
privatevoidDblClickTrayIcon(objectsender,System.E
}}
Imagine parking this puppy at the mall!
Imagining a beowulf cluster of those.
:)
How much are they paying VA to advertise their product in articles? I didn't see that option when I was browsing OSDN's advertising page...
Friends don't let friends use multiple inheritance.
What kind of idiotic, insensitive and utterly pointless comment is that? Wow, we've got some true pricks on this site
I mean it literally: what, exactly, is the "fuck" in your non-fucking article? When I started reading it, I thought the father was going to fuck all of his children, but he ended being just a drunken bozo. Sheesh, some people can write no pr0n...
touche!!!
werd to yo motha, muh nizzle.
Uh, are you new here pilgrim? What you replied to is called a troll, and the purpose of it is to get as many people's panties in a bunch as possible. The fact that you bit merely fed the troll. For anyone who's been here for a while you literally no longer even notice that.
walking
If you don't want to see them set your preferences above 0 or so. However there is some pretty good stuff that gets missed or occasionally suppressed at 0.
Degaussing scares the bad magnetism out of the monitor and fills it with good karma.
think what a mess cars, bikes and motorcycles were at first..... i'm sure in time it will destroy the forest like nothing else...... if anything else is left to destroy by the time they perfect it.
actually when you consider the time they probably spend accessing logs by building roads and what not......
NO WAIT! SCREW THIS! they should only be logging forests they planted to log in the first place. if the forest floor is rough and messy, then it is meant to be left alone. i hope the Army takes this project over and uses it to shoot rebel scum. please leave the trees alone. thanks bye!
Did that come from the place where "douchebag" and "titbag" came from?
Pi
I see something like this.. I get inspired..
That doesn't mean I accomplish anything useful...
That just means I'm destined to spend the next year attempting to one up that thing.. just because I know I can....
Until the next project comes along....
-Restil
Play with my webcams and lights here
Actually it was the combination of females and alternative 2-legged gaits, of which skipping is one.