<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-27947907</id><updated>2011-12-06T18:30:29.357+02:00</updated><category term='ruby'/><category term='Unit testing'/><category term='wiki'/><category term='Mocking'/><category term='proxy'/><category term='tfs'/><category term='poem'/><category term='profanity'/><category term='admin'/><category term='funny'/><category term='blog hacks'/><category term='my projects'/><category term='satanism'/><category term='settings'/><category term='hell'/><category term='msbuild'/><category term='ASP.NET MVC'/><category term='tasks'/><category term='C++'/><category term='encryption'/><category term='configuration'/><category term='issues'/><category term='Half-Life'/><category term='windows'/><category term='discussions'/><category term='line control'/><category term='productivity'/><category term='death and resurrection'/><category term='prayer'/><category term='backup'/><category term='christianity'/><category term='linux'/><category term='scripting'/><category term='generators'/><category term='testimony'/><category term='java'/><category term='programming'/><category term='bible-study'/><category term='Moles'/><category term='libraries'/><category term='misc'/><category term='BATCH'/><category term='databases'/><category term='AutoIT'/><category term='C#'/><category term='Speculation'/><category term='websites'/><category term='WCF'/><category term='software'/><category term='automation'/><category term='spiritual growth'/><title type='text'>LA's Blog</title><subtitle type='html'>Lessons, knowledge snippets and personal growth, all fine tuned by God's hands and redeemed through Christ's work on the cross for all to see and share.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>100</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27947907.post-4834468317123710164</id><published>2011-11-09T20:05:00.001+02:00</published><updated>2011-11-10T07:42:48.901+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='libraries'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Renewal Project's WCF Extensions Library</title><content type='html'>Hi all&lt;br /&gt;&lt;br /&gt;Just wanted to announce that I've released a beta-version of my WCF Extensions Library on my CodePlex project called Renewal Projects. Check out the documentation section for more info. I think WCF users in the .NET space may want to have a look at this as it might prove useful in the long run as it contains a Channel Repository, Channel Pool and the possibility to have WCF channels hosted in a IOC container.&lt;br /&gt;Its in BETA at the moment but testers are welcome to try it out.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://renewalprojects.codeplex.com/" target="_blank"&gt;http://renewalprojects.codeplex.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-4834468317123710164?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/4834468317123710164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=4834468317123710164&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4834468317123710164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4834468317123710164'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2011/11/renewal-projects-wcf-extensions-library.html' title='Renewal Project&apos;s WCF Extensions Library'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-8509971667211241123</id><published>2011-11-02T21:45:00.002+02:00</published><updated>2011-11-09T20:07:09.221+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>MVC 2 Hidden Helper Extension</title><content type='html'>I don't know if you've ever needed to store an entire entity object inside a html page using the hidden form fields but for some reason the standard ASP.NET MVC HiddenFor() method doesn't do that. It only seems to work for simple data types such as ints and strings, etc.&lt;br /&gt;So I wrote a little helper method to do just that.&lt;br /&gt;It takes all the entity that you wish to store in your HTML page and iterates over each property and performs a Hidden() method call on them to ensure that all its properties are encoded as hidden fields so that it gets passed back to the Controller Action via the POST method.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;public static MvcHtmlString HiddenEntirelyFor&amp;lt;TModel, TResult&amp;gt; (this HtmlHelper&amp;lt;TModel&amp;gt; htmlHelper, Expression&amp;lt;Func&amp;lt;TModel, TResult&amp;gt;&amp;gt; expression)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; ModelMetadata modelMetadata =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);&lt;br /&gt;&amp;nbsp;&amp;nbsp; List&amp;lt;string&amp;gt; htmlEntries =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; modelMetadata.Properties&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Select(property =&amp;gt; htmlHelper.Hidden(ExpressionHelper.GetExpressionText(expression) + "." + property.PropertyName, property.Model, null))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Select(mvcHtmlString =&amp;gt; mvcHtmlString.ToHtmlString())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ToList();&lt;br /&gt;&amp;nbsp;&amp;nbsp; return MvcHtmlString.Create(String.Join(Environment.NewLine, htmlEntries.ToArray()));&lt;br /&gt;}&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-8509971667211241123?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/8509971667211241123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=8509971667211241123&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8509971667211241123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8509971667211241123'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2011/11/mvc-2-hidden-helper-extension.html' title='MVC 2 Hidden Helper Extension'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2697824969097257789</id><published>2011-09-05T09:05:00.000+02:00</published><updated>2011-09-05T09:05:05.759+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Moles'/><category scheme='http://www.blogger.com/atom/ns#' term='Unit testing'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Mocking'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Moles with Mocking capability</title><content type='html'>Myself and a colleague of mine made a discovery when we started to do some unit test coding with moles that it doesn't have any expectation-functionality like Rhino mocks where you can specify what the incoming parameter values should be for a mocked-class.&lt;br /&gt;&lt;br /&gt;That's when I did some searching on the web for mocking frameworks which might complement the Moles tool-set. I came across this library: &lt;a href="http://simpledotnet.codeplex.com/"&gt;http://simpledotnet.codeplex.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's not the best out there but it does feature one thing that other mocking frameworks (and correct me if I'm wrong) doesn't have and that is delegate mocking. I told my colleague about it and he tried it out... and it worked! It makes coding less and improves readability.&lt;br /&gt;&lt;br /&gt;Now suppose you have a class ClassX that you want to mock.&lt;br /&gt;Now with Moles you can only stub the target type by substituting the behavior with delegates.&lt;br /&gt;With Simple.Net, you first create the expectation scope:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var expectationScope = new ExpectationScope();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then you can create the mock-delegate:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;var getNameMock = Mock.Delegate&amp;lt;MolesDelegates.Func&amp;lt;ClassX, string&amp;gt;&amp;gt;();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now we stub the target class with the mock:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;MClassX.AllInstances.GetName = getNameMock;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now you set some expectations:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Expect.Exaclty(1).MethodCall(() =&amp;gt; getNameMock(Any&amp;lt;ClassX&amp;gt;.Value)).Returns("Fred");&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Run your system under test code:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ClassX x = new ClassX();&lt;br /&gt;Assert.AreEqual("Fred",x.GetName());&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Verify expectations are met:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;AssertExpectations.IsMetFor(expectationScope);&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And now your test should succeed. Please check out the Simple.NET website to see how this mocking framework works.&lt;br /&gt;&lt;br /&gt;Hope this helped someone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2697824969097257789?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2697824969097257789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2697824969097257789&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2697824969097257789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2697824969097257789'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2011/09/moles-with-mocking-capability.html' title='Moles with Mocking capability'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-8984105295338574469</id><published>2011-09-02T19:44:00.001+02:00</published><updated>2011-11-02T22:04:03.668+02:00</updated><title type='text'>Renewal Projects first release</title><content type='html'>Hi there all.&lt;br /&gt;I have been working on my own open-source project for a while now. Its actually going to be a collection of projects but I think you get the idea. I have released my first .NET assemblies on CodePlex (&lt;a href="http://renewalprojects.codeplex.com/"&gt;http://renewalprojects.codeplex.com&lt;/a&gt;):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.NET Encrypted Configuration Viewer&lt;/li&gt;&lt;li&gt;ParamGate application parameter handling library&lt;/li&gt;&lt;/ul&gt;Its the first of many to come (I hope). I am working on it on my own time. Let me know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-8984105295338574469?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/8984105295338574469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=8984105295338574469&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8984105295338574469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8984105295338574469'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2011/09/renewal-projects-first-release.html' title='Renewal Projects first release'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2836723108639068098</id><published>2011-08-17T19:27:00.000+02:00</published><updated>2011-08-17T19:27:21.087+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Moles'/><category scheme='http://www.blogger.com/atom/ns#' term='Unit testing'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Moles, WCF and IDisposable</title><content type='html'>We all have heard of the Moles tool which Microsoft released some time ago which allows one to stub any Type with a custom one (which substitutes the behavior of the original one) for the purpose of writing unit tests a bit easier. I did wonder some time ago if one could use this to stub WCF proxies so that you don't have to create a stubbed service hosts and make changes in your App.config, etc.&lt;br /&gt;Initially it seemed like a dud but when I left it for a while and came back to it later I discovered that the solution is simple but not so obvious. I am not going to cover the basics of Moles, you can google that for yourself, I'm going to cover the necessary steps to get your WCF proxies (or whatever similar case) stubbed for unit testing purposes.&lt;br /&gt;&lt;br /&gt;The problem that I had with Moles and WCF was that the proxy classes inherited from ClientBase (which wasn't the problem) which in turn inherited from IDisposable. Now since a proxy's constructor tries to check the configuration file for proxy configuration, I had to sub the constructor of that proxy with an empty delegate. I managed to stub the proxy call with something that returned a dummy value and running through the tests, it actually stubbed that proxy call which is what I wanted.&lt;br /&gt;This was fine but I had a couple of proxies wrapped around a 'using' statement and at the end of a using statement the proxy's Dispose() method gets called and I got greeted with a nice NullReferenceException. I realised it was because I stubbed the constructor but when I checked for the Dispose method to stub, I couldn't find it anywhere in the generated Moled-Proxy class. That's the part that messed me around.&lt;br /&gt;&lt;br /&gt;After some thinking and some Googling I started to think that I might have to "mole" the System.ServiceModel assembly in order to stub the Disposable method found in the ClientBase&amp;lt;&amp;gt; class. This also had a minor problem. It caused a compiler error but after some Googling someone recommended that I amend the 'System.ServiceModel.moles' file with the following:&lt;br /&gt;Beneath the &amp;lt;Assembly&amp;gt; tag just add the following:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;StubGeneration&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;Types&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Clear/&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Add Namespace="System.ServiceModel.Description!"/&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/Types&amp;gt; &lt;br /&gt;&amp;lt;/StubGeneration&amp;gt; &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;When you compile the unit test project it should finally generate the moled System.ServiceModel assembly and now we can finally stub that method! Now suppose you had a proxy which had the contract of IGeneral, you would stub its Disposable method like so:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;MClientBase&amp;lt;IGeneral&amp;gt;.AllInstances.SystemIDisposableDispose = (c) =&amp;gt; { };&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately you cannot just specify the MClientBase&amp;lt;&amp;gt; without specifying a Type. It will give a compiler error.&lt;br /&gt;&lt;br /&gt;So by using an example unit test:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[TestMethod]&lt;br /&gt;[HostType("Moles")]&lt;br /&gt;public void TestMethod1()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; MGeneralProxy.AllInstances.GetName = (p) =&amp;gt; "Stubbed Name";&lt;br /&gt;&amp;nbsp;&amp;nbsp; MGeneralProxy.Constructor = (p) =&amp;gt; { };&lt;br /&gt;&amp;nbsp;&amp;nbsp; MClientBase&amp;lt;IGeneral&amp;gt;.AllInstances.SystemIDisposableDispose = (c) =&amp;gt; { };&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; using (GeneralProxy p = new GeneralProxy())&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; Assert.AreEqual("Stubbed Name", p.GetName());&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You should be able to successfully run it and stubbing the proxy call for your unit test to work.&lt;br /&gt;the 'using' block should actually be the part where the production code gets executed but for demonstration purposes, I left it as is so that you can get the idea that the proxy gets stubbed as it should.&lt;br /&gt;Here is the rest of the code for some clarity:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public interface IGeneral&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; string GetName();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class GeneralService : IGeneral&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; public string GetName()&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; return "General Name";&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class GeneralProxy : ClientBase&amp;lt;IGeneral&amp;gt;, IGeneral&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; public string GetName()&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; return Channel.GetName();&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} &lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2836723108639068098?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2836723108639068098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2836723108639068098&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2836723108639068098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2836723108639068098'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2011/08/moles-wcf-and-idisposable.html' title='Moles, WCF and IDisposable'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-4391587054379479306</id><published>2011-08-17T19:14:00.000+02:00</published><updated>2011-08-17T19:14:40.459+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Half-Life'/><category scheme='http://www.blogger.com/atom/ns#' term='Speculation'/><category scheme='http://www.blogger.com/atom/ns#' term='discussions'/><title type='text'>My Half-Life  2 Episode 3 speculations</title><content type='html'>I have been watching the web for a while for the anticipated sequel to Half-Life 2 (Episode 3) which has been in the works for quite some time now. Being a Half-Life fan myself, I too can't wait for its release, however many people have been speculating what the story may contain and how it will play out.&lt;br /&gt;If you haven't played Half-Life 2's episodes and you would like to in the near future, then I do would like to give note that there &lt;b&gt;might &lt;/b&gt;be some spoilers in this post. Looking through the web and listening to the developer commentaries, I thought it would actually be pointless to try and speculate what Valve is going to do next because they actually just plan and improvise as they go (which is probably why they take so long on each of their games) but I thought to just throw the stone and see where it hits.&lt;br /&gt;&lt;br /&gt;Some people think that the helicopter ride from White-forest is going to be a cut scene followed by the "unforeseen consequences" that's going to happen when Gordon finally uncovers the secret of what the Borealis might hold and then we find out what happens from there on in the rest of the game.&lt;br /&gt;Now personally, judging on how Valve developed the HL games in the past, I would like to state a different point of view. HL doesn't have cut scenes, you play from the morning you arrived at Black Mesa to the point where you defend the White-forest base, though there is a time lapse of approx. 10 years between HL and HL2 and not to mention the week-slow teleport.&lt;br /&gt;&lt;br /&gt;I would like to present some of the stuff that's already out there, in terms of clues, previous occurrences in HL, interviews, etc. It helps to paint the picture of what to expect.&lt;br /&gt;&lt;br /&gt;I think the helicopter ride (from White-forest) is going to be far from pleasant and quick. They would maybe make a few pit stops along the way, because the arctic is a far way off. They might need to refuel or they might even crash the chopper along the way.&lt;br /&gt;Also there is the head-crab that jumped into the satellite at the end of episode 2 and judging of what happened with Gordon in the beginning of HL 2, you can just imagine what might happen after the launch. Yes the portal between the Combine and earth is closed, but what else might happen? I think that at some point Alex and Gordon is going to be separated again and Gordon is going to be faced with a difficult decision to make (which the story is going to do for you anyway but it gives you the illusion of the choice). &lt;br /&gt;&lt;br /&gt;Would Adrian Shepherd make a comeback or is he totally lost forever? The reason I ask is because at the end of Oposing Force, the case file states:&lt;br /&gt;&lt;i&gt;Status: Detained&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Further evaluation pending.&lt;/i&gt;&lt;br /&gt;There is also a &lt;a href="http://www.youtube.com/watch?v=T5u0rAKTLH0&amp;amp;feature=related"&gt;YouTube&lt;/a&gt; video depciting the keyboard found on the background of Portal 1 (once you've finished the game) has all the necessary keys highlighted which (when put together) forms "Adrian Shepherd". Could that be an indication of something? Also, Barney never spoke in BlueShift but they gave him a voice in HL2. Couldn't the same happen with Adrian. Also, if he were to make a comeback what role would he play? &lt;br /&gt;&lt;br /&gt;I also stumbled on some half-life wiki which features some of the &lt;a href="http://half-life.wikia.com/wiki/Half-Life_2_original_storyline"&gt;earlier Half-Life 2 concept story and art&lt;/a&gt; which actually has the Borealis boat and base depicted. Just something interesting I thought I wanted to share. The original story has been DRAMATICALLY changed but maybe it might give us some idea of what to expect.&lt;br /&gt;&lt;br /&gt;In a relatively old post at &lt;a href="http://www.computerandvideogames.com/article.php?id=240672?cid=OTC-RSS&amp;amp;amp;attr=CVG-News-RSS"&gt;Computer And VideoGames&lt;/a&gt;, they featured Gabe Newell who explained: &lt;i&gt;"I feel like we've gotten away from genuinely scaring the player more  than I'd like, and it's something we need to think about, in addition to  broadening the emotional palette we can draw on."&lt;/i&gt;&lt;br /&gt;The article ended with: &lt;i&gt;When Edge asked what scares them the most, he had a particularly dark  answer: "The death of their children. The fading of their own  abilities."&lt;/i&gt;&lt;br /&gt;Could this mean that someone close to Gordon is going to die? We also know that the Advisors are powerful, being able to pull Gordon  and plunge him to the nearest wall and he is pretty worthless against  them. Would they be able to weaken Gordon to some extent? Could Gordon be teleported to the Combine world somehow? I think that could also be scary. Maybe that's where Adrian would come to help Gordon providing he makes a comeback.&lt;br /&gt;&lt;br /&gt;With the death of Eli, the resistance might suffer a bit since Eli was the leader of the human resistance. Would the resistance loose its power? When I listened to the commentary of Episode 2's ending, the game creators mentioned that Eli has reached his purpose in the game. So what other side effects could we expect from his death other than Alex's wanting for revenge? Alex might put herself in unnecessary danger due to her thirst for revenge and that might cause the unnecessary separation between Gordon and Alex.&lt;br /&gt;&lt;br /&gt;Lastly, what new revelations would we see of the G-Man? We have learned that he is not the main chief but is actually "working" for some "employers" who somehow orchestrate the whole chain of events but to a certain extent. He mentioned "the biggest embarrassment has been Black Mesa" which implies that they are not in so much control as they make out to be, also we see in the beginning of Episode 1 how the Vaurtigans holds the G-Man back. Yet the G-Man keeps on "predicting" the future. He spoke to Eli twice saying "Prepare for unforeseen consequences", before the Black Mesa incident and at the end of Episode 2. Is it future vision or just the logical statement to make based on his orchestration of events that leads to the catastrophic happenings? There is still too much unknown about this character to make any good speculation. For all we know he could be a supernatural being or even an alien. Only Valve knows at this point? Or do they? ;-) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-4391587054379479306?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/4391587054379479306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=4391587054379479306&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4391587054379479306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4391587054379479306'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2011/08/my-half-life-2-episode-3-speculations.html' title='My Half-Life  2 Episode 3 speculations'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2784917534097963301</id><published>2011-07-21T20:03:00.000+02:00</published><updated>2011-07-21T20:03:21.179+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prayer'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><category scheme='http://www.blogger.com/atom/ns#' term='discussions'/><title type='text'>{Insert teacher name here}</title><content type='html'>"Oh by the way, did you hear about Rob Bell's controversial book?", I heard someone say to me a couple of weeks back. At first I wasn't sure what it was about, and I didn't think that it would have sparked the flame within the Christian community because I've been a listener to Rob's DVDs for a couple of years and he seemed ok to me.&lt;br /&gt;&lt;br /&gt;After finally going on YouTube to look for some interviews over his new book "Love wins", I was shocked over the way Rob responded to the interviewers and each time he would either give a rehearsed response to the problem in Japan or he would back-pedal over certain issues such as with the questions over God's wrath answering something a little different than written in the book or when asked about whether the crucifixion is the chief and main relevance to Christianity, he would side-step the question.&lt;br /&gt;&lt;br /&gt;I would agree that this is a hard thing for me to take in. Like I said, I  knew Rob from his Nooma series and it was very thought provoking and  helpful, especially within small groups, etc. I read his book "Sex God"  and watched his hour lecture on "Everything is spiritual" and based on  what I heard, everything seemed clear and fine (based on what I  understood ofcourse). To even think that Rob is a heretic was  unthinkable. I thought it was just a misunderstanding of some sort (and  in a way I think it can be) but I think the gap is too big to look past it.&lt;br /&gt;&lt;br /&gt;The more I listened to his interviews the more he sounds different. It's as if he cannot find his own feet with those questions. Now, just to make something very clear,&lt;b&gt; I haven't read his book&lt;/b&gt;.&lt;br /&gt;I admit and I will try not to comment on his book but rather on the media around his book and the interviews that are freely available on the web.&lt;br /&gt;&lt;br /&gt;Now I may sound like another blog writer giving my two cents worth on the web about a man who seems to have "lost his way" but what I want to get out of this post is not to discredit, tear down or bad mouth him, but rather create the awareness of how easy it can be for any preacher to preach a message that is just alongside the truth. No matter who the person is, no matter how wonderful his/her message seems like, we need to validate their message. Also, just because they've helped a lot of people and stand for worthy causes, doesn't make their wrong preaching right. I know that not everyone is perfect, I mean we might get something wrong during a preaching/teaching and we need to take the responsibility of admitting that we've been wrong when we discover that it is true and to correct it but I'm not talking about slight misunderstandings in scripture I'm talking about something that's a fundamental belief that could alter the way we live as Christians in our lives.&lt;br /&gt;Take for instance the idea of the crucifixion. If I believe that Jesus died on the cross but didn't rise from death, then I won't be able to believe that my sins are forgiven and I would be having a lot of other false beliefs entering my idea of Jesus. That's what I'm talking about.&lt;br /&gt;&lt;br /&gt;I can go on and on about Rob's statements but that's not the point of this article, I could have written about someone else entirely who also is close to my heart. For all I know Chip Ingram can also loose his way (and I sincerely hope he doesn't and that God protects him). The point is, this is how crafty the devil is and how vulnerable we are. Any one of us can fall victim to these shifts into wrong fundamental beliefs. Its just that the case with Rob (whether he is guilty or not of heresy) has opened my eyes to the reality that even the best or wonderful of teachers (except Jesus ofcourse) can fall victim to these headlines which we see in the case with Rob. I'm not saying that everyone of them will be victim of it, its just that its a warning to us all to be on the lookout in case it does happen.&lt;br /&gt;&lt;br /&gt;So what I would propose is that we pray for people like Rob Bell, also our very own pastors and preachers that they wouldn't fall victim of Satan's attacks and that they (and we) would gain discernment from the Holy Spirit to interpret the scriptures correctly.&lt;br /&gt;&lt;br /&gt;God Bless.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2784917534097963301?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2784917534097963301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2784917534097963301&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2784917534097963301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2784917534097963301'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2011/07/insert-teacher-name-here.html' title='{Insert teacher name here}'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-9063676349869257706</id><published>2011-06-22T09:38:00.000+02:00</published><updated>2011-06-22T09:38:39.018+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Configuring Proxy settings in .NET config file</title><content type='html'>Hi all&lt;br /&gt;&lt;br /&gt;Usually at work when I wanted to test something that requires to make a call over the web, I had to code two lines into my C# app to allow my application to work over our proxy:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy();&lt;br /&gt;WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now, I found that you can actually configure your App.config or Web.config to do this for you.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;system.net&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;defaultProxy enabled="true" useDefaultCredentials="true"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/defaultProxy&lt;/code&gt;&lt;code&gt;&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/system.net&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This would set the proxy to be used to the one currently configured in Internet Explorer and uses your currently logged in credentials to access the web through the proxy.&lt;br /&gt;&lt;br /&gt;If you need to specify a different proxy, you could specify it like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;defaultProxy enabled="true"&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;lt;proxy proxyaddress="some new proxy" /&amp;gt; &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;/defaultProxy&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There is just one issue with this, you cannot specify credentials explicitly to use in the configuration file that needs to be used for proxy access. If you have to make use of a proxy and the account you use to log into windows doesn't have access to that proxy, you would have to specify a different set of credentials to be used.&lt;br /&gt;Yes you can code this in C# by specifying Credentials in your Default proxy.&lt;br /&gt;But this is not always desirable.&lt;br /&gt;I did find a &lt;a href="http://stackoverflow.com/questions/186800/is-it-possible-to-specify-proxy-credentials-in-your-web-config"&gt;post&lt;/a&gt; on Stack Overflow where someone suggested that you create a Proxy class and inject it as a Module, which is what I'm going to demonstrate here:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;public&amp;nbsp;class&amp;nbsp;MyProxy&amp;nbsp;:&amp;nbsp;IWebProxy&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp;Uri&amp;nbsp;GetProxy(Uri&amp;nbsp;destination)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&amp;nbsp;proxy&amp;nbsp;=&amp;nbsp;ConfigurationManager.AppSettings ["proxyaddress"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&amp;nbsp;new&amp;nbsp;Uri(proxy);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp;bool&amp;nbsp;IsBypassed(Uri&amp;nbsp;host)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&amp;nbsp;false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp;ICredentials&amp;nbsp;Credentials&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&amp;nbsp;username&amp;nbsp;=&amp;nbsp;ConfigurationManager.AppSettings ["username"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&amp;nbsp;password&amp;nbsp;=&amp;nbsp;ConfigurationManager.AppSettings ["password"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&amp;nbsp;new&amp;nbsp;NetworkCredential(username,&amp;nbsp;password);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&amp;nbsp;{&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And in the config file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;appSettings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add key="proxyaddress" value="http://proxyaddress"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add key="username" value="my user"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add key="password" value="my password"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/appSettings&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.net&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;defaultProxy enabled="true" useDefaultCredentials="false"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;module type="MyAssembly.MyProxy, &lt;/code&gt;&lt;code&gt;MyAssembly&lt;/code&gt;&lt;code&gt;"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/defaultProxy&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.net&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This would make use of the proxy we coded to specify which proxy to use and with which credentials. You might want to cache those settings, etc. but this is just a simple example of how to do this. This way you don't have to touch your production code at all and still configure it to be proxy-aware.&lt;br /&gt;&lt;br /&gt;I hope this would be useful to some one as it has been for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-9063676349869257706?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/9063676349869257706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=9063676349869257706&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/9063676349869257706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/9063676349869257706'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2011/06/configuring-proxy-settings-in-net.html' title='Configuring Proxy settings in .NET config file'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-7154436434434751561</id><published>2010-06-27T22:08:00.000+02:00</published><updated>2010-06-27T22:08:44.412+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tfs'/><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='msbuild'/><title type='text'>TFS Builds</title><content type='html'>Some interesting things to note when doing TFS Builds. (I've written this article a few months ago before Visual Studio 2010, just to bear in mind)&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Being exposed to the .NET world for too long, I actually became acquainted with Team Foundation Server for Version Control, Continuous Integration Builds and Release Builds. I'm not going to comment on the system at the moment. I just want to write something that is for me for future reference and maybe that can help someone else.&lt;br /&gt;&lt;br /&gt;I've been struggling a bit on configuring the TFS Build server to not output all the project files to a single Binary folder but to keep it in its projects' configured output folders, i.e. \bin\Release, etc.&lt;br /&gt;&lt;br /&gt;Also, I spent some time trying to get the solution's directory that's being built.&lt;br /&gt;&lt;br /&gt;To get TFS's Build not to override the output directory, add the following in your TFSBuild.proj in the first PropertyGroup section:&lt;br /&gt;&amp;lt;CustomizableOutDir&amp;gt;true&amp;lt;/CustomizableOutDir&amp;gt;&lt;br /&gt;&lt;br /&gt;Here are a few things you can do when writing your own custom MSBuild project file:&lt;br /&gt;&amp;lt;PropertyGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;SolutionDir condition=" '$(IsDesktopBuild)' == 'false' "&amp;gt;$(MSBuildProjectDirectory)\..\&amp;lt;/SolutionDir&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MSBuildCommunityTasksPath&amp;gt;$(SolutionDir)\Third Party Extensions\MSBuildCommunityTasks\&amp;lt;/MSBuildCommunityTasksPath&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;&lt;br /&gt;The SolutionDir is only set if this is a TFS Build (hence the '$(IsDesktopBuild)' == 'false' part). TFS doesn't set this variable. TFS does have a MSBuildProjectDirectory. This has worked for me so far.&lt;br /&gt;If you need to reference some custom task file like MSBuildCommunityTasks, you can then make use of the $(SolutionDir) variable, as shown above.&lt;br /&gt;&lt;br /&gt;Now that the projects are being built in their respective folders, you might want certain output to be generated so that you can do a release. You might for instance want all the installers to be copied to the Results path so that you can install it on the relevant test or distributed environments. So in each project that you want output from, insert this as AfterBuild Tasks:&lt;br /&gt;&lt;br /&gt;&amp;lt;Target Name="AfterBuild" Condition=" '$(IsDesktopBuild)' == 'false' "&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Message Text="Copying output files from $(OutDir) to $(TeamBuildOutDir)" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ItemGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;FilesToCopy Include="$(OutDir)\*.msi" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/ItemGroup&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Copy SourceFiles="@(FilesToCopy)" DestinationFiles="@(FilesToCopy -&amp;gt;'$(TeamBuildOutDir)\$(AssemblyName)\%(RecursiveDir)%(Filename)%(Extension)')" /&amp;gt;&lt;br /&gt;&amp;lt;/Target&amp;gt;&lt;br /&gt;&lt;br /&gt;Another nice feature that I discovered while browsing through the MSBuildCommunityTasks collection is the ability to set a version number automatically. There are various provided options but the one with the least configuration and storage of info is this one that I'm using:&lt;br /&gt;&lt;br /&gt;&amp;lt;Target Name="UpdateBuildVersion" Condition=" '$(IsDesktopBuild)' == 'false' "&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Version BuildType="Automatic" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;StartDate="$(BuildStartDate)" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Major="1" &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Minor="1"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Output TaskParameter="Major" PropertyName="Major" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Output TaskParameter="Minor" PropertyName="Minor" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Output TaskParameter="Build" PropertyName="Build" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Output TaskParameter="Revision" PropertyName="Revision" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/Version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Attrib Files="Properties\AssemblyInfo.cs" Normal="true" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;FileUpdate Files="Properties\AssemblyInfo.cs"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Regex="(\d+)\.(\d+)\.(\d+)\.(\d+)"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReplacementText="$(Major).$(Minor).$(Build).$(Revision)" /&amp;gt;&lt;br /&gt;&amp;lt;/Target&amp;gt;&lt;br /&gt;&lt;br /&gt;Calling this from your built project's BeforeBuild task, will let TFS Build (only) to overwrite your Assembly Info and set the new version number and then do a build. Now you don't have to clutter your check-ins and you don't have to remember to set your version numbers anymore. By using a value from $(BuildStartDate) of the format YYYY/MM/DD, you can have a number increment on every build which equates to the amount of days since the $(BuildStartDate). You'll also note the 'Attrib' task. This is to set the file's attribute to normal because TFS checkouts usually sets the file's read-only flag to true and then all your apps will throw an exception because they "can't" write to a read-only file. Same with TFS Build.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-7154436434434751561?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/7154436434434751561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=7154436434434751561&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/7154436434434751561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/7154436434434751561'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2010/06/tfs-builds.html' title='TFS Builds'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-8512435309833727260</id><published>2010-06-27T22:04:00.000+02:00</published><updated>2010-06-27T22:04:22.767+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Config Encryption for .Net</title><content type='html'>I know there are many examples of configuration file encryption on the net but I needed some place where I can go to remind myself how it works again without having to Google for long periods again in the future to figure stuff out.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I want to write about Executable configuration encryption and Web configuration encryption. It is actually simple but there are a few things you need to know before diving in. Executable and Web encryption (through the standard way) cannot be mixed, you can't for instance point to a web project in order to open with the ConfigurationManager and vice versa with the WebConfigurationManager. This is pretty obvious but sometimes when you're working with deployment code, you are sometimes tempted to try one with the other.&lt;br /&gt;&lt;br /&gt;Secondly, when using the ConfigurationManager.OpenExeConfiguration() you have to give the full path to the EXE file. This EXE file must be found along with the configuration file.&lt;br /&gt;With the WebConfigurationManager.OpenWebConfiguration() you have to give a full or relative path to an IIS Virtual Directory. If you just want to reference the Virtual Directory in the root path from DefaultWebsite, just add the '/' before the Virtual Directory name. This Virtual Directory needs to point to a directory with the web.config file.&lt;br /&gt;&lt;br /&gt;Now once you have an instance of a Configuration (via ConfigurationManager or WebConfigurationManager) you can now finally decide which section you want to encrypt and encrypt it.&lt;br /&gt;&lt;br /&gt;Configuration config = GetConfgiruation(); // Do as explained above&lt;br /&gt;ConfigurationSection section = config.GetSection("appSettings"); // Example&lt;br /&gt;SectionInformation sectionInfo = section.SectionInformation;&lt;br /&gt;if(!sectionInfo.IsProtected)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;sectionInfo.ProtectSection("DataProtectionConfigurationProvider");&lt;br /&gt;&amp;nbsp;&amp;nbsp;sectionInfo.ForceSave = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;config.Save(ConfigurationSaveMode.Full);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;There you have it. Just one thing though. You can't copy this file to another machine and attempt to decrypt it because .Net uses a generated token on your Machine to encrypt/decrypt.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-8512435309833727260?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/8512435309833727260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=8512435309833727260&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8512435309833727260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8512435309833727260'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2010/06/config-encryption-for-net.html' title='Config Encryption for .Net'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-6843431975721514284</id><published>2009-12-15T14:11:00.000+02:00</published><updated>2009-12-15T14:11:33.237+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='death and resurrection'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><category scheme='http://www.blogger.com/atom/ns#' term='issues'/><title type='text'>How am I now?</title><content type='html'>To those who've felt that God looks at you in a certain way and all you can think is "How am I now?"&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Ever since we could remember from the first time we could talk, we've been involved in a thought tug-o-war where we can just look at ourselves and wonder if we're good enough. I could remember it when I was young, how I would think what others would think of me and I would wonder if I am good enough for them.&lt;br /&gt;Isn't it weird how we humans can think such thoughts? I mean, we see our parents and friends around us and yet we wonder "am I good enough for them?" Some may think that they don't have that problem but I think all of us had this encounter in our relationship with God. "Am I good enough now, God?", "How about now?"&lt;br /&gt;&lt;br /&gt;I mean you keep on thinking that God would look at you with angry or disappointed eyes and no matter how hard you try, you just can't get close to God. Even as a child of God knowing that His Son payed for your sins, you still wonder if you're good enough.&lt;br /&gt;&lt;br /&gt;I was out with my aunt and her husband one night to buy pizza and I just couldn't help but think that God is angry with me for some reason, and if He was, He had every right to be because I am still sinning and doing things that He doesn't like. So I stood outside the pizza place looking up into the night sky, with the chilly wind blowing over my body and thinking "How do I always manage to end up in this situation?" For years, this constant nagging of how God is disappointed or angry with me had driven me to total and complete outbursts of anger and head-banging frustration where I would yell at myself saying "You fool, you idiot! You can't do anything right!" (etc.) and time would go by when I would feel so close and loved by God that I can just say "Wow, You're amazing God! I want to be with You!".&lt;br /&gt;&lt;br /&gt;I've read books, listened to MP3s, praying to God and crying over this issue many times and for many months and still I sometimes wonder "why?"&lt;br /&gt;&lt;br /&gt;So WHY do I feel this way? Am I the only one who feels like God isn't proud of me or that He will only allow me close to Him if I do well enough? (no matter how hard I try)&lt;br /&gt;&lt;br /&gt;I had to look at a few things to answer that question and it came to me not as a quick and straight answer. It took months before I finally realized that it's a simple and important issue. The questions ultimately is "Who am I?" or rather it should be rephrased (for those who're born again) "Who am I in Christ?"&lt;br /&gt;&lt;br /&gt;As I am writing this post, I still feel like what I'm writing and I think that as my fingers stroke over the keyboard, some old thoughts begin to wake up to remind me of what I learned and experienced. Yeah, it has been a dramatic beginning of this post but I feel that sometimes you need to go the extra mile to demonstrate your point.&lt;br /&gt;&lt;br /&gt;You see, the people who think so lowly (or even highly) of themselves, are either reading the Bible on a casual basis where its just "Oh! That's interesting to know" or on a duty basis "OK, I read it, lets go on". I do both at times and its basically as good as not doing it at all. But there are so many good things in the Bible that we're missing and we just don't know how to take it in or we don't realize the importance of it or we just don't bother.&lt;br /&gt;&lt;br /&gt;A few months ago, I started to read Colossians 3 where Paul said "Since you've been raised to new life with Christ..." I din't realize the importance of it. You know, it's all "blah-blah, yeah I know this stuff since I was born again, so what?" but allowing the Holy Spirit to lead me I read it again, and again, and again... I even followed some of the advice given to me from some authors of a META-YES article that I would say out loud "I have been raised to new life with Christ! YES! AMEN!" and after a while something in my mind would CLICK! All the books I've read, sermons I've listened too, etc. finally made 1 connection point in my mind! Colossians 2:20 talks about "You have died with Christ" and then Colossians 3 "you've been raised to new life with Christ". See the picture? You died and you got raised. I had to realize this.&lt;br /&gt;&lt;br /&gt;So then I questioned the way I thought about myself before, how I would condemn myself over every stupid small little thing. Why do I do it? That's how we were before Christ. Now we died (when we accepted Christ as Lord and Savior) and got raised to new life with Him. We're new! Brand spanking NEW! The old messages don't hold anymore! I don't have to feel so condemned and sad anymore. Did this message sink in the first time? NO! I am still (months later) going through this concept because I still feel like God can get angry and disappointed at me. I also struggle to go through this every day. But this has changed my perspective about the Gospel and this is a basic thing that needs to be known by all Christians, otherwise you will continue to condemn yourself.&lt;br /&gt;&lt;br /&gt;Our reverent once preached a message about "Praise be to God! How great am I". He said that if he was one of the people listening to this message even he would leave the church but this is something that God revealed to him in Psalm 139. The Psalm writer starts with God knowing everything including everything about us. Then he writes about wanting to run away that you can't escape God. Then he talks about how God created him. Then he says &lt;a href="http://www.biblegateway.com/passage/?search=psalm%20139:14&amp;version=31"&gt;"I praise you because I am fearfully and wonderfully made"&lt;/a&gt;. Then he talks about how great God's thoughts are.&lt;br /&gt;He said that the reason why we can't accept the fact that we can be seen by God (in our whole being) as great is because we don't understand the baptism. And that was just a confirmation on what I was going through myself. We don't realize the importance of the death and resurrection power of Christ.&lt;br /&gt;&lt;br /&gt;I write this not because I wish to preach to anyone but I had the need to write it down for myself and maybe even for someone else. God really, really loves (and even likes) us all! May God lead you into realizing the power of the death and resurrection of Christ!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-6843431975721514284?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/6843431975721514284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=6843431975721514284&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6843431975721514284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6843431975721514284'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2009/12/how-am-i-now.html' title='How am I now?'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-3098581046689850016</id><published>2009-03-19T09:33:00.007+02:00</published><updated>2009-03-19T19:54:09.240+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Ruby class method extensions</title><content type='html'>I have developed a liking to Ruby since I first started using it for automation and now I even started to use it at work for one conversion process. Unfortunately, there are some set backs I've found with Ruby, such as using the Time class. I think my disliking of using it is probably because I've been spoiled with the well developed C# one. It lacks a lot of useful things. However, since Ruby is dynamic, I could make some of the necessary changes myself.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I had to do some extensive operations with the Time class and even though it had a lot of features, it lacked the ones I used the most. It got so bad that at a point, I had to start using Ruby's method extension feature which helped to solve my problem to a great extent.&lt;br /&gt;&lt;br /&gt;I would however, like to ask the Ruby developers to clean up their Time class (I am not the only one saying that, just do a google on Ruby's Time class and see what I mean).&lt;br /&gt;&lt;br /&gt;To insert class methods is easy. Let me show you:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;class Time&lt;br /&gt; class &amp;lt;&amp;lt; self&lt;br /&gt;  def some_method()&lt;br /&gt;  end&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;So now I can do this: &lt;code&gt;Time.some_method()&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This allows me to insert custom Time creation methods where I can specify a time zone offset along with the time data I want.&lt;br /&gt;&lt;br /&gt;What about some instance methods? How can I add for instance a date() method where I can tell Time.now to just give me the date component? Adding a class method won't help here. This requires a little hack (in my opinion).&lt;br /&gt;&lt;br /&gt;First the Module:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;module TimeInstance&lt;br /&gt; # Converts the time to UTC and converts it&lt;br /&gt; # into epoch in milliseconds&lt;br /&gt; def to_epoch_millis()&lt;br /&gt;  (to_f() * 1000.0).to_i()&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; # Gets only the Date component of the current&lt;br /&gt; # time instance&lt;br /&gt; def date()&lt;br /&gt;  Time.local(year, month, day, 0, 0, 0, 0)&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And in the Time class:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;class Time&lt;br /&gt; ...&lt;br /&gt; class &amp;lt;&amp;lt; include TimeInstance&lt;br /&gt; end&lt;br /&gt;end&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now I can say: &lt;code&gt;Time.now.date()&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now whatever you add in the TimeInstance module, will be added to the Time class's instance method list. The only catch is, you can only call public methods from the Time class in your module.&lt;br /&gt;&lt;br /&gt;But this solves my problem greatly.&lt;br /&gt;&lt;br /&gt;Hope this has helped you.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-3098581046689850016?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/3098581046689850016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=3098581046689850016&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3098581046689850016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3098581046689850016'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2009/03/ruby-class-method-extensions.html' title='Ruby class method extensions'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-6047438239356362486</id><published>2009-01-30T17:37:00.004+02:00</published><updated>2009-01-30T17:44:49.563+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='AutoIT'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>OpenDialog in Ruby</title><content type='html'>I have encountered some issues trying to get Ruby to open up an Open Dialog Box.&lt;br /&gt;I tried doing it the DL route but apparently there is some problem with Ruby properly creating the struct to be passed to the 'GetOpenFileNameA' function (at least, that's what I've encountered). But I have found a different way...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Fortunately for me, I have delved into AutoIT scripting which allows me to create an Open Dialog Box. So I then decided to write a simple script to pass all the necessary params to this application from Ruby (i.e. Dialog message and filter) and the AutoIT application returns the filename that is selected or nil if canceled.&lt;br /&gt;&lt;br /&gt;AutoIT code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;If $CmdLine[0] &lt; 1 Then&lt;br /&gt; ConsoleWriteError("No arguments given")&lt;br /&gt; Exit&lt;br /&gt;EndIf&lt;br /&gt;&lt;br /&gt;$op = $CmdLine[1]&lt;br /&gt;&lt;br /&gt;Switch($op)&lt;br /&gt;Case "open"&lt;br /&gt; If $CmdLine[0] &lt; 3 Then&lt;br /&gt;  ConsoleWriteError("open command requires message and filter arguments.")&lt;br /&gt;  Exit&lt;br /&gt; EndIf&lt;br /&gt;&lt;br /&gt; $msg = $CmdLine[2]&lt;br /&gt; $filter = $CmdLine[3]&lt;br /&gt; $selected = FileOpenDialog($msg, "", $filter, 1)&lt;br /&gt; &lt;br /&gt; If @error Then&lt;br /&gt;  ConsoleWriteError("Open Dialog problem")&lt;br /&gt;  Exit&lt;br /&gt; EndIf&lt;br /&gt; &lt;br /&gt; ConsoleWrite($selected)&lt;br /&gt;EndSwitch&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ruby code:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;f = IO.popen("controls.exe open \"Select a file\" \"Text File(*.txt)\"")&lt;br /&gt;&lt;br /&gt;puts f.gets&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This seems to work nicely. A bit of a round-trip but allows you to get what you need.&lt;br /&gt;For those who don't know, AutoIT is a Windows-based automation scripting system (console and GUI wise, see some of my AutoIT posts).&lt;br /&gt;&lt;br /&gt;Cheers!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-6047438239356362486?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/6047438239356362486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=6047438239356362486&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6047438239356362486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6047438239356362486'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2009/01/opendialog-in-ruby.html' title='OpenDialog in Ruby'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2098919434011218815</id><published>2008-12-29T17:52:00.008+02:00</published><updated>2008-12-29T18:19:52.582+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='line control'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Line Control</title><content type='html'>Man, ever since working with Open SuSE, I always wanted a solution that could allow remote clients to let a (non SuSE) Linux Gateway dis/connect from/to the internet. Thankfully I found a solution for Ubuntu that works just as well.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I don't know how many people who have a Linux Gateway have a need for something like this but I wondered if I would able to find something like this.&lt;br /&gt;Let me first explain what I am blabbering on about.&lt;br /&gt;&lt;br /&gt;I have multiple home PCs and each want internet access. Unfortunately my internet device is a USB one so I can't buy a router and use that, so I needed a PC that was dedicated to be on the internet when I want it. I didn't want the internet to be online 24/7 for security reasons and also connection stability reasons (sometimes the connection quality drops and so a quick disconnect &amp;amp; reconnect sometimes solves this problem).&lt;br /&gt;&lt;br /&gt;OpenSuSE had a SMPPPd solution where you have KInternet clients (where KInternet is so far only a SuSE app) that connects to a SuSE Gateway which is running SMPPPd that handles the internet connection. Once a client has connected to that Gateway, s/he can control the internet connection and see what the traffic looks like in KB/s. The problem with this solution is... It's only for SuSE! So I needed something similar for Ubuntu.&lt;br /&gt;&lt;br /&gt;The solution I found was by accident as one can see in this forum thread: &lt;a href="http://www.linuxquestions.org/questions/linux-software-2/visual-real-time-traffic-monitor-693051/"&gt;Visual Real-time traffic monitor&lt;/a&gt;&lt;br /&gt;I was looking for a realtime traffic monitor and hoped to just write my own app that can deal with the connections but thanks be to God (I have prayed for something like this, where I asked God to help me get this Gateway back up), I stumbled on an client app called &lt;a href="http://metz.gehn.net/projects/qlinecontrol/"&gt;QLineControl&lt;/a&gt; which is a Qt based app for Windows and Linux that acts as a client for Line Control. You can download the Windows version and you can get an "unstable" version from apt-get by adding the repository listed on that website.&lt;br /&gt;From there I was led to &lt;a href="http://linecontrol.sourceforge.net/"&gt;LineControl&lt;/a&gt; (the server is called LineSrv) which is the Linux service which actually controls the internet connection. LineSrv (so far) is listed as an official Ubuntu package which you can get from apt-get.&lt;br /&gt;&lt;br /&gt;It took a while to figure out what to do but thankfully I managed to get it to work.&lt;br /&gt;The config file generated by the apt-get for LineSrv is faulty so you have to override with the default config file and go from there.&lt;br /&gt;Here is what I did:&lt;br /&gt;&lt;br /&gt;I copied the /usr/share/doc/linesrv/linesrv.conf to /etc/linesrv/.&lt;br /&gt;Then I created 2 scripts for dialing up and disconnecting:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Dialup script&lt;/u&gt;&lt;br /&gt;&lt;code&gt;#!/bin/sh&lt;br /&gt;ifup ib0 2&gt; /dev/null &gt; /dev/null&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Hangup script&lt;/u&gt;&lt;br /&gt;&lt;code&gt;#!/bin/sh&lt;br /&gt;ifdown ib0 2&gt; /dev/null &gt; /dev/null&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I placed them in the /etc/ppp path.&lt;br /&gt;The ib0 is my iBurst (internet device) interface, I have to do it like this otherwise it won't work, I am using the Debain dialer. Also LineSrv has to be root for this to work. Fortunately the init script that is setup via apt-get does that automatically.&lt;br /&gt;I know the script looks funny but this is the script format that was followed in the sample scripts found in the LineSrv source files.&lt;br /&gt;&lt;br /&gt;Then I modified the /etc/linesrv/linesrv.conf file:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;I set user_accounting to no since I don't want ppl to authenticate when dialing up&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I set currency to ZAR (Since I am from South Africa ;-) )&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I uncommented the 'line T-Online' line, you can call it anything you want after the 'line' part&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I uncommented the script_up, script_dn and interface and pointed them to the appropriate dialup, hangup scripts and the interface points to ppp0&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I uncommented 'con_type' and set it to 'netdev'&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I uncommented 'send_throughput' and set it to 'yes' since QLineControl client want this to know at what speed the internet traffic is heading&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;And then I ran the LineSrv service and there you go. I connected with QLineControl just fine without any hassles.&lt;br /&gt;&lt;br /&gt;And now I am writing this post from this very configuration within Linux. I am quite surprised that such a solution even exists as I really thought that I would have to write my own app.&lt;br /&gt;&lt;br /&gt;Well, there you go!&lt;br /&gt;Cheers and God Bless!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2098919434011218815?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2098919434011218815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2098919434011218815&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2098919434011218815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2098919434011218815'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/12/line-control.html' title='Line Control'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-6188397630008152788</id><published>2008-12-06T21:25:00.003+02:00</published><updated>2008-12-06T21:40:00.434+02:00</updated><title type='text'>How will I go with this?</title><content type='html'>Yeah, how will I go with this blog?&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Its a difficult time for me to determine how this blog is going to head. The last entry was 8 months ago because I lost interest in blogging.&lt;br /&gt;Sometimes I do have some topics to write about but end up discouraged to do so via lack of time or fatigue. You know how it is, right?&lt;br /&gt;&lt;br /&gt;So just to let everyone know, I am not sure when my next entry is going to be or whether this blog is going to continue to be updated. It will however remain up for people to read.&lt;br /&gt;&lt;br /&gt;I also fixed the tag image issues that I had with the Digg and Delicious tagging.&lt;br /&gt;&lt;br /&gt;All I can say is, check in once a week if you want to or subscribe this blog to your RSS reader to detect new additions. I am sorry folks, I am trying. :)&lt;br /&gt;I am sure God will lead me with this as well. Maybe I might start a new blog, who knows!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-6188397630008152788?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/6188397630008152788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=6188397630008152788&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6188397630008152788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6188397630008152788'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/12/how-will-i-go-with-this.html' title='How will I go with this?'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-1776910991293136923</id><published>2008-05-09T12:57:00.004+02:00</published><updated>2008-05-09T13:10:23.924+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BATCH'/><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Batch Scripting Tips</title><content type='html'>Here are some BATCH script tips which I discovered on the web that helped me a lot in Windows.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Why did I use BATCH scripts? Why not Ruby or Python, or even JScript? Well, if you're writing some basic automation which should be run on deployment PCs, etc. BATCH files are standard and sufficient enough to work. Installing Ruby, etc. on all the machines first is a pain and an unnecessary step (IMO).&lt;br /&gt;&lt;br /&gt;I am keeping this for future reference. There is a website that is dedicated to this kind of thing: &lt;a href="http://www.robvanderwoude.com/"&gt;http://www.robvanderwoude.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now I assume you have basic BATCH scripting knowledge.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hiding Commands&lt;/b&gt;&lt;br /&gt;If you want to hide all the ECHO and COPY, etc. commands from being displayed, insert this in the top line of your script file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;@ECHO OFF&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Printing an Empty line&lt;/b&gt;&lt;br /&gt;Sometimes you want to produce an empty line in the console output. This can be accomplished by:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ECHO.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note: The . (DOT) is directly after the ECHO command and has no spaces in between!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Variables&lt;/b&gt;&lt;br /&gt;If you have a variable to hold certain values, to set it you type:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SET MYVAR=SOME VALUE&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You would preferably type the value without quotes, since the quotes will be included in the value.&lt;br /&gt;Using a value:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ECHO %MYVAR%&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Which should output:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SOME VALUE&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;User input&lt;/b&gt;&lt;br /&gt;If you would like the user to type in something, you use the /P option of the SET command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SET /P CHOICE=Type a letter and ENTER: &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This will output:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Type a letter and ENTER: &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now the user can type in something and press ENTER. This will store the typed in text in the variable CHOICE.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Substring&lt;/b&gt;&lt;br /&gt;If you want to take a substring from a variable, you can do so by:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;%CHOICE:~0,1%&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This will take the 'User Input' sample's CHOICE variable's 1st character. As you have noticed, it starts with the variable's first index (0) and by using length (1), like in Java's substring() method, you will get the first character of the variable.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;If statements&lt;/b&gt;&lt;br /&gt;Now, if you want to do a check by comparing a variable's value by a certain string, you can make use of the IF command.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;IF /I '%CHOICE%'=='A' GOTO CHOICEA&lt;br /&gt;IF /I '%CHOICE%'=='B' GOTO CHOICEB&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;CHOICEA and CHOICEB are just labels to where the batch process should jump to if the given conditions are true. It doesn't have to be GOTO statements, it can be single statements, such as ECHO or SET. The /I option tells the IF statement to do a case-insensitive comparison. If you compare your variable against a string, you have to place it inside quotes, like above.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Labels&lt;/b&gt;&lt;br /&gt;A label is a place to where the batch processor jumps to after executing a GOTO statement. Example:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;:CHOICEA&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Current path variable&lt;/b&gt;&lt;br /&gt;This will output the current directory:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ECHO "%CD%"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Path of batch file&lt;/b&gt;&lt;br /&gt;Sometimes you want to work relatively from the path of the batch script file, rather than the current directory.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ECHO %~dp0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This will output the path of the batch file that is running.&lt;br /&gt;&lt;/code&gt;&lt;/code&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-1776910991293136923?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/1776910991293136923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=1776910991293136923&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1776910991293136923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1776910991293136923'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/05/batch-scripting-tips.html' title='Batch Scripting Tips'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-8367146986692114363</id><published>2008-05-01T20:43:00.007+02:00</published><updated>2008-05-02T11:31:44.268+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Ruby and Win32 API</title><content type='html'>If you are using Ruby as an automation process rather than a development tool, you sometimes might want to use some of Windows' GUI controls, such as a message box or folder browser box. In those cases, you might want to try the DL library.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Some of you have read &lt;a href="http://lastattacker.blogspot.com/2008/03/ruby-ruby-ruby.html"&gt;this post&lt;/a&gt; about OLE Automation and DL. In a way it is quite simple but it can take a while to get right, especially if you're a beginner like me. However, after some time I have managed to get my folder browser to work and I haven't found Ruby code on the web that does this yet.&lt;br /&gt;However, I feel like it is rather simple to do and to find out how to make your own version, all you need to do is to see how people who wrote VB code do it.&lt;br /&gt;&lt;/span&gt;&lt;span id="fullpost"&gt;Why? Because it is that straight forward, in fact, Ruby reduces the amount of lines of code to do it.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span id="fullpost"&gt;I must warn and say that doing this kind of programming requires excessive use of the Win32API docs (one form or another) and some skilled programming, especially in the C-language area, because you are interfacing to the actual C-functions from Ruby.&lt;br /&gt;&lt;br /&gt;Many VB code snippets that does this, have referenced these 2 c-functions (from the shell32 DLL):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SHGetPathFromIDListA&lt;/li&gt;&lt;br /&gt;&lt;li&gt;SHBrowseForFolderA&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;They also require a structure to send data to the BrowseForFolder function.&lt;br /&gt;Here is a &lt;a href="http://www.freevbcode.com/ShowCode.asp?ID=3064"&gt;site&lt;/a&gt; to get you started.&lt;br /&gt;&lt;br /&gt;Why don't I just paste the code? Well, actually the method I wrote to bring up the dialog box, requires a whole Module and I would like to write my own Ruby module before I publish anything.&lt;br /&gt;Yeah, I might sound like a bugger but hey, I have posted lots of lines of code on this site before so... take it like a man! ;)&lt;br /&gt;The hardest part is creating a Ruby C-like structure from the VB structure, so I think I'll help you out on that one:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;ptr = DL.malloc(DL.sizeof('LLSSLLLL'))&lt;br /&gt;ptr.struct!('LLSSLLLL', :br_hOwner, :br_pidRoot, :br_displayName, :br_title,&lt;br /&gt;     :br_flags, :br_fn, :br_lparam, :br_iImage)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now don't say I didn't give you anything! :D&lt;br /&gt;&lt;br /&gt;For those who still don't know what all those L's and S's are for, it is basically saying "This is a Long integer type" or "This is a string type". Its to determine the size of the structure, but you know that there are other data-types so you need to dig in on your own regarding that.&lt;br /&gt;&lt;br /&gt;Now there is one thing I'm having trouble with and it is the Open/Save File Dialog box. Aparently if you take the exact same data-types as the prescribed docs say, Ruby fails to bring it up. After hours of struggling, I decided to skip the VB code and look on the web if someone already did this, and to my "surprise", nobody has posted any code on this. Bummer! So I decided to have a look on the MSDN site, and BAM! I found my answer. The reason why Ruby didn't bring up my dialog box was due to the fact that Ruby created a structure that had a different size than what the function was expecting! So now I am trying to find out where, how and why.&lt;br /&gt;&lt;br /&gt;I might post my code and findings at a later stage, for this is a necessary thing for Windows Ruby Automation Programmers, like me! ;)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-8367146986692114363?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/8367146986692114363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=8367146986692114363&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8367146986692114363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8367146986692114363'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/05/ruby-and-win32-api.html' title='Ruby and Win32 API'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-4874222224000809062</id><published>2008-04-30T17:41:00.001+02:00</published><updated>2008-04-30T17:43:03.718+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>My "facial expression"</title><content type='html'>Someone sent me this link which I rather think is funny.&lt;br /&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/28/computer-languages-and-facial-hair-take-two.aspx"&gt;Computer languages and facial hair&lt;/a&gt;&lt;br /&gt;Hmmm... good thing I'm growing mine! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-4874222224000809062?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/4874222224000809062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=4874222224000809062&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4874222224000809062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4874222224000809062'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/04/my-facial-expression.html' title='My &quot;facial expression&quot;'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-5050075888264392958</id><published>2008-04-30T17:25:00.002+02:00</published><updated>2008-04-30T17:29:10.221+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Netbeans 6.1</title><content type='html'>As if &lt;a href="http://www.netbeans.org"&gt;Netbeans&lt;/a&gt; 6.0 wasn't enough to patiently wait for (not in a bad way), the new 6.1 is ready for download/order!&lt;br /&gt;Check this &lt;a href="http://www.artima.com/forums/flat.jsp?forum=276&amp;thread=229787"&gt;link &lt;/a&gt;out to find out more of what they did in this version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-5050075888264392958?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/5050075888264392958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=5050075888264392958&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5050075888264392958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5050075888264392958'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/04/netbeans-61.html' title='Netbeans 6.1'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-5987383890614596297</id><published>2008-04-30T16:07:00.012+02:00</published><updated>2008-05-02T11:36:52.518+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='AutoIT'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>AutoIT Script for EasyWorship</title><content type='html'>&lt;a href="http://www.easyworship.com/"&gt;EasyWorship&lt;/a&gt; (EW) is a wonderful app for church services and beats Powerpoint in that it can display Powerpoint slides on a different monitor (than your primary for the projectors) and you can view all the slides in advance of what it beholds. This is great unless you want to import some old songs from a Word document or Powerpoint slides into its Song database...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Well why not just import the Powerpoint slides and use that? Well in my case (as I've been doing this at my church for over a year now) this can take a long time in preparation and is very error prone. What we usually did was create a Powerpoint slide and create our whole church service presentation in it, which meant opening up the Word or Powerpoint Doc with the original songs inside, search for it and then copy-paste. Sometimes we accidentally took the wrong songs (like Psalm 256 instead of 265) and found out in the Sunday morning service! :D&lt;br /&gt;With the EW Song DB, you can type in the song title and you just drag it into your schedule. Thats it! Save me about ... hmm... 3-8 minutes per song!&lt;br /&gt;Also this means that if we imported the wrong song and found out the Sunday morning, we can correct it in a matter of seconds!&lt;br /&gt;&lt;br /&gt;We already have all our Psalms and Songs on Word Doc and Powerpoint and its not 1 song per doc, its a hundred at least! EW can only import 1 thing at a time and they haven't released a tool that can do convertions and imports for you like we needed so I searched the web to find out that everyone else who has the same problem as I did, import it manually! Man, I can't imagine importing over a 1000 songs manually by copy &amp;amp; paste! 8-0&lt;br /&gt;So I stumbled on &lt;a href="http://www.autoitscript.com/autoit3/"&gt;AutoIT&lt;/a&gt;. This is a wonderful util to automate just about any task. By writing a BASIC script (pun intended) you can tell the mouse pointer to move to a certain window's control and wait for a while and then issue a click action. Now that's what I mean by GUI automation ;-). You can also do basic scripting automation like a BATCH or BASH script can.&lt;br /&gt;&lt;br /&gt;Now back to my scenario... I played around and found how easy it actually was to write a script that can import all my hundreds of songs in minutes (it literally took just over 20 mins to import over 800 songs!) since there wasn't a way for me to to it programatically in EW. This script is tested on EW 2006, so if you want to do the same kind of thing like I did, maybe your fortunate to have Google'd onto this page :D&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;#cs&lt;br /&gt;A little script to import songs into Easy Worship 2006.&lt;br /&gt;Written by Dandre Jansen van Vuuren&lt;br /&gt;#ce&lt;br /&gt;&lt;br /&gt;;Select the files to import&lt;br /&gt;$var = FileProcessSelectionDialog()&lt;br /&gt;&lt;br /&gt;;Cancelled&lt;br /&gt;If $var == -1 Then&lt;br /&gt;MsgBox(0, "Error", "No files selected, quitting...")&lt;br /&gt;Exit (1)&lt;br /&gt;EndIf&lt;br /&gt;&lt;br /&gt;$selectedSourceFolder = False&lt;br /&gt;$sourceFolder = $var[1]&lt;br /&gt;&lt;br /&gt;StartEasyWorship()&lt;br /&gt;&lt;br /&gt;;Iterate through all the selected files to import&lt;br /&gt;$total = Number($var[0])&lt;br /&gt;&lt;br /&gt;For $i = 2 To $total&lt;br /&gt;$curFile = $var[$i]&lt;br /&gt;SelectNewSong()&lt;br /&gt;OpenFileOpenDialog()&lt;br /&gt;$ext = MapFileTypeToTypeName(GetExtensionFromFile($curFile))&lt;br /&gt;SelectAFileFromOpenDialog($curFile, $ext)&lt;br /&gt;WinWaitActive("New Song")&lt;br /&gt;Send("!o")&lt;br /&gt;WinWaitActive("EasyWorship")&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;MsgBox(0, "Progress", "Finished.")&lt;br /&gt;&lt;br /&gt;Func FileProcessSelectionDialog()&lt;br /&gt;$filter = "HTML Files (*.html;*.htm)|Word 97-2002 (*.doc)|Text Files (*.txt)"&lt;br /&gt;$importFiles = FileOpenDialog("Select the files to import into EasyWorship", "", $filter, 1 + 4)&lt;br /&gt;&lt;br /&gt;If @error Then&lt;br /&gt;return -1&lt;br /&gt;Else&lt;br /&gt;If StringInStr($importFiles, "|") Then&lt;br /&gt; return StringSplit($importFiles, "|")&lt;br /&gt;Else&lt;br /&gt; ;A single selected file isn't in the same form as a multiple&lt;br /&gt; ;selection of files.&lt;br /&gt; $pos = StringLastIndexOf($importFiles, "\")&lt;br /&gt; $folder = StringLeft($importFiles, $pos)&lt;br /&gt; $file = StringMid($importFiles, $pos + 1)&lt;br /&gt; $newString = $folder &amp;amp; "|" &amp;amp; $file&lt;br /&gt; return StringSplit($newString, "|")&lt;br /&gt;EndIf&lt;br /&gt;EndIf&lt;br /&gt;EndFunc&lt;br /&gt;&lt;br /&gt;Func StartEasyWorship()&lt;br /&gt;Run("C:\Program Files\Softouch\EasyWorship\EasyWorship.exe")&lt;br /&gt;WinWaitActive("EasyWorship")&lt;br /&gt;EndFunc&lt;br /&gt;&lt;br /&gt;Func SelectNewSong()&lt;br /&gt;Send("!s")&lt;br /&gt;Send("n")&lt;br /&gt;WinWaitActive("New Song")&lt;br /&gt;EndFunc&lt;br /&gt;&lt;br /&gt;Func OpenFileOpenDialog()&lt;br /&gt;;The open button doesn't have a shortcut&lt;br /&gt;;find out where the window is positioned And&lt;br /&gt;;relatively position the mouse onto the open button&lt;br /&gt;$winPos = WinGetPos("New Song")&lt;br /&gt;MouseMove($winPos[0] + 305, $winPos[1] + 45)&lt;br /&gt;MouseClick("left")&lt;br /&gt;WinWaitActive("Open")&lt;br /&gt;EndFunc&lt;br /&gt;&lt;br /&gt;Func SelectAFileFromOpenDialog($file, $type)&lt;br /&gt;Send("!t")&lt;br /&gt;ControlCommand("Open", "", "ComboBox3", "SelectString" , $type)&lt;br /&gt;sleep(10)&lt;br /&gt;Send("!n")&lt;br /&gt;Sleep(10)&lt;br /&gt;&lt;br /&gt;;We only need to specify the folder where all the files&lt;br /&gt;;lie, once. From there on we can import the files one&lt;br /&gt;;at a time.&lt;br /&gt;If $selectedSourceFolder == False Then&lt;br /&gt;Send($sourceFolder)&lt;br /&gt;Send("{Enter}")&lt;br /&gt;Sleep(10)&lt;br /&gt;$selectedSourceFolder = True&lt;br /&gt;EndIf&lt;br /&gt;&lt;br /&gt;Send($file)&lt;br /&gt;Send("!o")&lt;br /&gt;EndFunc&lt;br /&gt;&lt;br /&gt;Func GetExtensionFromFile($filename)&lt;br /&gt;Return StringMid($filename, StringLastIndexOf($filename, ".") + 1)&lt;br /&gt;EndFunc&lt;br /&gt;&lt;br /&gt;Func StringLastIndexOf($string, $char_target)&lt;br /&gt;$strlen = StringLen($string)&lt;br /&gt;For $i = $strlen to 1 Step -1&lt;br /&gt;$char = StringMid($string, $i, 1)&lt;br /&gt;If $char == $char_target Then&lt;br /&gt; return $i&lt;br /&gt;EndIf&lt;br /&gt;Next&lt;br /&gt;EndFunc&lt;br /&gt;&lt;br /&gt;Func MapFileTypeToTypeName($fileType)&lt;br /&gt;Switch StringLower($fileType)&lt;br /&gt;Case "html"&lt;br /&gt;return "HTML Files"&lt;br /&gt;Case "htm"&lt;br /&gt;return "HTML Files"&lt;br /&gt;Case "doc"&lt;br /&gt;return "Word 97-2002"&lt;br /&gt;Case "txt"&lt;br /&gt;return "Recover Text from Any File"&lt;br /&gt;Default&lt;br /&gt;return "Unknown"&lt;br /&gt;EndSwitch&lt;br /&gt;EndFunc&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here is how the script works (you obviously need AutoIT and EW):&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Run the script&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Choose the files you would like to import, EW only has a limited supported file-base, but includes HTML and Word Docs. I reformatted all my songs to HTML (I'll write a new article on how I automated that process).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;After selecting the files and clicking on Open, leave everything! You'll see your mouse pointer and menu-popping in action. :-)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Once it is done, it will pop up with a "Done" message box. In the mean time don't let anything take control of your keyboard, mouse, etc (including you ;-) ). This script doesn't cater for problematic scenarios!&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I don't mean to be full of myself (really I don't!) but I am glad that God made me a programmer so that I wouldn't have to do these kind of tasks manually! :D&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-5987383890614596297?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/5987383890614596297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=5987383890614596297&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5987383890614596297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5987383890614596297'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/04/autoit-script-for-easyworship.html' title='AutoIT Script for EasyWorship'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-1306596610998396872</id><published>2008-04-28T14:36:00.006+02:00</published><updated>2008-04-28T15:16:11.206+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>New (K/X)Ubuntu 8.04</title><content type='html'>This weekend I've spent some of my soft-cap downloads on getting the latest Ubuntu software (well I didn't get Ubuntu itself as I am not such a fan of Gnome) such as Xubuntu and Kubuntu, version 8.04 of course...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;After leaving my Linux box overnight I managed to download Xubuntu (i386 - Desktop); Kubuntu (KDE 3.5; i386 - Desktop) and its KDE4 version (also i386 and currently as I'm typing downloading the 64bit version at 6Kbps ;-) ).&lt;br /&gt;&lt;br /&gt;After obtaining Xubuntu, I ran a CD check and saw that 1 file was 'corrupt' (as in MD5 values didn't match). So I downloaded it again only to find the same problem, but when I did a MD5 hash on the ISO file this time and on the Xubuntu website, it was the same, so I guess the guys @ Xubuntu need to do a fix on that file but unfortunately I don't know if it is a text file or binary file (hopefully a non-important one).&lt;br /&gt;&lt;br /&gt;So while I was waiting to download the KDE 4, Kubuntu, I installed the KDE 3 version of Kubuntu and I was quite impressed. I am not such a big fan of KDE 3 either but in Kubuntu 8, it sort of had a slight of change to what I was used to. The speed at which things operated, the fact that it quickly picked up all my hardware was great. All that the Ubuntu Linux OSs need is an official nice looking GRUB loader (but apparently one can get one with Apt-Get). Kubuntu even asked me if it should download the nVidia drivers for my 6200 card (yeah I know but I don't play games so actively anymore plus its sufficient for what I'm doing) and voila!&lt;br /&gt;&lt;br /&gt;I even had a whack at the special desktop effects and its lookin good except for the fact that it is unstable :(&lt;br /&gt;Then when the KDE 4 version was ready I immediately installed it over the KDE 3 version and working and seeing KDE 4 for the first time in action was just WOW! Visuals, speed, configuration, etc. was just great. I downloaded the nVidia driver so that I could have a crack at the desktop visuals and it looked ok'ish, besides the fact that it too was unstable. Like the OpenGL version would crash almost instantly while the RenderX (I think thats what it is called) works pretty well but doing something like pressing Ctrl+10/11 (to have your windows minimize on the screen as on the Mac OSX desktop) would only show 1 window instead of the 3/4 thats open. Other than that I am quite impressed with KDE 4 and the new Kubuntu.&lt;br /&gt;&lt;br /&gt;Xubuntu I haven't had a go at yet because I would like to use its fast desktop as my new Linux Gateway over OpenSuSE and/or (K)Ubuntu (as SuSE 10's repository is outdated and no longer maintained and I need updates plus I am getting a little tired of SuSE, and the latest SuSE versions need higher spec machines to run on), so I am still fiddling around on a proof of concept (POC) before man handling my Gateway box ;-). I would like to still have a Remote desktop option when working on the box so thats why I am not using Ubuntu Server and Xubuntu is nice and light weight (maybe even for VNC sessions) so to update is no problem as opposed to SuSE. The only things I am going to miss is the remote dial-up with smpppd (SuseMetaPPP-Daemon), and a few ease of installation GUI screens (maybe even the preconfigured firewall) but I guess thats it, I'll see how much I can duplicate on my POC version before heading over. Also I really hope the guys @ Ubuntu fixed one routing bug where HTTPS web pages didn't masquerade over the local network. This was a common issue on version 7.10 (as I had Ubuntu Server 7.10), I also tried the fix on the website which didn't work for my situation.&lt;br /&gt;&lt;br /&gt;Well thats all I got for now, didn't spend too much time on this but for those who've waited for the new Ubuntu can be happy at the progress made by the Ubuntu guys for sure.&lt;br /&gt;&lt;br /&gt;Thanks Mark Shuttleworth (and your cool team, also to everyone who contributed) for such great Distros! If I can get this version as a new replacement on my gateway box, then I am a Ubuntu convert! ;-) It is faster to download 700MB than 3.5GB for newer versions! :D&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-1306596610998396872?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/1306596610998396872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=1306596610998396872&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1306596610998396872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1306596610998396872'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/04/new-kxubuntu-804.html' title='New (K/X)Ubuntu 8.04'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-1712969561341117986</id><published>2008-04-15T09:01:00.003+02:00</published><updated>2008-04-15T09:19:22.783+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Windows Explorer alternative</title><content type='html'>For those who're tired of Windows Explorer, a very nice free alternative I found does what I want it to and more...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;There are a wide variety of Explorer replacements (or alternatives) that are "better" than Windows Explorer but this one I believe beats all of them in a lot of categories.&lt;br /&gt;Ever heard of &lt;a href="http://www.mustangpeak.net/"&gt;UltraExplorer&lt;/a&gt;?&lt;br /&gt;Its a Delphi project (free for windows) and most people believe that Delphi GUI apps perform faster (and there is no exception in this case), although sometimes it might just stall for a while but I think it might be more of an IO stall than a "I'm too busy to listen to you" stall. ;-)&lt;br /&gt;Its got a nice appearance, with skinable components (menu and toolbar). It has views that are actually customizable and very useful (except its console, that needs some work but you can get a very nice &lt;a href="http://sourceforge.net/projects/console/"&gt;console app&lt;/a&gt; from Sourceforge as alternative to Windows').&lt;br /&gt;You have tabbed windows support that works just life Firefox's tabs (even with the middle click event). It remembers where it was and has all the Windows Explorer context menus, and so on.&lt;br /&gt;It even picks up my USB drives instantly as soon as Windows activates them and is very responsive except maybe during heavy disk IO.&lt;br /&gt;I am definitely sticking to this handy tool for Windows, I even removed 'My Computer' and 'My Documents' from my desktop to replace it with 'Ultra Explorer'.&lt;br /&gt;&lt;br /&gt;Hope you might like it. :)&lt;br /&gt;&lt;br /&gt;God Bless.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-1712969561341117986?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/1712969561341117986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=1712969561341117986&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1712969561341117986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1712969561341117986'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/04/windows-explorer-alternative.html' title='Windows Explorer alternative'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-248678542851680846</id><published>2008-03-31T20:55:00.008+02:00</published><updated>2008-05-02T11:37:24.225+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='tasks'/><category scheme='http://www.blogger.com/atom/ns#' term='my projects'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Ruby, ruby, ruby ...</title><content type='html'>Yeah it's been a while since the last posting. I was lacking some inspiration on what to blog on or I was just too lazy or too busy to actually log in and blog on something that I wanted to, that is until now...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;You might ask, whats up with the title? Well I remember the song written by a band called Keizer Chiefs (spelling) named: Ruby. Now that reminds me of the Ruby scripting language which lots of people on the web is going on about. A dynamic typed language with multiple ways of saying one thing.&lt;br /&gt;&lt;br /&gt;I was among those who agreed that Ruby was stupid, until I wanted to do a few things in Windows which Python nor other scripting languages could offer (or easily accomplish), except Ruby. Some of us would mock the guy who presented a brief crash course in Ruby, saying that it is too dynamic for our taste and it would make debugging a nightmare, etc. but doing some code delving and with the latest &lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt; language addition, which is Ruby and Ruby on Rails of course, I started to see how cool Ruby actually is.&lt;br /&gt;Usually I despised dynamic typed languages until I saw how it can increase productivity and coding speed for smallish scripts, which is what I wanted for automation.&lt;br /&gt;&lt;br /&gt;"What kind of automation?" you may ask. Well ordinary and OLE automation. Sure &lt;a href="http://www.autoitscript.com/autoit3/"&gt;AutoIT&lt;/a&gt; is great for GUI and other windows automation but the scripting language is very BASIC (pun intended) lacking structure and (as in, I need structures as in C or C++'s structures or atleast...) object orientation. With Ruby we have good OO support and with the 'win32ole' lib, you can kick VBA and do MS Office automation via Ruby instead. A good starting site is &lt;a href="http://rubyonwindows.blogspot.com/"&gt;Ruby on Windows&lt;/a&gt; which covers Ruby automation in MS Office. I managed to convert Powerpoint slides to somewhat formatted Word docs via Ruby, just to give you an idea.&lt;br /&gt;&lt;br /&gt;I think I'll post a couple of script snippets later on, on what I worked on with Ruby and AutoIT for others to see and for future reference.&lt;br /&gt;&lt;br /&gt;Just to go back to Python, some of you might say that Python does have OLE automation... I had a look at it and it looked very nasty! I wouldn't touch it, unless I looked at the wrong files, and you need to download a library for Python to have OLE  automation ability. With Ruby you use the OLE objects exactly as in VBA but within your Ruby context.&lt;br /&gt;&lt;br /&gt;Currently I am trying to implement a few operations in Ruby to have Browse-For-Folder ability, Open-Dialog, and so on functionality by doing Windows API calls via the DL lib in Ruby. You can catch a quick course on &lt;a href="http://www.jbrowse.com/text/rdl_en.html"&gt;DL here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I hope this will help you as much as it helped me.&lt;br /&gt;God Bless!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-248678542851680846?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/248678542851680846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=248678542851680846&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/248678542851680846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/248678542851680846'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/03/ruby-ruby-ruby.html' title='Ruby, ruby, ruby ...'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2949306689044713791</id><published>2008-03-01T20:35:00.005+02:00</published><updated>2008-03-01T21:13:54.038+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Code::Blocks is released!</title><content type='html'>At last! An official release of Code::Blocks and look'in good!&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I have downloaded the latest release of the Code::Blocks IDE from the &lt;a href="http://www.codeblocks.org/"&gt;site&lt;/a&gt; and so far I am pretty impressed by the features and speed of the application. It now features lots of parsers for script editing and compiler languages.&lt;br /&gt;I wouldn't know about all the other languages and compile projects but I would mainly use C::B for C++ programming.&lt;br /&gt;&lt;br /&gt;The Code Completion is much more responsive than before (you might see it from the second time and onward when opening C::B) and rich in data types (the list box that pops up displays everything from #DEFINEs (except their params) to variables and functions (obviously). Unfortunately it doesn't seem to handle templates. Bummer!&lt;br /&gt;&lt;br /&gt;The wxSmith GUI Editor seems nice enough to use, haven't tried it out completely but it should be sufficient for moderate wxWidgets projects.&lt;br /&gt;&lt;br /&gt;Well thats all that I have seen for now, haven't went through everything but it seems good enough to use though. I have worked with the nightly versions before and even they were pretty good so now I can only image how much better this version is (and how much more stabler).&lt;br /&gt;&lt;br /&gt;Unfortunately I don't know how this IDE compares with others (except VisualStudio but I won't go there) but with those that I have seen so far, it is far better than them (also except Eclipse and Netbeans but they aren't native to C++ development, like you can only do C++ and nothing else, no Gui editors for wxWidgets, no library support, etc. but I could be wrong!), however if I were to compare to wxDevC++, I would say that wxDevC++ has a better Gui editor (but then again I only used C::B's editor for a few seconds, not a few days) but C::B has better coding facilities!&lt;br /&gt;&lt;br /&gt;Cheers and God Bless!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2949306689044713791?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2949306689044713791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2949306689044713791&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2949306689044713791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2949306689044713791'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/03/codeblocks-is-released.html' title='Code::Blocks is released!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-451950565031249478</id><published>2008-02-19T22:24:00.003+02:00</published><updated>2008-02-19T22:34:20.082+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Code::Blocks comming soon</title><content type='html'>The long anticipated IDE for C/C++ and other development tools, is just around the corner...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;On the &lt;a href="http://www.codeblocks.org/"&gt;Code::Blocks home page&lt;/a&gt; (it even runs on a new server with a new web page design), it is mentioned that the long awaited RC 3 will be released shortly, officially!&lt;br /&gt;I have been waiting on this for a long time now, and can't wait to be able to have a stable and installable version of Code::Blocks.&lt;br /&gt;&lt;br /&gt;Code::Blocks is a multi-purpose (GPL 3) IDE for compiler-driven languages and frameworks. It is backed by wxWidgets as its core GUI library, and is also available for c++ development with a built in GUI Editor for wxWidgets projects. It runs on Windows and Linux (probably MacOS as well), gives you the ability to choose which compiler you want to use, has excellent GDB debugging features and the long awaited full implementation of the c/c++ code completion in the editor. Well, unfortunately I can't say how well any of the above will work or perform until a test-run is made on the official release, but I am sure it won't be disappointing.&lt;br /&gt;&lt;br /&gt;You can look at this page to see more &lt;a href="http://www.codeblocks.org/features"&gt;features&lt;/a&gt; that Code::Blocks brings.&lt;br /&gt;&lt;br /&gt;We just need to be patient for a few more days!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-451950565031249478?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/451950565031249478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=451950565031249478&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/451950565031249478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/451950565031249478'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/02/codeblocks-comming-soon.html' title='Code::Blocks comming soon'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-4848532483701653391</id><published>2008-02-13T08:45:00.004+02:00</published><updated>2008-02-13T09:07:57.896+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testimony'/><category scheme='http://www.blogger.com/atom/ns#' term='prayer'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>Hope of what is yet to come</title><content type='html'>I am too excited to hold this for myself. I have to share what God showed me this morning!&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I was driving on our South African roads from Johannesburg to Centurion on my way to work when I read about our Scorpion unit (our Anti-Corruption Unit) which is going to be downgraded to our South African Police Services. I do not mean to speak ill of my country but hear me out.&lt;br /&gt;&lt;br /&gt;I spoke to God on how I felt about it: the crime, the injustice, the corruption... I wasn't whining, I asked God that it should stop, you know, it was more of a plea for change. I mentioned to God that if the Scorpion unit was to split, then all those high officials (charged with so many cases of corruption) would be automatically discharged and not prosecuted by the law (since they would now have power over the Scorpions). Then one of them might become our future president, and then you can just imagine what would happen.&lt;br /&gt;&lt;br /&gt;I just said to God (paraphrased): "When will all this stop? Our country is sick and destroyed by all of this. Please raise us up again, Lord! Bring us all back in line with what you had in mind from the beginning of time, let our government and our people be in your line of Grace and Blessing again, Lord! Deliver us!"&lt;br /&gt;&lt;br /&gt;I thought for a moment about it and then a thought occurred telling me: what if God wants to show that we are not supposed to rely on the Scorpion unit for deliverance?&lt;br /&gt;&lt;br /&gt;When I climbed on the highway, a black BMW went passed me, and I saw something weird written on its numberplate (because it was like one of those custom number plates where you can put anything on) it said "PSALM75 GP".&lt;br /&gt;I then immediately knew what God wanted to tell me. I didn't know what it said but I sort of had an idea. It wasn't coincidence that this happened. This morning I had to fill up my car with gas, if I had not, I might have missed it. It was all orchestrated by God!&lt;br /&gt;&lt;br /&gt;I got to the office this morning, raced to my PC and Googled &lt;a href="http://net.bible.org/bible.php?book=psalm&amp;amp;chapter=75"&gt;Psalm 75&lt;/a&gt;.&lt;br /&gt;Read and see for yourself. I wish I could have taken a photo of that car, but I believe that it was God that brought that car passed me!&lt;br /&gt;&lt;br /&gt;GLORY TO HIS WONDERFUL NAME!!!!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-4848532483701653391?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/4848532483701653391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=4848532483701653391&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4848532483701653391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4848532483701653391'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/02/hope-of-what-is-yet-to-come.html' title='Hope of what is yet to come'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-653019327480029009</id><published>2008-02-08T21:57:00.002+02:00</published><updated>2008-05-02T11:26:00.297+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='tasks'/><title type='text'>Getting Things Done</title><content type='html'>Heard of the GTD term? Not so new anyway but David Allen gave a good seminar on it at Google a while ago...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I read an article on another blog that dealt with GTD and had a embedded video of a 45 minute lecture.&lt;br /&gt;&lt;br /&gt;I personally found it very interresting but there are a few things I want to bring out:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Some of the things he taught sounded like Biblical principles being brought up, especially the part where he talked about "letting things control you", people manipulating you through the smallest things (stop trying to control everything they will end up controlling you, thats the bottom line), and being like a "Master and Commander" where you have your eyes on the prize but humble enough to clean a toilet.&lt;/li&gt;&lt;li&gt;I like his view on the "Mind like water" part, it reminded me of Philipeans 4:6-7 where we shouldn't be anxious but always bringing our concerns to God (right now, "in every situation") to be able to receive His Peace.&lt;/li&gt;&lt;li&gt;The only thing I would tell you to bear in mind is to not apply this in your life like another law. The Bible clearly warns us about it.&lt;/li&gt;&lt;li&gt;To apply distributive cognition on all the tasks you still have to do, REALLY DOES lighten the weight your mind has to carry.&lt;/li&gt;&lt;li&gt;We need to exercise our ability to control by "having dominion" (Genesis) over creation and not people (like we used to do, which is like playing God, BTW).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;It was also entertaining to watch as there were some clips of humor here and there and David really has a good talent for doing what he does (I think, IMHO).&lt;br /&gt;&lt;br /&gt;My favorite part was:&lt;br /&gt;"People think that information overload the is problem... actually if information overload was the problem, you'd walk into a library and die!", "It's actually potential overload..."&lt;br /&gt;&lt;br /&gt;Let me know what you thought about it, I would be interrested to know what you thought about and learn't from it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://linuxhelp.blogspot.com/2008/01/getting-things-done-two-aspects-of-self.html"&gt;http://linuxhelp.blogspot.com/2008/01/getting-things-done-two-aspects-of-self.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[Edit:] Here is also a Wikipedia entry regarding GTD: &lt;a href="http://en.wikipedia.org/wiki/Getting_Things_Done"&gt;http://en.wikipedia.org/wiki/Getting_Things_Done&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-653019327480029009?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/653019327480029009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=653019327480029009&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/653019327480029009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/653019327480029009'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/02/getting-things-done.html' title='Getting Things Done'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-4381865392626270227</id><published>2008-01-30T13:31:00.001+02:00</published><updated>2008-05-02T11:26:13.504+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wiki'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Super CMS</title><content type='html'>I've been assigned a task by the company that I work for to set up a new wiki since the current one was a bit slow, dull, unorganized and just screaming at its visitors "Help me!" ;-)&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I was tempted enough to just upgrade to the newer version since that would mean the quickest easiest path without having to manually migrate the content. Fortunately, my boss insisted that I find something where we can start over from scratch that can handle all we want and get the developers back to using the wiki as it currently sits there being idle.&lt;br /&gt;&lt;br /&gt;I was excited to hear that I didn't have to migrate any data to any new wiki, so the search was on to find a newer, faster, better wiki (I won't mention the one we used, could be bad for them ;-) ).&lt;br /&gt;&lt;br /&gt;We tried &lt;a href="http://wiki.mindtouch.com/Deki_Wiki"&gt;Deki-Wiki&lt;/a&gt; but it was such a hassle to install without the VMWare route. Everything had to be done manually, then a setup page had to be completed, then some more manual configuration, only to find that apache didn't want to work anymore, since Deki-Wiki has its own internal 'server'. Look DekiWiki looks fabulous (except I didn't get a chance to see what other functionality it had) and seems great but it wasn't worth the hassle.&lt;br /&gt;&lt;br /&gt;We looked at other wikis like &lt;a href="http://www.mediawiki.org/wiki/MediaWiki"&gt;Media Wiki&lt;/a&gt; but it was too 'open' for our taste, we needed more ACL control, as in be able to set permissions or rights for viewing/editing/etc per person/group and to block content from non-registered viewers.&lt;br /&gt;&lt;br /&gt;Then I thought: "What about CMS solutions"?&lt;br /&gt;I remembered &lt;a href="http://www.joomla.org/"&gt;Joomla&lt;/a&gt;, and tried that. Already things were much better but unfortunately Joomla lacked the following, otherwise I might have considered using it:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Revision control&lt;/li&gt;&lt;li&gt;Group/Role rights managements (can individually set page rights but is totally inadequate)&lt;/li&gt;&lt;li&gt;General discussion boards, ie. Forums&lt;/li&gt;&lt;li&gt;Scripting ability&lt;/li&gt;&lt;li&gt;Can't block non-registered users from viewing content unless you specifically mark each page with a 'registered' right instead of a 'public' one.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;There were some other points but I can't remember what they were.&lt;br /&gt;&lt;br /&gt;It installed VERY EASILY, the admin pages were astounding and the web pages looked so wonderful, especially if you found the right skin (even on default).&lt;br /&gt;I felt sorry because it looked so great, I even went to the module pages to see if some people developed some modules that could fill the gaps but I didn't find any that met the eye.&lt;br /&gt;&lt;br /&gt;So I went to its brother system '&lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;'. It sounds like a german (or something) name for a water drop (as to the Afrikaans term 'druppel') as the logo suggests.&lt;br /&gt;Drupal looked interresting but I thought that I was just going to find some missing features yet again (and I was right... well somewhat).&lt;br /&gt;I downloaded, installed (also VERY EASILY) and so far I was quite impressed. I could choose between MySQL &amp;amp; PostgreSQL (unlike Joomla which featured only MySQL since PHP and MySQL is well coupled).&lt;br /&gt;By default, Drupal doesn't have everything we needed, so I visited the modules page to find:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Desired page ACL control&lt;/li&gt;&lt;li&gt;Good editor (Drupal doesn't come standard with a rich text editor)&lt;/li&gt;&lt;li&gt;Pagination tags (breaking up long articles/stories into pages via a tag)&lt;/li&gt;&lt;li&gt;Page concurrency control via a 'check out' system (not ideal but at least it will prevent 2 people from making changes to a page at the same time, unlike other wikis and CMSs)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And much more&lt;/li&gt;&lt;/ul&gt;Drupal comes standard with these:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Blogs&lt;/li&gt;&lt;li&gt;Tags&lt;/li&gt;&lt;li&gt;Forums&lt;/li&gt;&lt;li&gt;Page content (custom types too)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Excellent logging and monitoring&lt;/li&gt;&lt;li&gt;Adequate ACL&lt;/li&gt;&lt;li&gt;Skins&lt;/li&gt;&lt;li&gt;Modules&lt;/li&gt;&lt;li&gt;Notification (system or by clicking on a user's contact page to send that person an e-mail from the web interface)&lt;/li&gt;&lt;li&gt;Revision control (need to enable that per page)&lt;/li&gt;&lt;li&gt;Categories&lt;/li&gt;&lt;li&gt;Comments&lt;/li&gt;&lt;li&gt;News aggregation&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Scheduled tasks (using Unix's CRON and Windows's Schedule service)&lt;/li&gt;&lt;li&gt;PHP scripting&lt;/li&gt;&lt;li&gt;Role based assignment to users&lt;/li&gt;&lt;li&gt;And so much more&lt;/li&gt;&lt;/ul&gt;Drupal comes standard with some modules as well that needs to be enabled but you can have a look at them. Since Drupal is PHP based, it already feels much faster than our current wiki and content can be nicely categorized, even in a forum.&lt;br /&gt;&lt;br /&gt;I can't wait to start to implement this on our companies new server and to start setting things up.&lt;br /&gt;I am very impressed with Drupal. If I were to rate it, I would give it 95% (since you need to install some modules that adds missing functionality, so much effort! ;-) ).&lt;br /&gt;&lt;br /&gt;In the end, you need to find something that does what you want it to. I found Drupal and would recommend it to anyone.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-4381865392626270227?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/4381865392626270227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=4381865392626270227&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4381865392626270227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4381865392626270227'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/01/super-cms.html' title='Super CMS'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2138507727245323276</id><published>2008-01-06T15:55:00.000+02:00</published><updated>2008-01-06T20:05:17.739+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>APT-GET for SuSE</title><content type='html'>We all know of Ubuntu-based distros to have apt-get for easy installation but what about SuSE?&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I recently discovered that OpenSuSE actually has apt-get ability, not just RPM packages.&lt;br /&gt;You can install this with YAST or follow this web page: &lt;a href="http://susewiki.org/index.php?title=Install-apt4suse"&gt;Installing apt4suse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I installed a few things with it today and it seems to be working the same way Ubuntu's apt-get is working.&lt;br /&gt;&lt;br /&gt;This makes SuSE 'lekker' to work with.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2138507727245323276?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2138507727245323276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2138507727245323276&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2138507727245323276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2138507727245323276'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/01/apt-get-for-suse.html' title='APT-GET for SuSE'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-3060128854812007667</id><published>2008-01-02T10:41:00.003+02:00</published><updated>2008-05-02T11:33:57.663+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><title type='text'>Hard Drive imaging</title><content type='html'>Formatting again maybe? Don't be so hard on yourself any longer. Start imaging!&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;What is that? It is to duplicate every bit on your hard-drive/partition in an image file for backup purposes. Why? Let me give you an example and maybe you'll discover what I mean:&lt;br /&gt;Usually you format your hard drive, reinstall Windows and/or Linux with their software and settings the way you like it. All fine until something goes wrong and you have to go through it again! It can really take a very long time!&lt;br /&gt;Now imagine just formatting once more, installing everything, backup your PC's hard drive (HD) with an image and later if something goes wrong, you just reload that image on your HD and there you go. Everything back to the way you wanted it. Saves you a lot of time and frustration!&lt;br /&gt;&lt;br /&gt;How can one do that? Here is a tutorial containing a link to a downloadable boot CD to get you started: &lt;a href="http://www.howtoforge.org/back_up_restore_harddrives_partitions_with_ghost4linux"&gt;http://www.howtoforge.org/back_up_restore_harddrives_partitions_with_ghost4linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ghost4Linux (G4L) makes this imaging process possible. When you want to begin, make sure you have an extra hard drive &lt;span style="font-weight: bold; font-style: italic;"&gt;or&lt;/span&gt; a local FTP Server on a different machine than the one you are imaging. The FTP server has to be on your network otherwise you are going to wait like forever! :(&lt;br /&gt;Just because it contains the word 'Linux' doesn't mean that you have to have a Linux distro on your machine or anything, all it means is that it uses a compact Linux version to run its Ghost application to backup your HD.&lt;br /&gt;&lt;br /&gt;It is really simple to use and make sure when compressing, you use something like GZip and not the other compress options, they compress more but take longer (Bz2 take MUCH, MUCH longer and doesn't necessarily make the image size MUCH smaller than GZip). It is important though that you do compress your image. I imaged my 160GB hard drive to my local FTP server and ended up taking 4 GB of space (because of the compression).&lt;br /&gt;&lt;br /&gt;Now don't think that you'll get the same results, though! I had to do a very good Low Level Format (LLF or filling my HD with 0's). This makes the compression more effective! If you start to image your HD after using it for years, you definitely won't have the same result as I had. Even if you delete files, the data remains on the HD, it is just marked/removed from the File Table of the File System. So when you image your HD, even if you are just using 20% of it, your image file size will be close to your HD's capacity. So do a LLF first. It takes long to do that however (like Seagate's Disk Wizard took 6 hours to fill my 160GB SATA drive with 0's [because it writes 0's on a part of the HD multiple times to make sure the data isn't recoverable]), other software just writes a 0 once and it ends up taking a fraction of the time.&lt;br /&gt;If your HD or FTP server has a lot of space, then it probably won't matter to you.&lt;br /&gt;&lt;br /&gt;I remember having to image multiple machines at university 2 years ago. It sure saved a lot of time doing that because UDP has this broadcasting capability. The server just sends 1 packet and the network medium duplicates that packed and sends them to all PCs. We used something that came with DELL PCs which helped do the job well. We could redo like 30 PCs in 30 minutes. Imagine having to format, reinstall Windows and all its applications on each PC at a time, on top of that, you have to carry them all, set them up, configure them for the network, get them on the Active Directory Domain, etc.&lt;br /&gt;&lt;br /&gt;I always wanted to be able to image my PC and I am glad that I came across that tutorial to do that. Let me know how you found it.&lt;br /&gt;&lt;br /&gt;UPDATE (2008-05-01):&lt;br /&gt;Today I re-imaged my PC because Windows was getting slow (don't we all know) and a bit buggy I reckon. However, after the 30-min re-image session I am back to my backed-up state and my PC a whirling again! Now it takes me about 2 hours to get my PC back the way it was again instead of the whole freekin day! Yay to Imaging! Yay to G4L!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-3060128854812007667?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/3060128854812007667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=3060128854812007667&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3060128854812007667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3060128854812007667'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/01/hard-drive-imaging.html' title='Hard Drive imaging'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-3197148442749930706</id><published>2008-01-02T10:37:00.000+02:00</published><updated>2008-01-02T10:41:52.519+02:00</updated><title type='text'>Happy 2008!</title><content type='html'>May everyone have a Blessed and Prosperous 2008!&lt;br /&gt;God Bless and enjoy your break before going back to work/school !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-3197148442749930706?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/3197148442749930706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=3197148442749930706&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3197148442749930706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3197148442749930706'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2008/01/happy-2008.html' title='Happy 2008!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-5571509537725890247</id><published>2007-12-29T19:16:00.000+02:00</published><updated>2007-12-29T19:23:08.847+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Update Checker</title><content type='html'>I came across this blog post that really lead me to an application that I was looking for.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Do you have many applications and you like to have them up to date, etc. but it is such a drag just to go the different sites to see if a newer version is out? Well some apps saves us from this by updating themselves. This is good until you format and put on the older version to update again.&lt;br /&gt;&lt;br /&gt;The blog I came across (&lt;a href="http://googlesystem.blogspot.com/2007/04/filehippos-software-update-checker.html"&gt;http://googlesystem.blogspot.com/2007/04/filehippos-software-update-checker.html&lt;/a&gt;) talks about Update Checker. It is an application that scans your PC really quickly and takes you to a web page with all the applications (in its database) that needs updating. This is really swell. Also when updating, it doesn't take you to the website, it gives you one of File Hippo's links for that file, which could mean faster downloading time because they sometimes have multiple mirrors.&lt;br /&gt;&lt;br /&gt;If you update some software in Windows, I would recommend getting this app and running it manually once in a while. Currently it is in its BETA release.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-5571509537725890247?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/5571509537725890247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=5571509537725890247&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5571509537725890247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5571509537725890247'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/12/update-checker.html' title='Update Checker'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-1956456669086265500</id><published>2007-12-26T23:48:00.001+02:00</published><updated>2008-05-02T11:19:04.148+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><category scheme='http://www.blogger.com/atom/ns#' term='issues'/><title type='text'>A mixed-up matter</title><content type='html'>Some people just rest and relax on vacation but I was too bored to do that :D&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I like vacations, you have weeks on your hands to do what you have to but you always find it too short to spend. You also sleep after midnight and wake up later in the day. Instead of just relaxing, you work on things at home that you didn't have time to do during the working week-days.&lt;br /&gt;&lt;br /&gt;The problem with vacations (for me) is of a fleshly nature, as in you do what you feel like doing. Now being a Christian who wants to be with God, this holds a problem. So far half of my vacation was spent on my PC. Now I wasn't like programming or playing games or unnecessarily surfing the web (although each element was present) I was mostly focusing on reformatting my PC and getting the right Linux distro to work on my Gateway and Personal PC.&lt;br /&gt;&lt;br /&gt;I had a working router/gateway working months ago until we got a new wireless modem (old one got busted) which is USB based and not Ethernet and/or USB based. Not knowing what I know now, I didn't play on a little longer, I formatted and installed Ubuntu. Now don't get me wrong, I think Ubuntu is great but...&lt;br /&gt;I was working and so doing, didn't have much time to work on the router, was mostly not in the mood or just tired. So it was out of action for months. Now I got the internet working but some pages just didn't want to be forwarded to the client PCs on the network. I can surf the web no problem, until I had to update AVG or visit a web page with the HTTPS protocol. It turned out Ubuntu had a bug. I tried the fix with no avail.&lt;br /&gt;I formatted again with good 'ol Open SuSE (10.0; Love that Distro!) and tried again with roaring success (well I was roaring ;-) ).&lt;br /&gt;It was quick and actually pretty painless. I have my little German app on my windows pc to connect and disconnect from the internet, the firewall is up and ready, samba is waiting for shares and I am smiling.&lt;br /&gt;I also installed Open SuSE 10.2 on my personal PC again, and now since I don't have to be the internet master anymore, I can freely explore my new SuSE distro that I got months ago! ;-)&lt;br /&gt;&lt;br /&gt;Now you are all wondering what the problem is right? Time! It took over a freekin week! A week less of my precious vacation and I don't have a very long one indeed! I have just 1 week left and it is back to the working house.&lt;br /&gt;&lt;br /&gt;I also value the time spent with God but my old nature must have gotten the better of me during my holiday season. I am happy and sad at the same time. Happy that my PC is working with my router but sad that time is almost up and that God was lower on my list. Trust me, the flesh is a bastard! Well I can't give it all the credit since I am the one who make decisions myself, so all I can do is hope and pray that I will be able to force myself to be with God. I love being with God but sometimes things just get weird and it becomes hard to just sit and be still before Him. I am not trying to make excuses but unfortunately I am still weak because the flesh is weak.&lt;br /&gt;&lt;br /&gt;Anyway, I also tried out Gentoo linux and I was dissapointed in it that it didn't want to work when I installed it. It looked promising, being efficient and all but it was hassle after hassle, I downloaded the latest version a day or two ago and it didn't want to install, couldn't even get hold of the log files to find out why. I turned to the 2006.1 version, installed it but Gnome didn't want to start, plus it didn't pick up my sound card (NForce built in sound). It was after Gentoo that I decided to go back to SuSE. SuSE never gave me problems with hardware, in fact I once had a PC that could ONLY run SuSE, I tried just about every other distro on it, and the mouse jumps and the SATA drive just couldn't be found, even with Ubuntu.&lt;br /&gt;I don't care what anyone has to say about SuSE, it rocks! The only thing missing is something like apt-get!&lt;br /&gt;&lt;br /&gt;This is my sad and happy story ;-)&lt;br /&gt;&lt;br /&gt;I hope everyone had a wonderful Christmas! And may you all have a wonderful new year!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-1956456669086265500?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/1956456669086265500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=1956456669086265500&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1956456669086265500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1956456669086265500'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/12/mixed-up-matter.html' title='A mixed-up matter'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-9087009701259672224</id><published>2007-10-20T23:14:00.000+02:00</published><updated>2007-10-20T23:17:51.358+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Congratulations South-Africa!</title><content type='html'>We won the Rugby World cup in 2007!&lt;br /&gt;&lt;br /&gt;I just want to congratulate my SA team for winning a 2nd world cup in Rugby tonight. A fantastic tournament it has been, not losing 1 match and beating the British in the final. A tough but good game!&lt;br /&gt;&lt;br /&gt;Congrats SA, you deserved it!&lt;br /&gt;&lt;br /&gt;God Bless!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-9087009701259672224?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/9087009701259672224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=9087009701259672224&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/9087009701259672224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/9087009701259672224'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/10/congratulations-south-africa.html' title='Congratulations South-Africa!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-4795990983305442461</id><published>2007-10-09T19:58:00.000+02:00</published><updated>2007-10-09T20:15:46.826+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Java String Switch</title><content type='html'>The thing I miss about Java is that it doesn't have string switch functionality like C#. The only way to get close to achieving this in Java is through enums.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;A lot of people wonder how that can be done but when I read on a forum post about it I decided to do it myself.&lt;br /&gt;Firstly you'll need the strings you want to look out for. Create an enum containing them, just know that it can only be 1 word strings, don't even try multiple words!&lt;br /&gt;&lt;br /&gt;&lt;pre  style="font-family:trebuchet ms;"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;enum&lt;/span&gt; StrList&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;{&lt;/span&gt;&lt;br /&gt;  car&lt;span style="color: rgb(51, 102, 255);"&gt;,&lt;/span&gt;&lt;br /&gt;  dog&lt;span style="color: rgb(51, 102, 255);"&gt;,&lt;/span&gt;&lt;br /&gt;  human&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Now we can take a whole string and pass it through the switch statement.&lt;br /&gt;&lt;br /&gt;&lt;pre  style="font-family:trebuchet ms;"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;switch&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;(&lt;/span&gt;StrList&lt;span style="color: rgb(51, 102, 255);"&gt;.&lt;/span&gt;valueOf&lt;span style="color: rgb(51, 102, 255);"&gt;(&lt;/span&gt;incommingStr&lt;span style="color: rgb(51, 102, 255);"&gt;.&lt;/span&gt;toLowerCase&lt;span style="color: rgb(51, 102, 255);"&gt;()))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;case &lt;/span&gt;car&lt;span style="color: rgb(51, 102, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;//Do what you want with the 'car'&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(255, 102, 0);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;case &lt;/span&gt;dog&lt;span style="color: rgb(51, 102, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;//Do what you want with the 'dog'&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(255, 102, 0);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;case &lt;/span&gt;human&lt;span style="color: rgb(51, 102, 255);"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;//Do what you want with the 'human'&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(255, 102, 0);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Voila! Ok not the best way of doing it but atleast you would have string switching! ;-)&lt;br /&gt;I would like to look into HashMaps to do this, since Enums perform mappings from string to the actual enum element.&lt;br /&gt;Hope this was interresting or helpful to you. The only reason why you'd want to do this instead of a list of if/else if statements is performance (it is also a bit more readable).&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-4795990983305442461?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/4795990983305442461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=4795990983305442461&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4795990983305442461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4795990983305442461'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/10/java-string-switch.html' title='Java String Switch'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-773834490133675323</id><published>2007-09-14T12:00:00.000+02:00</published><updated>2007-10-09T20:17:31.483+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Java Downloader Code + Proxy</title><content type='html'>For those that read the previous post &lt;a href="http://lastattacker.blogspot.com/2007/09/java-downloader-code_12.html"&gt;Java Downloader Code&lt;/a&gt;, would maybe like to read this post as I have smoothed it out a bit and found out how to have Proxy support.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I have now shaped the code to be more like a Java commandline application downloader. For the proxy settings, you can go to the Windows Control Panel and look for the Java icon, and once opening that control panel app, you can specify the Proxy settings for Java to use and based on that, this downloader will load that settings and use it to navigate through a proxy server. I don't know how this will work on other operating systems other than Windows but I would appreciate it if someone can do a test with this through an authenticated proxy connection.&lt;br /&gt;&lt;br /&gt;Now for the code:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;package&lt;/span&gt; &lt;span class="java-identifier"&gt;javadownload&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;io&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;FileOutputStream&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;io&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;IOException&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;io&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;InputStream&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;io&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;OutputStream&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;io&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;PrintStream&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;net&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;Authenticator&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;net&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;MalformedURLException&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;net&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;PasswordAuthentication&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;net&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;URL&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;net&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;URLConnection&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; &lt;span class="java-identifier"&gt;java&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;net&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;URLEncoder&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;interface&lt;/span&gt; &lt;span class="java-identifier"&gt;DowloadEvent&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-layer-method"&gt;getUpdateInterval&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;void&lt;/span&gt; &lt;span class="java-layer-method"&gt;update&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;received&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;total&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;class&lt;/span&gt; &lt;span class="java-identifier"&gt;Report&lt;/span&gt; &lt;span class="java-keywords"&gt;implements&lt;/span&gt; &lt;span class="java-identifier"&gt;DowloadEvent&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-layer-method"&gt;getUpdateInterval&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;return&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;1000&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;void&lt;/span&gt; &lt;span class="java-layer-method"&gt;update&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;received&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;total&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;System&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;out&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;received&lt;/span&gt; &lt;span class="java-operators"&gt;/&lt;/span&gt; &lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;float&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-identifier"&gt;total&lt;/span&gt; &lt;span class="java-operators"&gt;*&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;100&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; &lt;span class="java-string-literal"&gt;" % completed"&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;class&lt;/span&gt; &lt;span class="java-identifier"&gt;DownloadHandler&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;static&lt;/span&gt; &lt;span class="java-identifier"&gt;URLConnection&lt;/span&gt; &lt;span class="java-layer-method"&gt;getConnection&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;String&lt;/span&gt; &lt;span class="java-identifier"&gt;url&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-keywords"&gt;throws&lt;/span&gt; &lt;span class="java-identifier"&gt;MalformedURLException&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-identifier"&gt;IOException&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;return&lt;/span&gt; &lt;span class="java-keywords"&gt;new&lt;/span&gt; &lt;span class="java-layer-method"&gt;URL&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;url&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;openConnection&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;static&lt;/span&gt; &lt;span class="java-keywords"&gt;void&lt;/span&gt; &lt;span class="java-layer-method"&gt;downloadData&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;URLConnection&lt;/span&gt; &lt;span class="java-identifier"&gt;from&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-identifier"&gt;OutputStream&lt;/span&gt; &lt;span class="java-identifier"&gt;output&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-identifier"&gt;DowloadEvent&lt;/span&gt; &lt;span class="java-identifier"&gt;downloadEvent&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-keywords"&gt;throws&lt;/span&gt; &lt;span class="java-identifier"&gt;IOException&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;InputStream&lt;/span&gt; &lt;span class="java-identifier"&gt;input&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;from&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getInputStream&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;byte&lt;/span&gt;&lt;span class="java-operators"&gt;[&lt;/span&gt;&lt;span class="java-operators"&gt;]&lt;/span&gt; &lt;span class="java-identifier"&gt;data&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-keywords"&gt;new&lt;/span&gt; &lt;span class="java-keywords"&gt;byte&lt;/span&gt;&lt;span class="java-operators"&gt;[&lt;/span&gt;&lt;span class="java-numeric-literals"&gt;1024&lt;/span&gt;&lt;span class="java-operators"&gt;]&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;long&lt;/span&gt; &lt;span class="java-identifier"&gt;time&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;received&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;0&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;rec&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;total&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;from&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getContentLength&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;time&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;System&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;currentTimeMillis&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;while&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;rec&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;input&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;read&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;data&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-operators"&gt;&amp;gt;&lt;/span&gt; &lt;span class="java-operators"&gt;-&lt;/span&gt;&lt;span class="java-numeric-literals"&gt;1&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;output&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;write&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;data&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;0&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-identifier"&gt;rec&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;received&lt;/span&gt; &lt;span class="java-operators"&gt;+=&lt;/span&gt; &lt;span class="java-identifier"&gt;rec&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;       &lt;span class="java-keywords"&gt;if&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;System&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;currentTimeMillis&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-operators"&gt;-&lt;/span&gt; &lt;span class="java-identifier"&gt;time&lt;/span&gt; &lt;span class="java-operators"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;downloadEvent&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getUpdateInterval&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;           &lt;span class="java-identifier"&gt;time&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;System&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;currentTimeMillis&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;           &lt;span class="java-identifier"&gt;downloadEvent&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;update&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;received&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-identifier"&gt;total&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;input&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;close&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;class&lt;/span&gt; &lt;span class="java-identifier"&gt;Main&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;private&lt;/span&gt; &lt;span class="java-keywords"&gt;static&lt;/span&gt; &lt;span class="java-identifier"&gt;String&lt;/span&gt; &lt;span class="java-layer-method"&gt;getFilenameFromUrl&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;String&lt;/span&gt; &lt;span class="java-identifier"&gt;url&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;index&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;url&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;lastIndexOf&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-string-literal"&gt;"/"&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;return&lt;/span&gt; &lt;span class="java-identifier"&gt;url&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;substring&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;index&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;1&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;static&lt;/span&gt; &lt;span class="java-keywords"&gt;void&lt;/span&gt; &lt;span class="java-layer-method"&gt;main&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;String&lt;/span&gt;&lt;span class="java-operators"&gt;[&lt;/span&gt;&lt;span class="java-operators"&gt;]&lt;/span&gt; &lt;span class="java-identifier"&gt;args&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;PrintStream&lt;/span&gt; &lt;span class="java-identifier"&gt;p&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;System&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;out&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;if&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;args&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-identifier"&gt;length&lt;/span&gt; &lt;span class="java-operators"&gt;!=&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;1&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;p&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-string-literal"&gt;"Specify the url to download from."&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;return&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="java-block-comment"&gt;//Use the system's proxy settings specified in the Java control panel.&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;System&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;setProperty&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-string-literal"&gt;"java.net.useSystemProxies"&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-string-literal"&gt;"true"&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;String&lt;/span&gt; &lt;span class="java-identifier"&gt;url&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;args&lt;/span&gt;&lt;span class="java-operators"&gt;[&lt;/span&gt;&lt;span class="java-numeric-literals"&gt;0&lt;/span&gt;&lt;span class="java-operators"&gt;]&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;String&lt;/span&gt; &lt;span class="java-identifier"&gt;filename&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-layer-method"&gt;getFilenameFromUrl&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;url&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;URLConnection&lt;/span&gt; &lt;span class="java-identifier"&gt;con&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-identifier"&gt;FileOutputStream&lt;/span&gt; &lt;span class="java-identifier"&gt;fout&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-identifier"&gt;length&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;try&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;p&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-string-literal"&gt;"Connecting to: "&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; &lt;span class="java-identifier"&gt;url&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;       &lt;span class="java-identifier"&gt;con&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;DownloadHandler&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getConnection&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;url&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;con&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;setUseCaches&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;false&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;       &lt;span class="java-identifier"&gt;length&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-identifier"&gt;con&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getContentLength&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;       &lt;span class="java-identifier"&gt;fout&lt;/span&gt; &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-keywords"&gt;new&lt;/span&gt; &lt;span class="java-layer-method"&gt;FileOutputStream&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;filename&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;       &lt;span class="java-identifier"&gt;p&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-string-literal"&gt;"File size: "&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; &lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;length&lt;/span&gt; &lt;span class="java-operators"&gt;/&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;1024.0f&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; &lt;span class="java-string-literal"&gt;" Kbytes"&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;p&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-string-literal"&gt;"Downloading..."&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;       &lt;span class="java-identifier"&gt;DownloadHandler&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;downloadData&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;con&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-identifier"&gt;fout&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-keywords"&gt;new&lt;/span&gt; &lt;span class="java-layer-method"&gt;Report&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;       &lt;span class="java-identifier"&gt;p&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-string-literal"&gt;"Done."&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;fout&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;close&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;catch&lt;/span&gt; &lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;MalformedURLException&lt;/span&gt; &lt;span class="java-identifier"&gt;ex&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;ex&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;printStackTrace&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;catch&lt;/span&gt; &lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-identifier"&gt;IOException&lt;/span&gt; &lt;span class="java-identifier"&gt;ex&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-identifier"&gt;ex&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;printStackTrace&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-773834490133675323?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/773834490133675323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=773834490133675323&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/773834490133675323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/773834490133675323'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/09/java-downloader-code-proxy.html' title='Java Downloader Code + Proxy'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-4454915291276225398</id><published>2007-09-12T18:30:00.001+02:00</published><updated>2007-10-09T20:18:47.266+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Java Downloader Code</title><content type='html'>I knew how to make C# download something from the internet via the WebClient class but how on earth does Java do it?&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Today I tried looking on the web but using search strings such as "Java", "Download", "Web" just doesn't cut it. :D&lt;br /&gt;So I figured that something had to sit in the java.net package.&lt;br /&gt;Instead of having a WebClient like C#, you use the URL class.&lt;br /&gt;One would ask why do you download from the URL class? Well like Java is, you don't make use of the URL class itself but it is just another "factory" to obtain the connection to that desired url. From the connection you obtain the input stream and thats how you download.&lt;br /&gt;&lt;br /&gt;Here is a sample code I've written which downloads a file and reports the progress to you every second:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; java&lt;span class="java-operators"&gt;.&lt;/span&gt;io&lt;span class="java-operators"&gt;.&lt;/span&gt;FileOutputStream&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; java&lt;span class="java-operators"&gt;.&lt;/span&gt;io&lt;span class="java-operators"&gt;.&lt;/span&gt;IOException&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; java&lt;span class="java-operators"&gt;.&lt;/span&gt;io&lt;span class="java-operators"&gt;.&lt;/span&gt;InputStream&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; java&lt;span class="java-operators"&gt;.&lt;/span&gt;io&lt;span class="java-operators"&gt;.&lt;/span&gt;OutputStream&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; java&lt;span class="java-operators"&gt;.&lt;/span&gt;io&lt;span class="java-operators"&gt;.&lt;/span&gt;PrintStream&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; java&lt;span class="java-operators"&gt;.&lt;/span&gt;net&lt;span class="java-operators"&gt;.&lt;/span&gt;MalformedURLException&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; java&lt;span class="java-operators"&gt;.&lt;/span&gt;net&lt;span class="java-operators"&gt;.&lt;/span&gt;URL&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;import&lt;/span&gt; java&lt;span class="java-operators"&gt;.&lt;/span&gt;net&lt;span class="java-operators"&gt;.&lt;/span&gt;URLConnection&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;interface&lt;/span&gt; DowloadEvent&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-layer-method"&gt;getUpdateInterval&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;void&lt;/span&gt; &lt;span class="java-layer-method"&gt;update&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt; received&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-keywords"&gt;int&lt;/span&gt; total&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;class&lt;/span&gt; Report &lt;span class="java-keywords"&gt;implements&lt;/span&gt; DowloadEvent&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;int&lt;/span&gt; &lt;span class="java-layer-method"&gt;getUpdateInterval&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;return&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;1000&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;   &lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;void&lt;/span&gt; &lt;span class="java-layer-method"&gt;update&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt; received&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-keywords"&gt;int&lt;/span&gt; total&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       System&lt;span class="java-operators"&gt;.&lt;/span&gt;out&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;received &lt;span class="java-operators"&gt;/&lt;/span&gt; &lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;float&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;total &lt;span class="java-operators"&gt;*&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;100&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; &lt;span class="java-char-literal"&gt;" % completed"&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;class&lt;/span&gt; DownloadHandler&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;static&lt;/span&gt; URLConnection &lt;span class="java-layer-method"&gt;getConnection&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;String url&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-keywords"&gt;throws&lt;/span&gt; MalformedURLException&lt;span class="java-operators"&gt;,&lt;/span&gt; IOException&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;return&lt;/span&gt; &lt;span class="java-keywords"&gt;new&lt;/span&gt; &lt;span class="java-layer-method"&gt;URL&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;url&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;openConnection&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;   &lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;static&lt;/span&gt; &lt;span class="java-keywords"&gt;void&lt;/span&gt; &lt;span class="java-layer-method"&gt;downloadData&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;URLConnection from&lt;span class="java-operators"&gt;,&lt;/span&gt; OutputStream output&lt;span class="java-operators"&gt;,&lt;/span&gt; DowloadEvent downloadEvent&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-keywords"&gt;throws&lt;/span&gt; IOException&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       InputStream input &lt;span class="java-operators"&gt;=&lt;/span&gt; from&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getInputStream&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;byte&lt;/span&gt;&lt;span class="java-operators"&gt;[&lt;/span&gt;&lt;span class="java-operators"&gt;]&lt;/span&gt; data &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-keywords"&gt;new&lt;/span&gt; &lt;span class="java-keywords"&gt;byte&lt;/span&gt;&lt;span class="java-operators"&gt;[&lt;/span&gt;&lt;span class="java-numeric-literals"&gt;1024&lt;/span&gt;&lt;span class="java-operators"&gt;]&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;long&lt;/span&gt; time&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;int&lt;/span&gt; received &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;0&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;int&lt;/span&gt; rec&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;int&lt;/span&gt; total &lt;span class="java-operators"&gt;=&lt;/span&gt; from&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getContentLength&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;br /&gt;       time &lt;span class="java-operators"&gt;=&lt;/span&gt; System&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;currentTimeMillis&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;      &lt;br /&gt;       &lt;span class="java-keywords"&gt;while&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;rec &lt;span class="java-operators"&gt;=&lt;/span&gt; input&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;read&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;data&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-operators"&gt;&amp;gt;&lt;/span&gt; &lt;span class="java-operators"&gt;-&lt;/span&gt;&lt;span class="java-numeric-literals"&gt;1&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;           output&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;write&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;data&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;0&lt;/span&gt;&lt;span class="java-operators"&gt;,&lt;/span&gt; rec&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;           received &lt;span class="java-operators"&gt;+=&lt;/span&gt; rec&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           &lt;span class="java-keywords"&gt;if&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;System&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;currentTimeMillis&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-operators"&gt;-&lt;/span&gt; time &lt;span class="java-operators"&gt;&amp;gt;=&lt;/span&gt; downloadEvent&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getUpdateInterval&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;           &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;               time &lt;span class="java-operators"&gt;=&lt;/span&gt; System&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;currentTimeMillis&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;               downloadEvent&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;update&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;received&lt;span class="java-operators"&gt;,&lt;/span&gt; total&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;           &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;      &lt;br /&gt;       input&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;close&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;class&lt;/span&gt; Main&lt;br /&gt;&lt;span class="java-operators"&gt;{&lt;/span&gt;  &lt;br /&gt;   &lt;span class="java-keywords"&gt;public&lt;/span&gt; &lt;span class="java-keywords"&gt;static&lt;/span&gt; &lt;span class="java-keywords"&gt;void&lt;/span&gt; &lt;span class="java-layer-method"&gt;main&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;String&lt;span class="java-operators"&gt;[&lt;/span&gt;&lt;span class="java-operators"&gt;]&lt;/span&gt; args&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;try&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;           String urlStr &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-char-literal"&gt;"http://heanet.dl.sourceforge.net/sourceforge/sevenzip/7z455.msi"&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;           PrintStream p &lt;span class="java-operators"&gt;=&lt;/span&gt; System&lt;span class="java-operators"&gt;.&lt;/span&gt;out&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;           &lt;span class="java-keywords"&gt;long&lt;/span&gt; length&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           p&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-char-literal"&gt;"Connecting to: "&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; urlStr&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           URLConnection con &lt;span class="java-operators"&gt;=&lt;/span&gt; DownloadHandler&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getConnection&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;urlStr&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;           con&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;setUseCaches&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;false&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           length &lt;span class="java-operators"&gt;=&lt;/span&gt; con&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;getContentLength&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           FileOutputStream output &lt;span class="java-operators"&gt;=&lt;/span&gt; &lt;span class="java-keywords"&gt;new&lt;/span&gt; &lt;span class="java-layer-method"&gt;FileOutputStream&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-char-literal"&gt;"7z455.msi"&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           p&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-char-literal"&gt;"File size: "&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; &lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-keywords"&gt;int&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;length &lt;span class="java-operators"&gt;/&lt;/span&gt; &lt;span class="java-numeric-literals"&gt;1024.0f&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt; &lt;span class="java-operators"&gt;+&lt;/span&gt; &lt;span class="java-char-literal"&gt;" Kbytes"&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;           p&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-char-literal"&gt;"Downloading..."&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           DownloadHandler&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;downloadData&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;con&lt;span class="java-operators"&gt;,&lt;/span&gt; output&lt;span class="java-operators"&gt;,&lt;/span&gt; &lt;span class="java-keywords"&gt;new&lt;/span&gt; &lt;span class="java-layer-method"&gt;Report&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           p&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;println&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-char-literal"&gt;"Done."&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;          &lt;br /&gt;           output&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;close&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;catch&lt;/span&gt; &lt;span class="java-operators"&gt;(&lt;/span&gt;MalformedURLException ex&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;           ex&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;printStackTrace&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-keywords"&gt;catch&lt;/span&gt; &lt;span class="java-operators"&gt;(&lt;/span&gt;IOException ex&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;{&lt;/span&gt;&lt;br /&gt;           ex&lt;span class="java-operators"&gt;.&lt;/span&gt;&lt;span class="java-layer-method"&gt;printStackTrace&lt;/span&gt;&lt;span class="java-operators"&gt;(&lt;/span&gt;&lt;span class="java-operators"&gt;)&lt;/span&gt;&lt;span class="java-operators"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="java-operators"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hope you like it, or find it useful. Enjoy and may the Lord Jesus Bless you!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-4454915291276225398?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/4454915291276225398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=4454915291276225398&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4454915291276225398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/4454915291276225398'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/09/java-downloader-code_12.html' title='Java Downloader Code'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-1076216067842286131</id><published>2007-08-30T10:45:00.000+02:00</published><updated>2007-08-30T10:54:13.683+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Google's power-saving alternative</title><content type='html'>I read my PC Format mag yesterday and there was an article about Blackle...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Blackle is a custom Google search engine which is predominately black. Why? No, nothing to do with occult or anything. Apparently a researcher has discovered that for a screen to draw a black screen requires less energy than drawing a white one (details are on the Blackle site's about page: &lt;a href="http://www.blackle.com"&gt;www.blackle.com&lt;/a&gt;).&lt;br /&gt;I thought it might be a good idea to switch to blackle and maybe even do my part for the environment, since I use Google a lot (like most people) and since the Google's page is white.&lt;br /&gt;&lt;br /&gt;The Blackle page isn't that bad looking, in fact I find it easier on the eyes since everything is dark and my eyes are sensitive to bright screens. My brothers always adjust my screen to a brighter setting if they're using my pc.&lt;br /&gt;&lt;br /&gt;So why not give it a try and if you don't mind setting your homepage from Google to Blackle, you too could help save energy, one watt at a time ;-)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-1076216067842286131?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/1076216067842286131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=1076216067842286131&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1076216067842286131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1076216067842286131'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/08/googles-power-saving-alternative.html' title='Google&apos;s power-saving alternative'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-5227720991190898892</id><published>2007-07-28T21:14:00.001+02:00</published><updated>2008-05-02T11:26:57.442+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Java Look&amp;Feel and Access</title><content type='html'>I have recently done a little searching on how to do a few things in Java. I also would like to know Java as well as I would know C++ &amp;amp; C#. On the net I have discovered how to change your look and feel to your native operating system's skin and how to connect to an Access Database using your ordinary JDBC ODBC connection driver...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;It was pretty interesting and not so hard at all. I'll give the basics but if you would like to know more about the Java LookAndFeels (the Java term for skin) you can have a look at this site: &lt;a href="http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html"&gt;How to Set the Look and Feel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Basically to let Java inherit your Windows skin, just add the following before your form component creation code:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());&lt;br /&gt;}&lt;br /&gt;catch(UnsupportedLookAndFeelException ex) {}&lt;br /&gt;catch(ClassNotFoundException ex) {}&lt;br /&gt;catch(Exception ex) {}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Yeah and just as I have remembered Java, you must specify the exception handling, unlike C# where you don't have to. Each has it's + and - but anyway, it doesn't matter in this case. Now you can see that when you run your application, it will have your Windows skin. If you are in Linux or whatever, I guess it would take your WindowManager's skin (i.e. KDE, Gnome, etc.)&lt;br /&gt;&lt;br /&gt;Now for something that I would find useful also is to connect with an MS Access DB via Java. Now I believe you have to have MS Access installed since it should install it's ODBC driver so that Java can use that driver to connect with. All you need is the following connection string and you are set to modify your Access DB.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");&lt;br /&gt;String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=YourAccessDb.mdb;DriverID=22;READONLY=true;";&lt;br /&gt;Connection con = DriverManager.getConnection(database ,"","");&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now the reason I would rather use Java than Access is mainly because I'm am very tired of VBA! I have an existing Access Database and Java is such a more flexible, structured and more preferred language + it is free! Here (if you'd like) you can maybe use Hibernate (haven't tried it myself) for easier SQL queries. Also to migrate from Access to something else like HyperSQL or something is also easier via Java.&lt;br /&gt;&lt;br /&gt;I hope you found this useful as I have!&lt;br /&gt;&lt;br /&gt;God Bless till next time!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-5227720991190898892?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/5227720991190898892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=5227720991190898892&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5227720991190898892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5227720991190898892'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/07/some-cool-java-stuff.html' title='Java Look&amp;Feel and Access'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-1119855516702504281</id><published>2007-07-15T21:09:00.001+02:00</published><updated>2007-07-15T21:49:24.411+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hell'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Hath Hell No Fury?</title><content type='html'>I have &lt;a href="http://www.stumbleupon.com/"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;stumbled&lt;/span&gt;&lt;/a&gt; yet again but I landed on a site very interesting and intriguing. This site challenges some beliefs we have about death and hell.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Read it for yourself, and be the judge.&lt;br /&gt;It certainly provided a new view point of Hell and those who're going to visit it.&lt;br /&gt;One thing inside which I do want to highlight is, that it claims the Bible to say that people &lt;span style="font-style: italic;"&gt;die&lt;/span&gt; in Hell for ever but they don't &lt;span style="font-style: italic;"&gt;burn&lt;/span&gt; there forever (or they won't be &lt;span style="font-style: italic;"&gt;dying&lt;/span&gt; forever).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.helltruth.com/"&gt;http://www.helltruth.com/&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-1119855516702504281?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/1119855516702504281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=1119855516702504281&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1119855516702504281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/1119855516702504281'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/07/hath-hell-no-fury.html' title='Hath Hell No Fury?'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-5306984628926605253</id><published>2007-07-14T21:00:00.000+02:00</published><updated>2008-01-23T18:15:02.378+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bible-study'/><category scheme='http://www.blogger.com/atom/ns#' term='spiritual growth'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>Living for Jesus</title><content type='html'>I have discovered and experienced the Lord working in my life. I can tell you this, the way He reached in my life recently made me want to live more for Him. I can say this though, don't &lt;span style="font-weight: bold;"&gt;try &lt;/span&gt;to become like Jesus, if you do, you live under the law...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;[Please read comments below too]&lt;br /&gt;The whole idea is not for you to put in your effort to reach Jesus Christ, because it's almost like trying to get to the Father with our own strength (and we know we cannot, thats what living under the law was about). Jesus said that we should, instead, live under His Grace (and not abuse it) by being obedient to His laws and word (not trying to obtain your salvation from/through it) and to surrender to Him or to die from yourself.&lt;br /&gt;&lt;br /&gt;Those who don't know what "dying from yourself mean", it's obviously not to kill yourself but to depart from every sin, giving up everything you own, even the people you know and love, to God! You won't be able to do it instantly (as the Apostle Paul mentioned) it takes time, even years.&lt;br /&gt;&lt;br /&gt;How do I know this? Well the word of God says so of course!&lt;br /&gt;&lt;br /&gt;It all started 2 Sundays ago when our preacher's wife had a teaching on the wedding feast featured in &lt;a href="http://www.biblegateway.com/passage/?search=matthew%2022:1-14;&amp;version=46;"&gt;Matthews 22:1-14&lt;/a&gt;. We all know this passage, the king having a wedding feast and the invited didn't want to come, so he invites the people from the streets and one of them was kicked out because s/he didn't have the right clothes on.&lt;br /&gt;We know that those who've accepted Jesus Christ are amongst those who accepted the invitation, right? But what about the one guy who got kicked out, even accepting the invitation? Now that was startling. The one L10T site talks about this too, you can find it &lt;a href="http://www.l10t.com/0000a_wedding_garment.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;But Jesus said that those who believe in Him are saved?! How can anyone be kicked out, having Christ. One may argue that the person didn't really accept Christ, which might be a possibility. But those who accepted the invitation are the ones who are coming to Christ's wedding feast! And the fact that one accepts Christ as Lord and Saviour seems to be only the 1 half. We need to dress accordingly as well but one cannot do that beforehand. We see that there was some time that past between those who accepted the invitation and when the king came down and noticed the guy without the right clothes. Since they were people from the streets, they didn't have the right clothes, so the king must have supplied some to them to dress themselves with. If this is the case, it makes more sense. The guy refused to dress accordingly, thinking he is better than the rest and we notice that he got kicked out into the darkness.&lt;br /&gt;&lt;br /&gt;Well from the Bible we learn a few things about dressing for something. In &lt;a href="http://www.biblegateway.com/passage/?search=romans%2013:14;&amp;version=45;"&gt;Romans 13:14&lt;/a&gt; we find Paul telling his crowd to &lt;span style="font-style: italic;"&gt;put on the Lord Jesus Christ&lt;/span&gt;, and to the other crowd in &lt;a href="http://www.biblegateway.com/passage/?search=ephesians%204:22-24;&amp;version=8;"&gt;Ephesians 4:22-24&lt;/a&gt; telling them to &lt;span style="font-style: italic;"&gt;put off the old man, and put on the new man&lt;/span&gt;. We also find him telling us the weaponry that we should put on in &lt;a href="http://www.biblegateway.com/passage/?search=ephesians%206:13-18;&amp;version=8;"&gt;Ephesians 6:13-18&lt;/a&gt;. What does this all mean? It means, get rid of your old sinful nature (which is supposed to be drowning in the baptist water) and put on the new nature God wants you to have. The nature of Jesus Christ with the protective inventory to protect your new Holy life. In other words be &lt;span style="font-weight: bold;"&gt;obedient &lt;/span&gt;to God and His commandments!&lt;br /&gt;&lt;br /&gt;The way we dress everyday is the way we shape our identity. Sometimes I woke up and just in some sort of way there is almost a switch inside of me that flips to live for or against Jesus. If the switch is set for Jesus, I would go off and &lt;span style="font-style: italic;"&gt;try&lt;/span&gt; to be holy (before I have learned this new way of living) and when switched off, I would easily give in to my sinful desires sometimes without resisting even.&lt;br /&gt;The more I lived like that, the more my identity started shifting. One moment the sins that you really hate to do, suddenly becomes something you really want to do and then you do it without even thinking, you become in bondage to it. What shift had to take place for one to start liking the rebellious actions against the one s/he wanted to serve? Immediately you can see the kind of clothes that person has on. Obviously Christ called everyone, "good and bad" (described in the Matthews passage) to come just as they are, but He didn't call everyone to stay like that (like we've seen).&lt;br /&gt;&lt;br /&gt;After hearing that teaching I wanted to read more but then stumbled on &lt;a href="http://www.biblegateway.com/passage/?search=matthew%2019:16-30;&amp;version=49;"&gt;Matthew 19:16-30&lt;/a&gt;.&lt;br /&gt;Reading it I came across all the elements found in Matthew 22. We find that the man acknowledges that he lacks something to get into heaven and Jesus said "If you wish to be complete..." meaning, if you want to get into heaven, you need to be complete and you would do the following...&lt;br /&gt;This shows something we all know, only the perfect ones can go to heaven. Hearing that His disciples said "Then who can be saved?". Jesus replied "With people this is impossible, but with God all things are possible." This shows that only God can make us perfect enough to enter into heaven. But why was there mentioning of the rich man having it hard to enter? He was rich, he had many things. Read &lt;a href="http://www.biblegateway.com/passage/?search=matthew%2019:21-24;&amp;version=49;"&gt;Matthew 19:21-24&lt;/a&gt;. The rich man didn't want to give up all he had. And there lies the key. To become complete, you need to surrender some things in life. Jesus's disciples did and Jesus assured them that they would get a hundred fold in heaven, all except for Judas obviously (who was going to betray Jesus).&lt;br /&gt;We also can see in the different version of the wedding feast found in &lt;a href="http://www.biblegateway.com/passage/?search=luke%2014:16-24;&amp;version=49;"&gt;Luke 14:16-24&lt;/a&gt;, that a man was also inviting people to his feast but they were all too busy to come. Everyone made excuses and then it occurred to me, people who have many things who do not offer it to Christ will be too busy for Him, or maybe even putting those things above Him. For Jesus said that if we do not leave everything for His sake, then we are not fit for His kingdom. That started to make sense to me.&lt;br /&gt;&lt;br /&gt;Now you see that being obedient and surrendering yourself to God is essential, not only for hereafter but for a blessed Christian life on earth. It is all about Jesus! He gives the Grace, He washes away your sins, and He should be the first love in your life! Bring your thoughts to Him to be placed under His obedience, bring your life to Him to be shaped to be complete! Jesus knows what is best for you and He'll lead you all the way. Look what the disciples had! They were with Him and they weren't asked to do extravagant things which He was not able to teach to them personally and patiently.&lt;br /&gt;&lt;br /&gt;This was only a tip of what I discovered and learned and to write everything down would take forever (well figuratively speaking ;-) ) but I have written down that which I wanted to say. I do remember Jesus saying "He who speaks from himself seeks his own glory" and I sure hope I didn't do that! ;-)&lt;br /&gt;&lt;br /&gt;May the Lord Jesus Bless all of you and may He bring you to him like He is starting to do with me.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-5306984628926605253?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/5306984628926605253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=5306984628926605253&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5306984628926605253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/5306984628926605253'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/07/living-for-jesus.html' title='Living for Jesus'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-8225741640853650583</id><published>2007-07-06T20:33:00.000+02:00</published><updated>2007-07-06T20:36:09.851+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Web Linux</title><content type='html'>This is the weirdest (and maybe even one of the coolest) things I saw on the web...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Imagine Ubuntu but right from your Firefox browser! I don't know how the guy did it but it seems very real and nice! (Except the menus isn't working).&lt;br /&gt;Go to the site and give it a try. Its fast and you can also browse within a Firefox browser in Wubuntu (Web Ubuntu).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wubuntu.weejewel.net/"&gt;http://wubuntu.weejewel.net/&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-8225741640853650583?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/8225741640853650583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=8225741640853650583&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8225741640853650583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8225741640853650583'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/07/web-linux.html' title='Web Linux'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-7707747050986041284</id><published>2007-06-27T21:38:00.000+02:00</published><updated>2007-06-27T21:51:49.109+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>SNOW!</title><content type='html'>For the first time in my life have I encountered snow...&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Not just in my life but today was the first time in 26 years that Johannesburg (in SouthAfrica) has had snow. Previously in 1981 there was deep snow, today was a very thin layer. I have spent some time this morning taking shots with my phone.&lt;br /&gt;I was totally ecstatic about the snow, despite the coldness of below 0 temperatures, it totally made my day. I'm not a winter man, but I always wanted to see the snow. I thank the Lord for this wonderful opportunity I've had!!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img165.imageshack.us/img165/5457/photo0004ya4.jpg"&gt;&lt;img src="http://img165.imageshack.us/img165/5457/photo0004ya4.th.jpg" /&gt;&lt;/a&gt;This was about 6am in our front yard. My phone doesn't have a flash unfortunately.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img183.imageshack.us/img183/2641/photo0008ww7.jpg"&gt;&lt;img src="http://img183.imageshack.us/img183/2641/photo0008ww7.th.jpg" /&gt;&lt;/a&gt; Still our front yard.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img329.imageshack.us/img329/9041/photo0009ch7.jpg"&gt;&lt;img src="http://img329.imageshack.us/img329/9041/photo0009ch7.th.jpg" /&gt;&lt;/a&gt; Same as pic 1 only an hour later&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img165.imageshack.us/img165/9465/photo0015td9.jpg"&gt;&lt;img src="http://img165.imageshack.us/img165/9465/photo0015td9.th.jpg" /&gt;&lt;/a&gt; See how purple my hand got ;)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img176.imageshack.us/img176/9697/photo0016tu9.jpg"&gt;&lt;img src="http://img176.imageshack.us/img176/9697/photo0016tu9.th.jpg" /&gt;&lt;/a&gt; A few streets from us&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img165.imageshack.us/img165/2632/photo0022mn8.jpg"&gt;&lt;img src="http://img165.imageshack.us/img165/2632/photo0022mn8.th.jpg" /&gt;&lt;/a&gt; A nearby sports field&lt;br /&gt;&lt;br /&gt;I've taken more pics and my dad did but I think you get the picture! ;)&lt;br /&gt;&lt;br /&gt;I hope the Lord would Bless us with snow again! The coldness is a small price to pay for such beauty!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-7707747050986041284?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/7707747050986041284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=7707747050986041284&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/7707747050986041284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/7707747050986041284'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/06/snow.html' title='SNOW!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-6650931687961481536</id><published>2007-06-12T15:20:00.000+02:00</published><updated>2007-10-09T20:19:40.038+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Pretty good C# string concatenation</title><content type='html'>I have discovered a pretty cool way of concatenating strings in C#.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Here is the code snippet:&lt;br /&gt;&lt;br /&gt;List&amp;lt;string&amp;gt; list = new List&amp;lt;string&amp;gt;();&lt;br /&gt;list.Add("Some ");&lt;br /&gt;list.Add("string ");&lt;br /&gt;list.Add("to be concatenated");&lt;br /&gt;&lt;br /&gt;string res = String.Join(String.Empty, list.ToArray());&lt;br /&gt;&lt;br /&gt;And here you have an equivalent of StringBuilder, except, you are not working with a character buffer, but with an array of strings. This is more efficient than StringBuilder, &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;if you don't know&lt;/span&gt;&lt;/span&gt; how many concatenations will be done or how big the resulting string is going to be.&lt;br /&gt;The ToArray is not going to linearly create and copy elements to a string[] array, apparently C# is doing it directly behind the scenes.&lt;br /&gt;&lt;br /&gt;You can do the same with an ArrayList and cast the result of it's ToArray() to (string[]). I tried both. If you do know how big the string is going to be, then the StringBuilder is going to be more efficient (just remember to specify the initial capacity, he he ;) otherwise it won't be!)&lt;br /&gt;&lt;br /&gt;Hope you might find it useful.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-6650931687961481536?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/6650931687961481536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=6650931687961481536&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6650931687961481536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6650931687961481536'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/06/pretty-good-c-string-concatenation.html' title='Pretty good C# string concatenation'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2728988098201549490</id><published>2007-05-25T20:57:00.000+02:00</published><updated>2007-10-09T20:19:50.690+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>A few months of C#</title><content type='html'>Working on a system for over 2 months now, I think the C# bug has bitten me ;)&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;What do I mean? Well, in the beginning I was like: "Ahh C#! How stupid!". Typically I was biased, but now thanks to that system I am working on (seeing how the previous programmer wrote it) and the nice concepts of C#, I have totally developed a new thinking paradigm.&lt;br /&gt;&lt;br /&gt;When I've learned C++, I was mainly performance driven and I worked as low level as I could. Seeing now how foolish I was, I realized that it wasn't all a waste. Having a performance-driven background and now adopting a design way of thinking, I believe, can be a very good combination. Yes I do still have a lot to learn about system design but I'm getting there!&lt;br /&gt;&lt;br /&gt;I'm also doing some training courses which our company is offering on some Wednesday mornings which I believe I can benefit from. They're teaching design patterns which could benefit a OO programmer. Singletons, Observer Pattern, Factory Pattern, etc. Interesting stuff which could benefit your development now or later (especially when you have to expand with more functionality or re-use to make something new).&lt;br /&gt;&lt;br /&gt;Now having explored this new OO world, I see a lot of things which C++ lacks, however one must consider what programs you would write with C++ and whether those new C# and Java quirks could benefit you at all. Man, I haven't touched C++ in a while, I have to think of something to write so that I can see how this new knowledge that I've adopted would make my C++ life easier. I like C++, not just for speed but it is something I have grown accustomed to. However, I wouldn't criticize stuff like C# and so on before venturing into it, again.&lt;br /&gt;Learn from my mistakes! ;)&lt;br /&gt;&lt;br /&gt;Have a nice week and God Bless to all!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2728988098201549490?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2728988098201549490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2728988098201549490&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2728988098201549490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2728988098201549490'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/05/few-months-of-c.html' title='A few months of C#'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-6115629749495182618</id><published>2007-05-13T22:04:00.000+02:00</published><updated>2007-07-15T21:43:22.519+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testimony'/><category scheme='http://www.blogger.com/atom/ns#' term='profanity'/><category scheme='http://www.blogger.com/atom/ns#' term='spiritual growth'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>A transformation</title><content type='html'>Hello there everyone. Long time no see, I know. ;)&lt;br /&gt;A lot has happened but probably not to your interest but there are a few things I would like to highlight.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Mostly it is spiritual happenings. I have to admit, it has been a very long time since I did the nightly meditation thing but through God's power and grace I did manage to ask someone in our company to not use God's name idly.&lt;br /&gt;&lt;br /&gt;It was a Wednesday morning after our training session and one of our members drove me to work (they volunteered, since I don't have a car yet) and many times before, I would hear her say God's name a lot.&lt;br /&gt;I prayed and asked if God would give me the courage to act upon it and just as we stopped before the place that I work, I asked her a favor and continued by saying that I would really appreciate it if she wouldn't use God's name in vain. Even behind her sun glasses I could see her eyes open wide, and she said: "Oh I didn't know that it offended you, but I won't say it again".&lt;br /&gt;I am very thankful that she reacted like that and I have to say that many people don't even know (yeah even Christians) that it is wrong to use God's name like that. Last year I also managed (with Jesus's help) to confront a fellow colleague about using God's name and she said that she used it because everyone else did. I then told her that God punishes those who do that.&lt;br /&gt;&lt;br /&gt;For those who haven't read this &lt;a href="http://lastattacker.blogspot.com/2007/01/gods-name-in-vain.html"&gt;post&lt;/a&gt;, you wouldn't know huge thing it was for me when I did manage to confront people like that. I don't want to do it for confront-sake, but for God's name's sake.&lt;br /&gt;&lt;br /&gt;What also happened at church is we are doing a "course" (not actually a course but I can't think of the appropriate name for it) called L10T (Luke 10 Transformation) which is all about whats happening in Luke 10. Read it and you'll notice it's about the 72 disciples that Jesus sent out. Currently we are going through the "blessing" stage where we are to speak the blessing and peace into our work, visitor's home, etc.&lt;br /&gt;The reason why we are doing this is, we as a church want to reach out (rather learn how to apply) to people beyond our borders and at work.&lt;br /&gt;There is so much that I've learned and want to write but it would take hours and many pages to do that.&lt;br /&gt;Maybe later I'll write something that summarizes what I've learnt as I don't want to say something which I've gotten confused about or that doesn't factually get represented.&lt;br /&gt;&lt;br /&gt;May all of you have a Blessed week and see you when I can write again ;)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-6115629749495182618?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/6115629749495182618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=6115629749495182618&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6115629749495182618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6115629749495182618'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/05/transformation.html' title='A transformation'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2522335280322332543</id><published>2007-03-14T20:46:00.000+02:00</published><updated>2007-03-14T21:04:51.676+02:00</updated><title type='text'>Recent stuff</title><content type='html'>At work, they have finally moved me to a project (which gone open a few weeks ago, hence the previous time of updating on my blog ;) ) which I find rather challenging and interesting but also exciting.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I am very busy during the day at work. The system that I'm working on (can't say what it is, not sure if I'll violate any confidentiality ;) ) was written in C#, a language I haven't worked on before but which I am now very familiar with, since its a pure mixture of Java and C++. Not too bad, it has all the parts in all the right places and with Visual Studio 2005, it's not so bad to work in either.&lt;br /&gt;I had a lot of hick-ups in the beginning but it was due to my lack of SQL Server and Visual Studio knowledge that there was issues.&lt;br /&gt;A few days later, it was all sorted out and I could finally develop on the system.&lt;br /&gt;&lt;br /&gt;I would like to talk about the company (besides the one I am employed on) and so on but not tonight. When I get home I am so tired, I just want to sit and rest. In fact, I'm gonna take a bath now, finish up and then go to sleep.&lt;br /&gt;&lt;br /&gt;Just letting everyone know who comes to this site regularly why it suddenly got "abandoned". I mean, more than a month ago, it was almost updated every day, now it gets a post once every few weeks. LOL!&lt;br /&gt;&lt;br /&gt;Anyway, here is something you can munch your thoughts on. I am not presenting it as a piece of truth nor lie (as in I don't say: "This is truth! Know it by heart!" or "This is a lie whatever you do, do not be fooled!"), it is something you think about and decide on. Whats the purpose of it? Well, no particular one I can think of, hopefully you might go back and say, hey, I would never have thought about it before and it was rather useful. It can have a right answer but it could have a million! :p&lt;br /&gt;Here it goes (obviously it makes the assumption that God exists and I believe with my heart that He and His Son and His Spirit lives):&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Is God &lt;b&gt;more&lt;/b&gt; interested in what you are doing &lt;b&gt;presently&lt;/b&gt;, or what you &lt;b&gt;have done&lt;/b&gt;?&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;You are welcome to leave a comment if you have thought about it. Sometimes we people need some brain munchers, to keep those gears spinning in our heads (LOL! Thinking of a cartoon, no offense of course!), otherwise people start putting stuff in our heads for us and then we are nothing but gullible fools!&lt;br /&gt;&lt;br /&gt;God Bless!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2522335280322332543?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2522335280322332543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2522335280322332543&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2522335280322332543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2522335280322332543'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/03/recent-stuff.html' title='Recent stuff'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-3119749782375522248</id><published>2007-02-21T23:02:00.001+02:00</published><updated>2008-05-02T11:20:18.984+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prayer'/><category scheme='http://www.blogger.com/atom/ns#' term='spiritual growth'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><category scheme='http://www.blogger.com/atom/ns#' term='issues'/><title type='text'>Last few weeks of growth</title><content type='html'>I have to testify to something amazing, not so radical to some but to me a big happening.&lt;br /&gt;Remember when last year when I kept complaining that I didn't pray/read Bible, etc? Well it changed dramatically for the most part.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;After discovering this wonderful PDF resource at: &lt;a href="http://www.gfa.org/pray"&gt;http://www.gfa.org/pray&lt;/a&gt;&lt;br /&gt;I have seen prayer in a whole new light. Also at church our reverent's wife told us that when we pray, try not to pray in your head, pray with your mouth (not that there is anything wrong with it, it is more personal and focussed that way). I followed both people's advice (including the writer of the PDF doc) and so far I only missed like 2 or so days (maybe more, I wasn't counting) of prayer and meeting time with God in weeks, which is still a patch in comparison to the time I have missed with God!&lt;br /&gt;I also started following a routine to meditate on the word of God that helps a bit. Instead of just reading the verses over and over, I tried reenacting it which helped me to remember it faster and longer. Proverbs 10:12,13,14,19 and Corinthians 6:19,20 was my nightly verses for meditation for 3 weeks now. Now I want to move over to new ones for nightly review.&lt;br /&gt;&lt;br /&gt;The bad news also is that while I had experienced this break through, Satan wasn't too happy so he started tempting me with old temptations more than ever and more frequently, unfortunately I fell quite a few times as in more than I can afford to. As disappointed as I am, I haven't lost the will to stop going for God. I realize it's because I still have the tendency to leave Christ at home while I go to work. Not a very "Christian professional" thing to do but I won't make any excuses. It's in the programming, that needs some trimming ;) It sounds rather humorous but actually this is quite serious! :(&lt;br /&gt;&lt;br /&gt;Despite me falling for the same temptations I hope you also have discovered something that might help you out in your Spiritual growth. Also, with that comes the price tag of temptation because Satan grows threatened about your progress and seeks ways to attack you. I hope you can succeed where I have failed. I still go on and believe that Christ can help me, I just want to stop removing Him from my mind.&lt;br /&gt;&lt;br /&gt;The thing is, one is so sad when you come looking for forgiveness from Christ, but truth be told, He wants us to enter to His thrown of Grace with boldness. &lt;span style="color: rgb(102, 51, 255);"&gt;(KJVR Heb 4:16) &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-style: italic;"&gt;"Let us therefore come boldly unto the throne of grace, that we may obtain mercy, and find grace to help in time of need." &lt;/span&gt;The problem with feeling bad is that you think that God doesn't want to talk to you or want anything to do with you. According to that verse, the opposite applies!&lt;br /&gt;&lt;br /&gt;Well, good day to all and have a Blessed week!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-3119749782375522248?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/3119749782375522248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=3119749782375522248&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3119749782375522248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3119749782375522248'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/02/last-few-weeks-of-growth.html' title='Last few weeks of growth'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-170245423452537370</id><published>2007-02-11T13:02:00.001+02:00</published><updated>2008-05-02T11:27:54.178+02:00</updated><title type='text'>Announcement/Update</title><content type='html'>Ok, so far nothing much has happened. I removed the Linux Admin and my Dev Tools Collection due to the server who removed everything because files weren't downloaded  in over 30 days or so.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Also I wanted to remove the stuff because I want to sort out a few things before deciding to upload it again one day. Anyone with problems, just mail me!&lt;br /&gt;&lt;br /&gt;I also added a link on the side "InterfaceLIFT", a brilliant site I might add!&lt;br /&gt;&lt;br /&gt;I also came across this site (&lt;a href="http://www.openlp.org/"&gt;http://www.openlp.org&lt;/a&gt;) that hosts an Open Source Church presentation piece of software, one which I am pretty interested in. I think I am going to help them out in my spare time once the C++ source has been released.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-170245423452537370?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/170245423452537370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=170245423452537370&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/170245423452537370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/170245423452537370'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/02/announcementupdate.html' title='Announcement/Update'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2723684525629872224</id><published>2007-01-24T07:30:00.001+02:00</published><updated>2008-05-02T11:21:21.953+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='profanity'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><category scheme='http://www.blogger.com/atom/ns#' term='issues'/><title type='text'>God's name in vain</title><content type='html'>Oh I am so tired of hearing people using God's name in vain!&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Ever since I started working at a new company, I heard A LOT of people saying phrases like (and it pains me to say it :( ): "Oh my God!", "Jesus Christ!", etc. Obviously they're not talking to or even thinking about God but they keep on saying it!&lt;br /&gt;&lt;br /&gt;But I don't know what is worse, saying it or just standing there in silence. :(&lt;br /&gt;Yeah, I really want to walk up to a guy and say "Hey! Please stop using God's name in vain!" I know I should and some of them doesn't even know it is wrong because they hear it on TV and then assumes that it is OK to say it. The worst part of all is they aren't "bad" people, they are not rude (except with God's name) and ok they do swear but thats it. They don't try to make enemies or try to be nasty or anything like that. They are nice people its just the problem with God's name that I'm having trouble with.&lt;br /&gt;&lt;br /&gt;To tell you the truth, I am mostly afraid to tell them not to say it. I rather sit with pain in my heart than confronting people (been doing it for years too). I did once confront someone with Jesus's help (somewhere last year), but I don't know why I cannot do the same now.&lt;br /&gt;So I ask for help, if you sit in this situation and know how to deal with it (especially if a group of people are present) please tell me too! I too want to defend God's Glory! I also humbly ask for people's prayers in this time as this is a big deal to me and I believe it should be a big deal to everyone! God said in Exodus 20:7 (NIV translation) which is &lt;span style="font-style: italic; color: rgb(255, 102, 0);"&gt;"You shall not misuse the name of the LORD your God, for the LORD will not hold anyone guiltless who misuses his name."&lt;/span&gt;&lt;br /&gt;And James4:17 says (also NIV) &lt;span style="font-style: italic; color: rgb(255, 102, 0);"&gt;"Anyone, then, who knows the good he ought to do and doesn't do it, sins." &lt;/span&gt;So by not telling them that they are doing wrong, I am sinning!&lt;br /&gt;I pray about this almost every night before I go to bed, I just really cannot stand this anymore. I just want to act out of love, etc. before I act out of rage/hate.&lt;br /&gt;&lt;br /&gt;So before telling me how bad I am for not confronting them about it, you should consider whether you are confronting them. If you do, then you may tell me that I'm this or that. But in the end, what will it help?! I've been doing it to myself for years and it just didn't make things better but worse. Look, I'm not expecting you to talk good about me either!&lt;br /&gt;&lt;br /&gt;Thanks for taking the time to read this, I hope you would consider the situation with me to see how serious this actually is.&lt;br /&gt;&lt;br /&gt;Amen.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2723684525629872224?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2723684525629872224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2723684525629872224&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2723684525629872224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2723684525629872224'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/gods-name-in-vain.html' title='God&apos;s name in vain'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-3465194625118788580</id><published>2007-01-23T18:30:00.000+02:00</published><updated>2007-01-23T19:01:21.160+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Static Screen</title><content type='html'>As another "Add on" to my &lt;a href="http://lastattacker.blogspot.com/2006/11/nohup-wont-stop.html"&gt;nohup&lt;/a&gt; post, I found out about an other way of getting your downloads done even if your connection to the server (your linux server from which you download stuff) closes while you were tunneled through with SSH (what nohup does).&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I have heard about "screen" which is a GNU application for the linux console. Some people recommended that to me rather than nohup but I thought that screen was to much of a hastle to have and not native to the Linux distribution (as in, you won't find it with any kind of Linux distro on a CD or DVD).&lt;br /&gt;I recently found out that SuSE had it all along and so I've put it to the test.&lt;br /&gt;&lt;br /&gt;Firstly you have to make sure that the computer you want to connect to has screen. Also it must have SSH for it to work like you want it to. So you tunnel through with SSH and just type screen. Thats it! Now you see just your ordinary console screen. You might think "Did it work?" Yes! It did. Now you can open more console screens, navigate through them, close them, etc. just as you are used to with Konsole (KDE Console/Terminal).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.howtoforge.com/linux_screen"&gt;Here&lt;/a&gt; is a good tutorial on it which contains some screenshots and shortcut commands that allows you to access all that functionality.&lt;br /&gt;&lt;br /&gt;I think that you guys might agree that screen is better that nohup, at least in most areas. But like every tool, it has a purpose so before you scrap nohup from your mind (think about it, it is built into linux, screen isn't ;) ), hold on to it, you might find it handy some day!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-3465194625118788580?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/3465194625118788580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=3465194625118788580&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3465194625118788580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/3465194625118788580'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/static-screen.html' title='Static Screen'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-7709459987517391916</id><published>2007-01-22T13:21:00.001+02:00</published><updated>2008-05-02T11:25:34.661+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wiki'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>WikiMatrix</title><content type='html'>A great site for finding the Wiki you want.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I sort of &lt;a href="http://www.stumbleupon.com/"&gt;stumbled&lt;/a&gt; across this website that gives you the ability to view and compare all the different kinds of Wikis on the internet, both retail and free. I would definitely recommend you visit this site first and choose the wiki you want/need.&lt;br /&gt;&lt;br /&gt;It gives you a very good sate of information, from licensing to security, coding tags to server requirements, etc. It really tells you everything you need to know. Also, you can complete a "Choice Wizard" that helps you determine the kind of Wikis that are right for what you want.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wikimatrix.org/"&gt;WikiMatrix&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-7709459987517391916?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/7709459987517391916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=7709459987517391916&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/7709459987517391916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/7709459987517391916'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/wikimatrix.html' title='WikiMatrix'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-7138471879056784269</id><published>2007-01-22T11:57:00.001+02:00</published><updated>2008-05-02T11:27:48.051+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='generators'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>E-mail Icon Generator</title><content type='html'>For those who didn't know (like me until now ;) ), a site that takes your email address and generates a nice image containing your e-mail address.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;You can generate your own &lt;a href="http://services.nexodyne.com/email/"&gt;here&lt;/a&gt;.&lt;br /&gt;This usually helps guard your inbox from spammers who sends out bots to capture e-mail addresses and allows (at the same time) visitors to get your e-mail address. Also it looks nice and neat.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-7138471879056784269?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/7138471879056784269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=7138471879056784269&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/7138471879056784269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/7138471879056784269'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/e-mail-icon-generator.html' title='E-mail Icon Generator'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-537221786711248386</id><published>2007-01-21T22:09:00.001+02:00</published><updated>2008-05-02T11:24:56.807+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>The Red Dot</title><content type='html'>Here is something funny I found at my university last year.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;The reason why it is up now is because I could only recently pull the pictures from my phone.&lt;br /&gt;I thought that it was pretty funny.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img258.imageshack.us/img258/5505/08110611037lf.jpg"&gt;&lt;img src="http://img258.imageshack.us/img258/5505/08110611037lf.th.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img266.imageshack.us/img266/2161/08110611048rc.jpg"&gt;&lt;img src="http://img266.imageshack.us/img266/2161/08110611048rc.th.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was at the one computer lab where students can come to surf the web. The university recently installed a card system which will only allow students with cards with access. I was pointing the phone to take the shots and people inside were looking at me with funny eyes. Other people who walked by saw what I was doing and also took shots. :)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-537221786711248386?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/537221786711248386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=537221786711248386&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/537221786711248386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/537221786711248386'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/red-dot.html' title='The Red Dot'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-2157218399397471947</id><published>2007-01-20T17:46:00.000+02:00</published><updated>2007-01-20T18:31:21.316+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>ProZilla my download fella!</title><content type='html'>He he! :) I discovered this little app for Linux that is like wget, featuring resume downloads, etc. but it can do something that wget doesn't... it can use multiple ports to download.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Many people usually use wget to automate the download process or to donwload something from the server uninterrupted from user interferance (see this post on &lt;a href="http://lastattacker.blogspot.com/2006/11/nohup-wont-stop.html"&gt;nohup&lt;/a&gt;) but now you can increase your download speeds with ProZilla and accomplish the same thing.&lt;br /&gt;You can also request a list of FTP servers to use before downloading sothat it can have a wide variety of servers to download from. You can see this app as Download Accelerator, only for Linux command-line. It has a nice colored interface showing every connection's server, speed and download process and shows you all the stuff you don't see in wget. If you don't want the snazzy ncurses display, then you can pass the '--no-curses' option and it will output just plain text to the stdout pipe. Also if a server doesn't like it when you have more than 1 connection open, you can limit it to 1 (even set the max download speed with &lt;span style="color: rgb(51, 102, 255);"&gt;'--max-bps=n'&lt;/span&gt;) with &lt;span style="color: rgb(51, 102, 255);"&gt;'-1' &lt;/span&gt;being passed to the program's argument list.&lt;br /&gt;&lt;br /&gt;I know that both wget and ProZilla has their good and bad points, but I would recommend ProZilla as your "Server Download Client".&lt;br /&gt;&lt;br /&gt;You can obtain ProZilla &lt;a href="http://prozilla.genesys.ro/?p=prozilla"&gt;here&lt;/a&gt; (you should obviously take the non-GUI version :p ) and to install requires the ncurses development library (should be standard with Linux, else Google for it and install it) and installing it is as simple as:&lt;br /&gt;1. &lt;span style="color: rgb(51, 102, 255);"&gt;tar -jxvf prozilla-2.0.4.tar.bz2&lt;/span&gt;&lt;br /&gt;2. cd into that directory and run &lt;span style="color: rgb(51, 102, 255);"&gt;'./configure'&lt;/span&gt;&lt;br /&gt;3. &lt;span style="color: rgb(51, 102, 255);"&gt;make&lt;/span&gt;&lt;br /&gt;4. go into &lt;span style="color: rgb(51, 102, 255);"&gt;'su'&lt;/span&gt; mode and run &lt;span style="color: rgb(51, 102, 255);"&gt;'make install'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;VOILA!&lt;br /&gt;&lt;br /&gt;Now you can 'proz' (console application name) all your downloads! ;)&lt;br /&gt;Also you can pull the same stunt with nohup by this (I know its a lot of stuff to add but it is worth it ;) ):&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-style: italic;"&gt;nohup proz --no-curses --no-getch -v your_url_to_download &gt; downloads.log &amp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;'--no-curses' &lt;/span&gt;= &lt;span style="color: rgb(255, 102, 0);"&gt;don't make the output fancy for our log file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 204);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;'--no-getch'&lt;/span&gt; &lt;/span&gt;= &lt;span style="color: rgb(255, 102, 0);"&gt;continue without waiting for the user to press a key on an error&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;'-v'&lt;/span&gt; = &lt;span style="color: rgb(255, 102, 0);"&gt;be verbose&lt;/span&gt;&lt;br /&gt;Go and enjoy!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-2157218399397471947?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/2157218399397471947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=2157218399397471947&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2157218399397471947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/2157218399397471947'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/prozilla-my-download-fella.html' title='ProZilla my download fella!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-8369516089952273884</id><published>2007-01-19T13:59:00.001+02:00</published><updated>2008-05-02T11:27:41.190+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Flash Player 9 for Linux</title><content type='html'>I've read on DesktopLinux.com that Adobe has finally released Flash Player 9 for Linux users that is apparently faster than the windows counterpart due to better usage of memory and of better synchronization of video and audio.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;According to Adobe you need (minimum for Linux) an 800MHz PC, 512 MB of RAM, 128MB of graphics memory and the ALSA (Advanced Linux Sound Architecture) compatible audio hardware to run FP9. This sounds a bit overkill compared to 450 MHz PC with 128 MB RAM Windows Requirements. I guess its because it makes better utilization of Linux to play back faster or something. Don't quote me on that! ;)&lt;br /&gt;&lt;br /&gt;Fortunately this works on our favorite browser Firefox ;) and on other GTK based ones. Apparently it won't work on KDE's Konqueror. Well it doesn't bother me since I use Firefox everywhere I go.&lt;br /&gt;&lt;br /&gt;I have not downloaded and installed this as yet, I still have to sort out Linux on my home PC before I go any further.&lt;br /&gt;&lt;br /&gt;You can find out more about this at the following sites:&lt;br /&gt;&lt;a href="http://www.desktoplinux.com/news/NS4744081663.html"&gt;Flash Player 9 for Linux arrives, looks great - DesktopLinux.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.adobe.com/support/documentation/en/flashplayer/9/releasenotes.html"&gt;Adobe Flash Player 9 Release Notes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can also &lt;a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&amp;amp;P2_Platform=Linux&amp;amp;P3_Browser_Version=Netscape4"&gt;get FP9 here&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-8369516089952273884?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/8369516089952273884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=8369516089952273884&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8369516089952273884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/8369516089952273884'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/flash-player-9-for-linux.html' title='Flash Player 9 for Linux'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-6113376914494219967</id><published>2007-01-17T19:14:00.000+02:00</published><updated>2007-02-21T23:27:56.355+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Blog Hacks</title><content type='html'>Today I have accidentally discovered the wonderful world of Blogger hacks.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Now you can read long posts by clicking on the "Read more..." link and the rest of the post will just pop up (I thought I might as well use peekaboos since loading the post's own page is a waste of time and bandwidth and you have to load the entire blog front page in order to hide the "Read More" side) and you will notice that I have also added an automated "Digg It" button which gets added to all my posts automatically.&lt;br /&gt;&lt;br /&gt;I am hoping to find more cool hacks which could prove useful and wonderful in the future which I want to add.&lt;br /&gt;&lt;br /&gt;If you're interested here are 2 major cool Blogger hacking sites:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hackosphere.blogspot.com/"&gt;Hackosphere&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.editthis.info/bloggerhacks/Main_Page"&gt;Blogger Hacks&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I also added this one: :)&lt;br /&gt;&lt;a href="http://lastword.blogspot.com/2007/01/blogger-smilies.html"&gt;The Last Word&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It allows me to add smilies to my blog post automatically. Unfortunately it isn't done at the server side but the author took some convention and made the browser replace all the characters that resembles facial expressions not at page load time but after the page is loaded, which doesn't delay the load of my blog. You will see some characters one moment and then its a smiley the next.&lt;br /&gt;&lt;br /&gt;I also have discovered that when you click on the "Older Posts" link, its as if the page doesn't reload and the "Read More" with the smilies doesn't get applied on the page. But don't worry, as long as you click on labels, links, etc. anything other than the post navigation links such as "Older &lt;/span&gt;&lt;span id="fullpost"&gt;Posts&lt;/span&gt;&lt;span id="fullpost"&gt;" and "Newer &lt;/span&gt;&lt;span id="fullpost"&gt;Posts&lt;/span&gt;&lt;span id="fullpost"&gt;" links, it will work just fine.&lt;br /&gt;&lt;br /&gt;Another discovery (recently) was that the "Read More" links doesn't work so well with browsers such as Opera and Konqueror. While the page loads, it is fine but after it is done, you cannot expand or colapse the post anymore. I'll look into it when I have some time available.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-6113376914494219967?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/6113376914494219967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=6113376914494219967&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6113376914494219967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/6113376914494219967'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/blog-hacks.html' title='Blog Hacks'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-358510206271785613</id><published>2007-01-04T21:23:00.000+02:00</published><updated>2007-01-17T19:09:05.725+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Netbeans offers free CDs</title><content type='html'>Those of you who have worked with the new Netbeans might be pleased to hear that Netbeans.org is allowing you to order a free CD containing: NetBeans IDE 5.5, NetBeans Mobility Pack 5.5, NetBeans Profiler 5.5  and Sun Java System Application Server 9.0_1 Platform Edition.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I'm not sure how long it takes to ship but it saves you some downloading and it comes all on 1 CD. Another great thing is, it also contains Windows, Linux, Solaris x86, Solaris SPARC and Mac OS X versions of Netbeans too.&lt;br /&gt;&lt;br /&gt;They also say that before shipping, they will publish the latest version of Netbeans which is also a good thing and I'm pretty sure that it will also contain the latest JDK.&lt;br /&gt;&lt;br /&gt;Just drop over to &lt;a href="http://www.netbeans.org/"&gt;http://www.netbeans.org&lt;/a&gt; for a free Netbeans CD.&lt;br /&gt;I also saw a C/C++ Pack addon for it to develop in C/C++.&lt;br /&gt;EDIT: The C/C++ addon for Windows requires Cygwin. Thanks to rustypup from PCFormat.co.za (who dug a bit deeper than I) LOL!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-358510206271785613?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/358510206271785613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=358510206271785613&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/358510206271785613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/358510206271785613'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/netbeans-offers-free-cds.html' title='Netbeans offers free CDs'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116773610150562180</id><published>2007-01-02T12:55:00.000+02:00</published><updated>2007-08-03T17:42:44.906+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Bad Vista!</title><content type='html'>You're probably saying: "Oh no, not you too, an Anti-Vista fanatic!" and you might be right!&lt;br /&gt;I want to share this new OS not to discredit MS but their newly released Vista. I like Windows XP, I am using it for years and think it's the best OS that MS has released in years but Vista is for me a huge disappointment and a waste of money (especially for us South-Africans)!&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I'll extend my list of reasons after this list provided by an other Linux Blogger:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://linuxhelp.blogspot.com/2006/12/25-shortcomings-of-microsoft-vista-os.html"&gt;25 Shortcomings of Microsoft Vista OS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I would like to add:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;That OpenGL is also being compromised by calling Direct3D functions instead of having its own traditional OpenGL library handling 3D graphics. Don't you think it will affect performance?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;All the new games coming out will use Shader Model 4.0 (fully or partially) which is only found in DirectX 10.0 and that is only for Windows Vista.&lt;/li&gt;&lt;li&gt;You need a strong computer and graphics hardware to run Vista ordinarily, never mind the heavy games. Also you need to spend so much on Vista, your new computer, and your new games that you'll be in the red if you're not a rich dude! Like you need a "Vista Ready" machine.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://linuxhelp.blogspot.com/2006/12/fsf-starts-campaign-to-enlighten.html"&gt;FSF starts campaign to enlighten computer users against Microsoft's Vista OS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vista restricts the user immensely, so read that before going "YEAH VISTA!!!"&lt;br /&gt;&lt;br /&gt;I've been feeling bad about Vista for a long time and so far it hasn't improved to change my mind. I even worked with Vista - Beta on a machine at university, it was slow, stalled a lot, chowed a lot of RAM and that wasn't even the 3D option (and its one of those new DELL machines with 512 MB DDRII RAM, Intel 2.8 GHz HT CPUs, etc)!&lt;br /&gt;&lt;br /&gt;So far all I saw, read and heard about Vista was negative stuff, I didn't even see 1 positive thing myself. Can someone please tell me what is so great about Vista that MS wants to force us all to use that OS instead of older or alternative OSs? Please, I really want to know! (for curiosity sake)&lt;br /&gt;I really hope that other vendors (for programming, etc.) won't create their SDKs and Development software to be Vista-only in the future!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116773610150562180?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116773610150562180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116773610150562180&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116773610150562180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116773610150562180'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/bad-vista.html' title='Bad Vista!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116764270058800915</id><published>2007-01-01T11:08:00.000+02:00</published><updated>2007-01-01T11:11:40.606+02:00</updated><title type='text'>Happy New Year!</title><content type='html'>Aye! 2007 all ready! This be my first post for 2007.&lt;br /&gt;&lt;br /&gt;Well I wanna keep this sweet &amp;amp; short.&lt;br /&gt;&lt;br /&gt;May you all have a happy 2007 celebration and a blessed year!&lt;br /&gt;&lt;br /&gt;God Bless!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116764270058800915?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116764270058800915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116764270058800915&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116764270058800915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116764270058800915'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2007/01/happy-new-year.html' title='Happy New Year!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116707660263032945</id><published>2006-12-25T21:42:00.000+02:00</published><updated>2007-01-19T21:50:32.483+02:00</updated><title type='text'>Merry Christmas!</title><content type='html'>Hey all!&lt;br /&gt;After returning from vacation (yeah I had one after work ;) ), it was joyful and sad to recognize that Christmas had finally arrived. Sure presents from loved ones and a nice dinner with the family, etc. sure makes it swell but to realize how quickly time went by is just mind blowing. One moment you're working, then you're on holiday, then its new years! Ok, maybe I'm jumping the gun or something but time just feels like its going faster and faster. Maybe it's because we're getting busier and busier. Remember how primary school would just take forever, then in high school things started moving faster and then (if you went) in college or university things really moved fast! Yeah I'm glad to be done with my last year at university and man was it quick.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Anyway, enough about time. It is something that we should value but I don't want to send you guys down a road of depression or something. He he! Lets use the time left for 2006 for a great resting and joyous feasting!&lt;br /&gt;&lt;br /&gt;I would also like to wish everyone a blessed Christmas and a joyous 2007! May the Lord Bless you and give you peace and may your spiritual life reach new heights!&lt;br /&gt;&lt;br /&gt;May we never forget what Christmas is and stands for: The birth of our Lord Jesus Christ who was born in a humble little crib inside an animal shed but who led a Glorious life and then died for us on the cross to restore the Glory of God and the relationship between God and man! So that our sins can be forgiven for those who accept and believe in Jesus and who repents of their sins.&lt;br /&gt;&lt;br /&gt;Again I say: Merry Christmas!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116707660263032945?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116707660263032945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116707660263032945&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116707660263032945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116707660263032945'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/12/merry-christmas.html' title='Merry Christmas!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116552090867748945</id><published>2006-12-07T21:23:00.000+02:00</published><updated>2007-01-17T19:22:07.261+02:00</updated><title type='text'>Tiresome month</title><content type='html'>Hey guys!&lt;br /&gt;After I've finished my exams and such (somewhere middle of November), I started working again at the university and boy was it hectic (and still is).&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I mean I work from 8:00 - 16:30 every day and when I get home, I'm so tired I just fall asleep on my bed. Fortunately I didn't have to work like that the whole year, my employer was kind enough to let me come in once a week (and not even a full day's work) so that I could finish my courses (obviously with a huge pay reduction for a huge reduction in working hours). The thing is, it wasn't like that in the beginning but things just got so bad (as in too much to handle) that I decided to quit (along with the other Honors students who worked with me) but it was a few weeks until they wanted me back.&lt;br /&gt;You would think that ordinary IT work  (not in the main IT department but in one of the smaller departments) is a mental work out, but where I work, I think I've done more exercise in 2 weeks than the whole year! Man, all those computer labs and office computers being upgraded where boxes had to be carried around, tables, cupboards, chairs (many!), etc. it was really physically tiresome and that was without the administration, reception duty and my assigned IT work.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Anyway, I didn't write to look for sympathy&lt;/span&gt;, just to let you guys know why I am so busy.&lt;br /&gt;&lt;br /&gt;In a way I feel good about it because it gives a sense of accomplishment and lets you feel as if you gave something back, you know? I guess it depends how you look at it. Those who are in for the money, would have been hugely disappointed in my work because an assistant's pay isn't like the payment you would expect in the corporate/commercial world with the kind of work that you do here. I did it for an income and for experience. I feel like I've made a contribution there and I am not disappointed that I've worked there either.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116552090867748945?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116552090867748945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116552090867748945&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116552090867748945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116552090867748945'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/12/tiresome-month.html' title='Tiresome month'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116315918517836386</id><published>2006-11-10T13:28:00.000+02:00</published><updated>2007-07-15T21:37:58.717+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Nohup won't stop</title><content type='html'>I was looking for something like this which seems to adequately do what I want it to.&lt;br /&gt;If you have a Linux PC thats connected to the internet with an SSH server on it, you can do something pretty nifty with it.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;How about downloading something using &lt;span style="font-style: italic;"&gt;wget &lt;/span&gt;while not having anyone connected to the SSH server? I mean if you can't use your pc at that moment to download something, you can go to another one, connect to that Linux PC with SSH, use &lt;span style="font-style: italic;"&gt;wget&lt;/span&gt; with &lt;span style="font-style: italic;"&gt;nohup&lt;/span&gt;, close that SSH session and &lt;span style="font-style: italic;"&gt;wget&lt;/span&gt; will still continue to download and automatically kill itself when done.&lt;br /&gt;This is very convenient and makes sure no one interrupts your downloads by closing your SSH or something. Just don't let anyone shut down the internet connection or the Linux PC.&lt;br /&gt;&lt;br /&gt;The only downside is to monitor the progress of the download you have to output it to a file and when you log in you &lt;span style="font-style: italic;"&gt;tail&lt;/span&gt; the log file to see how far it is. Here is how it works:&lt;br /&gt;&lt;br /&gt;After you have connected and logged in do the following:&lt;br /&gt;&lt;pre&gt;&lt;span style=";font-family:arial;font-size:130%;color: rgb(153, 153, 153);"&gt;nohup wget http://www.example.com/some_large_file &gt; output.log &amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;(Note the '&amp;amp;' at the end! Otherwise you have to open up a new console to work on.)&lt;br /&gt;Thats it!&lt;br /&gt;&lt;br /&gt;I found this info at: &lt;a href="http://wiki.linuxquestions.org/wiki/Nohup"&gt;http://wiki.linuxquestions.org/wiki/Nohup&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;EDIT:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I'm using it right now, it is working correctly and quite nicely. Also if you have a Samba server on it aswell, you can let wget place the file in that directory where Samba has shares and download the file onto your PC when its done (what I'm doing now)!&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;I saw that some people wanted to know how to stop a nohup program. Well it is very simple. Lets say you used wget to download something but you want to stop it, simply type 'killall wget' and that download will stop (just be careful if you have multiple wgets, then all of them will 'die', in that case you have to figure out what that app id is and then type 'kill #app_id_num#'.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Also I have recently discovered a faster downloader than wget called ProZilla, click &lt;a href="http://lastattacker.blogspot.com/2007/01/prozilla-my-download-fella.html"&gt;here&lt;/a&gt; to read about it.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Check this post on &lt;a href="http://lastattacker.blogspot.com/2007/01/static-screen.html"&gt;"screen"&lt;/a&gt;. You might find it as a better alternative to nohup.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116315918517836386?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116315918517836386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116315918517836386&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116315918517836386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116315918517836386'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/11/nohup-wont-stop.html' title='Nohup won&apos;t stop'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116257185790326807</id><published>2006-11-03T18:35:00.000+02:00</published><updated>2007-02-21T23:28:01.028+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>PI</title><content type='html'>PI, only a small fraction of what it could become ;) :&lt;br /&gt;&lt;a href="http://www.zenwerx.com/pi.php"&gt;http://www.zenwerx.com/pi.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116257185790326807?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116257185790326807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116257185790326807&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116257185790326807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116257185790326807'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/11/pi.html' title='PI'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116245373173025195</id><published>2006-11-02T09:45:00.000+02:00</published><updated>2007-01-02T16:56:10.071+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>wxDevC++ 6.10 is out!</title><content type='html'>Hey guys! Those who have used wxDevC++ 6.9 can now turn to the latest one that uses wxWidgets 2.7.1, and also the Microsoft Visual C++ compiler, Inline Assembly  highlighting, etc. I myself am not so fond of the IDE's coding interface but it does come with a fully setup wxWidgets library (precompiled) and with a great wx GUI Editor (the best opensource one I've seen so far).&lt;br /&gt;You can view the Change Log @ their site for more info.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wxdsgn.sourceforge.net/"&gt;http://wxdsgn.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I must say though, it is a great improvement over 6.9!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116245373173025195?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116245373173025195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116245373173025195&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116245373173025195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116245373173025195'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/11/wxdevc-610-is-out.html' title='wxDevC++ 6.10 is out!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116245293231923292</id><published>2006-11-02T09:29:00.000+02:00</published><updated>2007-07-15T21:20:41.583+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Installing Linux from Windows</title><content type='html'>Who would have ever thought! Installing Linux from Windows! Yeah I &lt;span style="color: rgb(51, 255, 51);"&gt;&lt;a href="http://www.stumbleupon.com/"&gt;stumbled&lt;/a&gt; &lt;/span&gt;across this article and found it pretty interresting to mention here for those who are interrested.&lt;br /&gt;You can either read the long document or load instlux to install Linux from Windows. &lt;span style="color: rgb(255, 102, 102);"&gt;The author did mention that it would be a very good idea to backup everything! &lt;/span&gt;&lt;br /&gt;I myself haven't tried this but if I am in the mood and I have some time available, I think I'll give it a go! Unless some of you would or have. In that case please tell me how it is. Is it easier, better, ... ?&lt;br /&gt;&lt;br /&gt;Article: &lt;a href="http://marc.herbert.free.fr/linux/win2linstall.html"&gt;http://marc.herbert.free.fr/linux/win2linstall.html&lt;/a&gt;&lt;br /&gt;Instlux: &lt;a href="http://sourceforge.net/projects/instlux"&gt;http://sourceforge.net/projects/instlux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well see yah everyone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116245293231923292?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116245293231923292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116245293231923292&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116245293231923292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116245293231923292'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/11/installing-linux-from-windows.html' title='Installing Linux from Windows'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116227727393027694</id><published>2006-10-31T08:38:00.001+02:00</published><updated>2008-05-02T11:33:08.868+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Screencasting</title><content type='html'>I read an entry on the ubuntu blog that is about screencasting for Ubuntu. What is screencasting? It is to capture screens of your computer desktop at certain time intervals accompanied by audio. You know like when people like to explain something it is better to show than to write down (in most cases I think).&lt;br /&gt;&lt;br /&gt;Here is the link to the original post (thanks to &lt;span style="font-style: italic;"&gt;ubuntonista&lt;/span&gt;): &lt;a href="http://ubuntu.wordpress.com/2006/06/08/how-to-create-a-screencast-in-ubuntu"&gt;http://ubuntu.wordpress.com/2006/06/08/how-to-create-a-screencast-in-ubuntu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;He also has a sample screencasted video to show what you can do with &lt;span style="font-style: italic;"&gt;ffmpeg&lt;/span&gt;&lt;code&gt;.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I'll also want to try and get it to work for SuSE and see if there is an open source way to do this in Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116227727393027694?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116227727393027694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116227727393027694&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116227727393027694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116227727393027694'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/10/screencasting.html' title='Screencasting'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116193464970741710</id><published>2006-10-27T09:32:00.000+02:00</published><updated>2007-08-03T17:42:53.336+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Biased Problem</title><content type='html'>Preferences are a "problem" in our online communities today, isn't it? When someone comments on a new feature added in the (for example) Opera browser, a Mozilla or Firefox fenatic has to come and start a flame war on how much better Firefox is.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Well, personally I find Firefox very satisfactory and fast and yes I have to admit that there was a time and sometimes I still fall for the "this thing is better than that one" gig. My friend once joked about this : "Hmm... so what happened to Intel?".&lt;br /&gt;I have to say that a couple of years ago I had this huge grudge against AMD. To me Intel and Windows was the way to go (that was at the time when Intel had the old Pentium III). Today, I use AMD, Linux &amp; Windows and nVidia. I prefer nVidia over ATI at the moment not necessarily because of speed or whatever but because of development and installation ease (especially in Linux). Try installing an ATI driver in Linux and see what I mean.&lt;br /&gt;&lt;br /&gt;But now here's the problem. You like a certain program or hardware so much that when someone else starts commenting on a competing one, you start going defensive. Why, I don't know. Maybe some of us just have a competing or jealous spirit in us or something. The thing is, why start such a fiasco? If a person prefers Windows over Linux, let him! Maybe he does things where Windows provides a better or easier way than anything else. We can argue and say that he didn't try anything else. But which person who comes from a strong Windows background (knowing only Windows) whould dare step into the scary world of console commands and kernel compilation? ;) Sure thanks to KDE and Gnome, it is steadily changing but if you still want to accomplish the vast majority of Linux chores, you still need to know your way around a console.&lt;br /&gt;&lt;br /&gt;Its fine to recommend a "better" alternative to someone, but the one thing I think most of us need to learn is to not be dominant over what we think is better or not. Like I said, I find myself guilty of this now and again (just to clear a few things out), but this is what I feel on this matter. I want to change. A guy once said that if we just continue to persue one company or product, we would be so strongly associated with it, that they can make with us whatever they want. I try to choose my programs &amp; hardware according to a certain criteria. I like Windows because its quick and simple to get something done (in a sence) + I am more accustomed with it than Linux. I also like Linux because it can provide all the other things, such as being a router at home, etc. I like nVidia because ATI still has to get whipped up into shape and get well documented for development (since AMD bought them out) and I like AMD because... well its cheaper than an ordinary Pentium, its fast &amp;amp; reliable and I would not buy a Celeron because I found those things to be very troublesome (to make it an understatement) even if you didn't, I have but I won't hold it against you if you owned one.&lt;br /&gt;&lt;br /&gt;What do you guys feel on the subject? Am I just being too naive, or impractical?&lt;br /&gt;&lt;br /&gt;Well hope to hear what you have to say. This is afterall something that happens occasionally at our local forum/blog/etc.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116193464970741710?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116193464970741710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116193464970741710&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116193464970741710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116193464970741710'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/10/biased-problem.html' title='Biased Problem'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116121326510112821</id><published>2006-10-19T01:01:00.000+02:00</published><updated>2007-01-19T21:50:58.128+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='my projects'/><title type='text'>Final Project Update</title><content type='html'>Hey guys!&lt;br /&gt;Its 1am now and I am pleased to report that my honours project is complete.&lt;br /&gt;Well its not a Hugues Hoppe version op Geometry Clipmaps but atleast its got all the basics covered. And ok it doesn't looks so good but if one has time, many wonderful things can happen. He he. ;)&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Well basically my terrain can move, without moving the camera... the computer gives the illusion that you are actually moving but actually you are standing still and the world moves around you.&lt;br /&gt;I also added an elevation texture just to make things a bit more distinguishable.&lt;br /&gt;&lt;br /&gt;Well I am demoing tomorrow (well later today ;) ) and I hope that my lecturer aproves my work.&lt;br /&gt;&lt;br /&gt;Here are some screenshots:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img97.imageshack.us/img97/7067/image4jq2.png"&gt;&lt;img src="http://img97.imageshack.us/img97/7067/image4jq2.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looks a bit better than the green one?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img227.imageshack.us/img227/6563/image5ba3.png"&gt;&lt;img src="http://img227.imageshack.us/img227/6563/image5ba3.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here I moved it a bit.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img207.imageshack.us/img207/5088/image6tw1.png"&gt;&lt;img src="http://img207.imageshack.us/img207/5088/image6tw1.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here I moved it some more.&lt;br /&gt;&lt;br /&gt;Well, not much more to report I'm afraid. If you are interrested in learning what Geometry Clipmaps is and how it works, I would really suggest you do! It was a learning experience! He he.&lt;br /&gt;Well, this is LA signing off now for bed.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116121326510112821?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116121326510112821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116121326510112821&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116121326510112821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116121326510112821'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/10/final-project-update.html' title='Final Project Update'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116047204679105562</id><published>2006-10-10T11:15:00.000+02:00</published><updated>2007-01-19T21:51:03.216+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='my projects'/><title type='text'>Much better now</title><content type='html'>I sorta fixed it now.&lt;br /&gt;Now my terrain looks much better!&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;a href="http://img183.imageshack.us/img183/7290/land3ls7.png"&gt;&lt;img src="http://img183.imageshack.us/img183/7290/land3ls7.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;Ordinary&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img80.imageshack.us/img80/8920/land4nz5.png"&gt;&lt;img src="http://img80.imageshack.us/img80/8920/land4nz5.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;Layered view&lt;br /&gt;&lt;br /&gt;In case you didn't notice, it features a 1k x 1k Puget Sound terrain image.&lt;br /&gt;I can go up to the 16k x 16k one aswell! Just need 1 Gig of RAM! ;)&lt;br /&gt;&lt;br /&gt;Thanks for everyone's prayers! Glory be to God and may He bless all!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116047204679105562?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116047204679105562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116047204679105562&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116047204679105562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116047204679105562'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/10/much-better-now.html' title='Much better now'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116042208575204729</id><published>2006-10-09T21:17:00.000+02:00</published><updated>2007-01-17T19:49:09.599+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='my projects'/><title type='text'>Project Update</title><content type='html'>Hey guys!&lt;br /&gt;Remember I said that I will upload my project progress...&lt;br /&gt;Well I finally have some good pics to show.&lt;br /&gt;You will see that my landscape isn't 100% but atleast it looks much better than what I wanted to show you.&lt;br /&gt;The first image is from above, ordinary.&lt;br /&gt;The second is also from above but with layer colors.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img56.imageshack.us/img56/1346/land1st7.png"&gt;&lt;img src="http://img56.imageshack.us/img56/1346/land1st7.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img105.imageshack.us/img105/1676/land2in7.png"&gt;&lt;img src="http://img105.imageshack.us/img105/1676/land2in7.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My Geo-clipmap uses vertex textures and vertex buffer objects. Its written in C++ with OpenGL.&lt;br /&gt;&lt;br /&gt;Here are also a few shots taken from my ray tracer:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img241.imageshack.us/img241/4375/output2um4.png"&gt;&lt;img src="http://img241.imageshack.us/img241/4375/output2um4.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;Has reflections&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img161.imageshack.us/img161/1152/output3kf1.png"&gt;&lt;img src="http://img161.imageshack.us/img161/1152/output3kf1.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;Middle sphere has refraction&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img124.imageshack.us/img124/3078/cool1wl4.png"&gt;&lt;img src="http://img124.imageshack.us/img124/3078/cool1wl4.th.png" /&gt;&lt;/a&gt;&lt;br /&gt;Just a cool image. Feel free to use it as a wallpaper.&lt;br /&gt;&lt;br /&gt;I don't wanna brag about this (and please don't see it that I am, I really don't want to) but I enjoy making this stuff and to show what I made for others who are interrested, to encourage them to try and make better stuff. I &lt;span style="font-weight: bold;"&gt;might &lt;/span&gt;give some info about this later. Graphics is for the eye to enjoy! No wonder why they call it eye candy!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116042208575204729?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116042208575204729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116042208575204729&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116042208575204729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116042208575204729'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/10/project-update.html' title='Project Update'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-116033522705773579</id><published>2006-10-08T21:14:00.001+02:00</published><updated>2008-05-02T11:22:34.388+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='satanism'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><category scheme='http://www.blogger.com/atom/ns#' term='issues'/><title type='text'>A Christian Viewpoint on Satanism</title><content type='html'>Hey guys! I received this e-mail just now and I feel that I need to place it on this site, just incase you or someone you know is involved with something like this.&lt;br /&gt;I know some people who would just laugh at this matter saying that it is nonsence because  they don't believe in a spiritual realm, etc. but I can testify that there is one and that occultic activities is not a laughing matter. It ensnares and destroys lives.&lt;br /&gt;Lets just say that I love everyone as a brother to tell them about this. You may know about this already but it won't hurt to read through this. It really showed me some things I didn't know.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Even if you're not in South-Africa, this is of major concern world-wide!&lt;br /&gt;&lt;/span&gt;Here is the message I got:&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;More and  more youth in our schools are exposed to the destructive practices of Satanism.  Schools and parents are uninformed and mostly unaware of satanic activities that  their children engage in. Satanism has become an issue of great concern in our  society. It is a phenomena that crosses the city limits into the rural areas of  our nation. The primary goal of Satanism is to alter people's values and turn  them against themselves, their beliefs, family, God, and society. The news wires  carry story after story about young children being kidnapped, only to be found  later as victims of some bizarre ritualistic crime. It is the responsibility of  the &lt;st1:place st="on"&gt;&lt;st1:placetype st="on"&gt;church&lt;/st1:placetype&gt; of  &lt;st1:placename st="on"&gt;Jesus Christ&lt;/st1:placename&gt;&lt;/st1:place&gt; to warn and  educate people in our communities. &lt;b&gt;&lt;span style="font-weight: bold;"&gt;Col  1:28&lt;/span&gt;&lt;/b&gt; GNB says “So we preach Christ to everyone, with all possible  wisdom &lt;b&gt;&lt;span style="font-weight: bold;"&gt;we warn and teach them&lt;/span&gt;&lt;/b&gt; in  order to bring each one in to God’s presence as a mature individual in union  with Christ”.  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;There are  two equal and opposite errors into which we can fall about devils. One is to  disbelieve in their existence. The other is to believe and to feel an unhealthy  interest in them. It does affect us, it is staring us in the face. We can either  choose to run away out of fear, or face the agents of Satanism head-on through  Christ. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 style="text-align: justify;"&gt;&lt;b&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Defining the  Occult&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/h3&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Cult&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;A “cult” is  a group of people polarized around an individual with a magnetic personality,  who deviates from orthodox Christianity by distorting the central message of the  Bible by additional revelation or by introducing their personal understanding of  primary biblical doctrines such as the person of Jesus Christ, heaven, hell,  salvation, atonement, the virgin birth, etc. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Occult&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Secret or  hidden knowledge. This knowledge is not discerned by the five senses and is  therefore, supernaturally received through the practice of divination.  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Witchcraft&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;The use of  scripturally forbidden supernatural powers to manipulate people and events.  Commonly known as the "craft of the wise" or "Wicca", the worship of nature and  feminine energies mother nature. Witchcraft is manifested in two opposing views:  white magic, and black magic or witchcraft (see &lt;b&gt;&lt;span style="font-weight: bold;"&gt;Deut. 18:10&lt;/span&gt;&lt;/b&gt;) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Wicca practitioners believe in a  balanced polarities, especially that of the feminine and masculine. These two  aspects of nature are embodied in two deities, known as the &lt;i&gt;&lt;span style="font-style: italic;"&gt;Goddess &lt;/span&gt;&lt;/i&gt;and &lt;i&gt;&lt;span style="font-style: italic;"&gt;God. &lt;/span&gt;&lt;/i&gt;Traditionally most Pagan gods such as  Diana, Hecate, Pan and Zeus are considered to represent the different aspects of  the Goddess and God. Most traditions worship the two deities as equals where  none deserves more importance than the other. This usually translates into a  balance between the feminine and masculine forces in a coven, although men tend  to be a minority in the Wicca religion (Adler, 108; Matthews, 344). However a  few branches, such as Dianic, give more (or sole) importance to the feminine  aspect (Lewis, 280). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Many regard the gods as real, not  simply as aspects of a male or female deity. Hence, the gods are worshipped as  themselves. According to Wicca tradition, the Goddess is the immanent existing  force and the origin of all creation as in the Earth, nature and life itself.  Evidence of Goddess worship since the pre-Christian era exists in the form of  small statues and carvings of voluptuous female figures that have been found  throughout &lt;st1:place st="on"&gt;Europe&lt;/st1:place&gt; (Cabot, 21-22). The Goddess  has three faces: the Maiden, the Mother and the Crone (Lewis, 19-20). These  faces correspond to the many different cycles in nature: the waxing, full and  waning phases of the moon; the menstrual cycle and the cycle of life in birth,  life and death.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Three main beliefs guide  practitioners through their actions and beliefs. The first law is known as the  &lt;i&gt;&lt;span style="font-style: italic;"&gt;Wicca Rede, which&lt;/span&gt;&lt;/i&gt; states: "An ye  harm none, do what ye will." The basic meaning is that members are allowed to  follow whatever path they choose so long as no harm befalls others, including  themselves. The Wicca rede also serves as an ethical guideline for magical  practices in everyday life and ritual. The Wicca Rede is closely related to the  writing of Aleister Crowley who said, "Do what you will is the whole of the  law." The second law that Wiccans follow is the &lt;i&gt;&lt;span style="font-style: italic;"&gt;Threefold Law&lt;/span&gt;&lt;/i&gt;, which simply states that a  person's deeds return to him/her three times over. The Threefold Law has large  implications in governing one's behavior because due to its meaning, the  repercussions of both good and evil behavior return to their originator three  times over (Matthews, 341). The final belief is that of &lt;i&gt;&lt;span style="font-style: italic;"&gt;Reincarnation. &lt;/span&gt;&lt;/i&gt;Wicca’s do not believe in  heaven or hell since death is considered to be another form of  existence.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;The main  tools utilized by members during rituals are the &lt;i&gt;&lt;span style="font-style: italic;"&gt;wand&lt;/span&gt;&lt;/i&gt;, &lt;i&gt;&lt;span style="font-style: italic;"&gt;cup&lt;/span&gt;&lt;/i&gt;, &lt;i&gt;&lt;span style="font-style: italic;"&gt;pentacle &lt;/span&gt;&lt;/i&gt;and &lt;i&gt;&lt;span style="font-style: italic;"&gt;athame&lt;/span&gt;&lt;/i&gt;, which is a type of black-handled  dagger. These objects represent fire, water, earth and air, respectively. There  are three types of Wicca gatherings: Sabbats, Esbats and special purpose. In a  special purpose gathering, a coven meets to deal with a common goal or issue  that needs immediate attention, such as casting a health spell to aid a sickly  friend. Most magical rites are performed at Esbats, which are small gatherings  that correspond to the phases of the moon. Covens usually celebrate the Esbats  alone, a practice which helps to reaffirm the bonds within a coven (Adler, 110).  Larger and more tribal festivals also take place during the  year.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;White  Magic&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;The use of  supernatural power to manipulate a person or an event to bring about good. The  practice of divination is used to bring about "positive" results such as  knowledge, healing, etc. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Black  Magic&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;The use of  supernatural power to manipulate a person or an event to bring about evil or  destruction. Manipulation is achieved by use of rituals and the casting of  spells. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Satanism&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Unlike  Witchcraft, Satanism is the worship of Satan, formerly known as Lucifer, and the  practice of Black Magic. Satanism is a reaction against the Christian church and  the Word of God in particular. Satanism promotes a do-what-you-want attitude and  is ultimately the worship of oneself. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Categories of  Involvement&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt; &lt;ol type="1"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span class="style581"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Multi-generational international organization    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span class="style581"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;National organizations &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span class="style581"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Independent self-styled groups    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Individual dabblers    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;The greatest  increase in involvement is among the latter group; the dabbler. The dabbler is,  in most cases, from a &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;middle to upper-middle class  Caucasian home&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; and is a user of &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;drugs&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; and other  &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;substances&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; and are  &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;sexually  promiscuous&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;. In most cases they &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;are bright and do well in  school&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;; however, they are often &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;bored and are not challenged to  meet their full potential&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;. They tend to have a &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;low self-worth&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; and  are unable to distinguish between right and wrong because of their relative  ethical system. They often &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;have problems in the  home&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; and in relating to other people around them.   &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Abuse, both physically  and emotionally&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;, is another aspect of this mix. Young Satanists  are often abused children who know no other way to relate to people. Some are a  part of a multi-generational family involved in worshiping Satan as savior. The  larger concern is not in the number of young people involved in satanic activity  but what they are capable of doing when they become absorbed in the worship of  Satan. Satanism centers around involvement in animal sacrifice, blood ritual,  sex, the use of drugs and sometimes murder. According to "The Addiction Letter"  (1/89), Most Satanism revolves around a drug and alcohol dependent lifestyle  which glorifies violence, hate, lying, stealing, and vandalism. The involved  youngster craves a higher power to validate . . . chemical dependence and Satan  fills the spiritual void.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h4 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Satan's  Goal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;According to scripture (&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Matt. 4:9, 2 Cor. 4:4, Rev. 12:9&lt;/span&gt;&lt;/b&gt;), Satan's  goal is to deceive man by blinding him to the truth of the gospel and to receive  worship for himself (&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Isa.  14:12-14&lt;/span&gt;&lt;/b&gt;). On a more practical level Satan desires to alter an  individual's values and turn them against themselves, their beliefs, family, God  and society. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h4 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Secret  things&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Another common denominator in satanic groups  is secrecy. Individuals keep a journal of activity, rituals, charms, or messages  in a notebook, blank book and sometimes even a floppy disc. This information is  often written in an alphabet that is not widely known. Alphabets commonly used  by occultists are: the Witches' alphabet, the Celtic alphabet used by the  Druids, the Enochian alphabet, the Egyptian and others.  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h4 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Personal  Initiation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Initiation plays a major role in group  activity. Through initiation an individual is given a chance to declare total  allegiance to Satan by participation. Often one will sever a portion of a finger  or a toe to indicate their commitment to the unholy one. Other acts include  being a participant in a ritual where mutilation of an animal or human is a part  of the activity. These acts are usually videotaped to be used at a later time to  keep the individual in line if need be. In some cases a criminal act is  perpetrated where the initiate is involved in a key role. An unholy communion of  sorts is taken during initiatory rituals where a cup or chalice (usually stolen  from a church) is used containing a mixture of wine, blood (human or animal) and  urine. Satanism is not for the faint-hearted. Other methods of initiation  include body markings. An inverted cross may be burned into one's forearm or  chest, etc. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h4 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Body  Markings&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;It is important to note that body markings  can be used for the preparation of a sacrifice, as well as initiation into a  group. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style52" style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style="font-weight: bold;font-family:Arial;font-size:11;"  &gt;Satanic Murders  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="style58" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Satanism requires blood and murder.  As Aleister Crowley wrote in the Book of the Law: "The best blood is of the  moon, monthly: then the fresh blood of a child, or dropping from the host of  heaven: then of enemies; then of the priest or of the worshippers: last of some  beast, no matter what." This is one philosophy carried over directly into  Satanism. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;It is not strange, as the Word of  God also clearly condemn these practices: &lt;b&gt;&lt;span style="font-weight: bold;"&gt;Deut. 18:10&lt;/span&gt;&lt;/b&gt; says: &lt;em&gt;&lt;i&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;“There shall not be found with thee  any one that &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/em&gt;&lt;strong&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-style: italic;font-family:Arial;" &gt;maketh his son or his daughter to  pass through the fire&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/strong&gt;&lt;em&gt;&lt;i&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;, one that useth divination, one  that practiseth augury, or an enchanter, or a sorcerer,”  &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/em&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Anton LaVey  of the First Church of Satan in &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;San  Francisco&lt;/st1:city&gt;, &lt;st1:state st="on"&gt;California&lt;/st1:state&gt;&lt;/st1:place&gt;,  says that Satanism is a blatantly selfish, brutal religion. It is based on the  belief that man is inherently a selfish, violent creature... that the earth will  be ruled by those who fight to win. Satanism challenges the biblical teaching  regarding man's relationship to others. We are to esteem others better than  ourselves, and we are to be team players. In 1 Corinthians we read about being a  part of the body of Christ, whereas, Satanism esteems the "self" over others.  Young Satanists believe that the strong will rule with Satan. Once they are  sufficiently involved, they often make a pact with Satan. They commit themselves  to a future date when they will take their own lives by suicide. They believe  that if they submit themselves to Satan in death, they will come back in another  life as a stronger being and rule with him forever. According to recent  statistics, fourteen young people a day take their own lives.  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;The Power that  Entices&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Power has  become an obsession with young Satanists. It is sought after on the physical,  mental, and spiritual levels. According to one former occultist, the greatest  lure into the occult is "power" and "knowledge." Not just corporate power but  personal power. Likewise, Satanism offers its lure to the youth in our society.  Drugs and sex have become the bait that so often ensnare the unsuspecting. With  the increase of satanic activity, a profile of those involved in Satanism has  emerged. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Music&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Music has  always been at the center of the youth culture. The problem arises when the  lyrics promote barbaric behavior. The Night Stalker, Richard Ramirez of  &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Los Angeles&lt;/st1:city&gt;&lt;/st1:place&gt;,  believed that Satan made him invincible. Police say the style of the brutal  rapes and 16 murders Ramirez committed resembled the lyrics of the song "Night  Prowler" on AC/DC's LP "Highway to Hell." Along with Ramirez' fascination with  AC/DC, he used cocaine and PCP in conjunction with a deep interest in Satan  worship. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Rock and  roll is turning too often to sex, Satanism, drugs and violence for its major  themes and corrupting the values and views of unwary young people. The music  that causes the greatest concern is the various types of "metal" music. Metal  has been classified into three types. First, is party metal, and it represents  the most popular style of music. Groups like Bon Jovi, Motley Crue, and Def  Leppard are representative of party metal. They tend to glorify sexuality and  the party spirit. The second type is "trash metal" represented by groups like  Metallica, Anthrax, and Megadeth. The primary focus of "trash metal" is violence  and death. The third type is known as "black metal" and is overtly satanic. The  &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;lyrics encourage such  activities as incest, necrophilia, rape, torture, and human  sacrifice&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;. Black metal is represented by groups like Venom and  Slayer. King Diamond is perhaps the most satanic of all "black metal" groups. He  openly professes Satan and incorporates a large amount of satanic activity into  his performances. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;As  Christians we should be especially concerned about the lyrics in the music of  the youth culture. We cannot afford to allow another generation to become  polluted with the immoral themes found in today's music. As parents it is  imperative that we maintain open communication lines with our young people.  Without open communication it becomes improbable that we can affect the  listening habits of our children. Second, we cannot be hypocritical in our  personal listening habits. Third, we need to become familiar with the type of  music our children listen to and be willing to acknowledge the good and be  prepared to positively criticize that which is not appropriate within our  household. Last, we as parents need to recognize that if our child is involved  in rebellious music, we must attempt to understand what unmet need in his life  is being met by his musical diet. &lt;b&gt;&lt;span style="font-weight: bold;"&gt;Galatians  5:19-21&lt;/span&gt;&lt;/b&gt; says that the deeds of the flesh are evident, which are:  immorality, sensuality, idolatry, sorcery . . . those who practice such things  shall not inherit the &lt;st1:place st="on"&gt;&lt;st1:placetype st="on"&gt;Kingdom&lt;/st1:placetype&gt; of &lt;st1:placename st="on"&gt;God&lt;/st1:placename&gt;&lt;/st1:place&gt;. Therefore, it is imperative for us as  adults and youth to only listen to and think upon those lyrics that would honor  God and His principles. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;The Games of  Destruction&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Satan has  used a number of tools over the centuries to ensnare the naive. The &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Ouija Board&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; has  proven to be particularly useful. According to the Dictionary of Mysticism the  Ouija Board is "an instrument for communication with the spirits of the dead."  The Ouija Board is an open door into the world of the occult and demonic  activity. Disembodied spirits speak to the living through the medium of the  Ouija Board. The greatest danger of the Ouija Board is that individuals begin to  place their trust and future hope in the message the board brings. Other  dangerous games or movies include: DUNGEONS AND DRAGONS (fantasy/magic/dangerous  quests), &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Pokemon&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; (short for  &lt;strong&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;POCKE&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;t &lt;strong&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;MON&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;ster)  (magic/violence/murder), &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Harry Potter&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;  (fantasy/witchcraft/wizards), &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Hellraiser&lt;/span&gt;&lt;/i&gt;&lt;/b&gt; &amp;amp;  &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Hellboy&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;,  &lt;b&gt;&lt;i&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;DIABLO&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;  – Playing with the Devil (Computer game with Occult spells, magic and blatant  satanic symbols and Game "&lt;strong&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-style: italic;font-family:Arial;" &gt;Magic&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/strong&gt;"  that is similar to that of Dungeons and Dragons and Rune Quest. It is a card  game, but with strong occult practices embedded in the game. Magic spells,  encounters with demons and satanic forces forms the core elements of the  game.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style58" style="margin: 0cm 0cm 0pt; text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;As a  Christian our only source of revelation regarding future things is to be God's  Word. We are to look to Jesus Christ and His teachings to properly understand  our problems and seek a solution. &lt;b&gt;&lt;span style="font-weight: bold;"&gt;Deuteronomy  18&lt;/span&gt;&lt;/b&gt; tells us to beware of mediums and those who practice divination.  "If any of you lack wisdom, let him ask of God, that giveth to all men  liberally, . . . and it shall be given him." (James 1:5)  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h4 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Characteristics that may indicate  satanic involvement&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt; &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Avoiding family    members &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;A change in friends    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Becoming secretive    about activities &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Loss of interest in    extra-curricular activities &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Personality changes    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;An unusual interest    in books, movies, videos, etc. with an occult theme &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Use of drugs and    alcohol &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Lack of attendance    of worship with family &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Supernatural powers    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Music interest into    heavy metal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Extraordinary    Rebelliousness&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Extreme aggressive    outbursts &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Cutting and    bruising of self&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Experiencing    sleeplessness and nightmares&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h4 style="text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Individuals are recruited into  satanic groups by any number or combination of the  following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt; &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Free drugs and/or    sex &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Companionship    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Power    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Money    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Pornography    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;   &lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;Personal choice    &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span lang="EN-GB"  style="font-size:11;"&gt;It is sometimes very clear when children are  involved in the way they live and talk. Many a parent has been completely  ignorant of the signs mentioned above and have not realized that their children  were actually involved in the occult. What does happen is that most children  simply start off by dabbling with the occult. This includes the playing of the  well-known &lt;strong&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;"Glasie-glasie"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;. What  sometimes starts off as an innocent game ends in complete involvement in  Satanism.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="style106" style="text-align: justify;"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;Conclusion&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;strong&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p class="style106" style="text-align: justify;"&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style="font-weight: normal;font-family:Arial;font-size:11;"  &gt;Let us not be  ignorant any longer. The Word of God is very clear, people that engage in  Satanism and related practices will be cut off from God and face eternal torture  in hell. The answer to combat Satanism and its effects is through the redemptive  work of Jesus Christ on the cross. Only He can set people free  (“&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:11;"  &gt;If the Son, therefore, shall make  you free, ye shall be free indeed.") John 8:36. God does promise protection for  His children according to 2 Thess. 3:3, Ps 91:10-11, Ps 121:7, Luke 10:19, Ps  18:1-2. The time has come to unite as one and fight our enemy as one. Schools  and Organizations that need more information or want to arrange a workshop  relating to Satanism, the occult, substance abuse or child abuse can contact  Famcare Ministries on 011-955 6795/97 or send an e-mail to &lt;a href="mailto:info@famcareministries.co.za"&gt;info@famcareministries.co.za&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt; &lt;span style=";font-family:Arial Unicode MS;font-size:100%;"  &gt;&lt;span style="font-size:12;"&gt;Research and article content prepared by  Pastor Pierre Eksteen&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial Unicode MS;font-size:100%;"  &gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:Arial Unicode MS;font-size:100%;"  &gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-116033522705773579?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/116033522705773579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=116033522705773579&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116033522705773579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/116033522705773579'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/10/christian-viewpoint-on-satanism.html' title='A Christian Viewpoint on Satanism'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115951760101585596</id><published>2006-09-29T09:58:00.000+02:00</published><updated>2007-07-15T22:37:32.510+02:00</updated><title type='text'>Summer! YAY!</title><content type='html'>Oh man! I'm so glad this freekin winter is almost over. We experienced nasty coldish days this year and now I am welcoming this warm summer with open arms. For us South Africans, 8 degrees during the day is very cold, it never was as cold as that in many years and the wind just makes it 10x worse, while some regions near to where I live (except mine, grrr!) had snow!&lt;br /&gt;The last time Johannesburg had snow was in 1981 (edit: I changed it to the correct date) I think (just have to make sure of that) when my parents were in varsity and it was pretty well covered accross the city. We could possibly never have a snow day like in America! Nor do we have a HOT day because our temperatures usually reach a climax of 33 degrees.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115951760101585596?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115951760101585596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115951760101585596&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115951760101585596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115951760101585596'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/09/summer-yay.html' title='Summer! YAY!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115896409805323460</id><published>2006-09-23T00:21:00.000+02:00</published><updated>2007-01-17T19:53:41.806+02:00</updated><title type='text'>Closer...</title><content type='html'>Man, now I'm heading closer to deadlines and exams and things are just as hecktic now as it was previously this year. My prject of geometry clipmaps is comming quite nicely, but still has some bugs so I'm not going to post a screenshot.&lt;br /&gt;In a way I feel I'm almost finished with it but in a way I still feel I still have to do a lot.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I also had to make a raytracer for computer graphics. Nothing much but atleast it is at a desirable level, hopefully I could be able to add some extra things to it before the deadline, but it is low priority at the moment. I will also post some screenshots on what it can render.&lt;br /&gt;&lt;br /&gt;If I may make a prayer request, please will you pray for me and my family. Not that anything rough is happening, just all this chaos with our home because we are building extra rooms, etc. and with all the work and academics where everything is drawing to a close, you know. And boy do I still have a lot to do! Next week I'm writing 2 tests, I have to hand in 2 written assignments and implement something (with bug fixes) for my project which my lecturer asked me to do. Yeah, next week is going to be very busy indeed.&lt;br /&gt;&lt;br /&gt;Thanks and God Bless to all!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115896409805323460?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115896409805323460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115896409805323460&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115896409805323460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115896409805323460'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/09/closer.html' title='Closer...'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115723181400564642</id><published>2006-09-02T22:58:00.000+02:00</published><updated>2007-01-17T19:54:27.240+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poem'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>Soldiers of Anarchy</title><content type='html'>This is an old poem I found of mine which I have written about 3-4 years ago. I'm not much of a poem writer, especially today, but there were a few poems I wrote that were exceptional, IMHO.&lt;br /&gt;I can't entirely remember why I wrote this but I think I saw some things in life that resembles a war between people who care for others and people who only care for themselves.&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;u&gt;Soldiers of Anarchy&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Soldiers of Anarchy,&lt;br /&gt;how do you expect to claim victory without a leader?&lt;br /&gt;In large groups you gather&lt;br /&gt;to become a chaos feeder.&lt;br /&gt;Believing not in rules, is believing not in gravity&lt;br /&gt;but the earth kept our feet on the ground since the beginning of time.&lt;br /&gt;Interested in your own will&lt;br /&gt;your fellowship in others decline.&lt;br /&gt;&lt;br /&gt;Soldier! Who would help you if you're wounded or lost?&lt;br /&gt;Your fellow soldiers are too busy fulfilling their will!&lt;br /&gt;You fight for nothing other than yourself,&lt;br /&gt;so you must spare the cost, still!&lt;br /&gt;Have you not heard that a fellow soldier leaves no man behind,&lt;br /&gt;fighting for a cause other than their own?&lt;br /&gt;But they place themselves above each other,&lt;br /&gt;why would they leave someone wounded, alone?&lt;br /&gt;&lt;br /&gt;Wake up there you soldiers!&lt;br /&gt;You fight each other even if you're on the same side!&lt;br /&gt;Total freedom will be your downfall,&lt;br /&gt;you'll drown in your own tide!&lt;br /&gt;But guess who's cheering you on&lt;br /&gt;none other than the dark lord himself!&lt;br /&gt;So I ask you,&lt;br /&gt;will you fight for others, or live for yourself?&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115723181400564642?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115723181400564642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115723181400564642&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115723181400564642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115723181400564642'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/09/soldiers-of-anarchy.html' title='Soldiers of Anarchy'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115679170578717210</id><published>2006-08-28T20:44:00.000+02:00</published><updated>2007-02-21T23:29:42.116+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>DeusEx Reborn</title><content type='html'>Hey guys!&lt;br /&gt;Remember good old Deus Ex? Well a while ago I heard that they are making a mod for UT2004 called DeusEx:Reborn for UT2004.&lt;br /&gt;It would be interresting to see how the old classic that most of us have played over multiple times would feature on a newer games engine.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;I always hoped that they would just go and remake the game for a newer engine, even if they keep the story the same, etc. but for a newer experience.&lt;br /&gt;Apparently it features Co-op play! WHOO! LOL!&lt;br /&gt;&lt;br /&gt;Check it out here : &lt;a href="http://mods.moddb.com/6569/deus-ex-reborn/"&gt;http://mods.moddb.com/6569/deus-ex-reborn/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The only RPG that I've ever played! I am a huge anti-RPG guy (except for DeusEx) because its always about Magic, Potion, Monsters, Swords, Elfs, ... blah blah blah! They are all the same. Actually even though DeusEx features choices that affects your gameplay later in the game it doesn't fit into the classic RPG category IMHO. The only components that DE has thats common to other RPG games are skills, choices, backpack "management"... and I guess thats it.&lt;br /&gt;&lt;br /&gt;Anyway, I just find RPGs too boring. Fight, fight, fight... over and over to get a little stronger to fight a bigger baddy, fight some more... spend 10 minutes organizing your backpack, exchanging weapons, magic, etc. to other characters, running to shops to get rid of excess bagage, etc...&lt;br /&gt;Trust me, whatching my brother playing 10 different kinds of RPGs have given me enough reason to not play it.&lt;br /&gt;No offence RPG players but I just don't like RPGs! I won't hold it against you. ;)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115679170578717210?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115679170578717210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115679170578717210&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115679170578717210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115679170578717210'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/08/deusex-reborn.html' title='DeusEx Reborn'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115617541023021100</id><published>2006-08-21T17:37:00.000+02:00</published><updated>2007-07-15T21:26:59.185+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bible-study'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>777</title><content type='html'>No don't worry, I am not going to talk about omens, etc. but over something I read in Genesis that really made me astounded. Go to Genesis 4:17-24.&lt;br /&gt;We see that they're talking about Cain giving birth to Enoch, who gave birth to Irad, etc. untill we see Methushael giving birth to Lamech.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Then Lamech had 2 wives and 4 children. Now Lamech made a statement to his wives regarding death and curses where he mentioned that a man who injures him, he will kill and children who hurt him also gets killed and since Cain has the 7x curse for those who kill him over his head, the one who kills Lamech will receive a 77x times curse.&lt;br /&gt;Then in Genesis 5:30 we see Lamech living 777 years!&lt;br /&gt;&lt;br /&gt;Hmm... Lamech is the 7th generation from Adam and Eve, he has a family of 7 (in Genesis 4 when it was spoken of), he spoke of a 77x curse and he lived 777 years!&lt;br /&gt;I just need 3 more facts to make him carry a 7 fact of 7s! He he!&lt;br /&gt;&lt;br /&gt;I just thoaght it was interresting to share this with you guys but it does somehow make me want to think of when Jesus spoke of forgiving your neighbour 77x7 times! I mean, Lamech did speak of killing those who hurt or wound him!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115617541023021100?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115617541023021100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115617541023021100&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115617541023021100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115617541023021100'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/08/777.html' title='777'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115558761551028261</id><published>2006-08-14T21:58:00.000+02:00</published><updated>2007-07-15T21:27:16.524+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bible-study'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>Treasures in life</title><content type='html'>I don't know about you but I didn't always think why it was so important for us to gather treasures in Heaven (&lt;span style="color: rgb(255, 102, 102);"&gt;Mat 6:19-20&lt;/span&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;Do not lay up treasures on earth for yourselves, where moth and rust corrupt, and where thieves break through and steal. But lay up treasures in Heaven for yourselves, where neither moth nor rust corrupt, and where thieves do not break through nor steal&lt;/span&gt;).&lt;br /&gt;Sure, Jesus said that it would be worth it but I didn't think that there would be more to  it than Heavenly luxuries.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Well,  that was before I started exploring the concept of what we should filter out when seeing, hearing and talking. God is going to judge us by every idle word we speak, every act we do, etc. So reading through &lt;span style="color: rgb(255, 102, 102);"&gt;Matthew 12:35-37&lt;/span&gt;, I noticed two words that helped explain a lot... &lt;span style="color: rgb(255, 102, 0);"&gt;treasure&lt;/span&gt; and &lt;span style="color: rgb(51, 51, 255);"&gt;heart.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);"&gt;Mat 12:35&lt;/span&gt;  &lt;span style="color: rgb(51, 204, 255);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;A good man out of the good&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;treasure&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;of the&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;heart &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;brings out good things; and an evil man out of the evil&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;treasure&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;brings out evil things.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Also, I remembered the verse in &lt;span style="color: rgb(255, 102, 102);"&gt;Mat 6:21&lt;/span&gt;  (&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;For where your&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;treasure&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;is, there will your&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;heart&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;be also&lt;/span&gt;&lt;/span&gt;) and that just came very clear to me. Jesus doesn't want us to gather treasures solely for Heaven, but sothat our hearts will lie with the treasures that we collect sothat further good actions can spring forth from them. We all know that gathering treasure for Heaven is all about doing good deeds that God the Father approves of.&lt;br /&gt;So Jesus actually wants us to become like treasure hunters so that we would start lining up to God's point of view and become better Christians than before. I mean, Jesus did command us to gather treasure (read top scripture).&lt;br /&gt;&lt;br /&gt;I once was part of an conversation that lead to why people find it so "wrong" to gather up treasures for themselves. I started asking them about it and they said that just being in Heaven with Jesus is reward enough for them. Then I realised that they thoaght that gathering up treasures was almost like buying their way into Heaven. I explained to them that Jesus wants us to gather treasure because He wants to give us gifts in Heaven that will promote our lifestyle there and to give Him more praise and worship and that He already gave us the gift of everlasting life, which cannot be baught at any price.&lt;br /&gt;I continued with the explanation Paul gave in &lt;span style="color: rgb(255, 102, 102);"&gt;1Co 3:15&lt;/span&gt;  (&lt;span style="color: rgb(0, 153, 0);"&gt;If anyone's work shall be burned up, he shall suffer loss. But he shall be saved, yet so as by fire&lt;/span&gt;) that those who accepted Christ as their saviour but never sought to gather treasures for themselves in Heaven (by not building on the foundation of Christ as mentioned in &lt;span style="color: rgb(255, 102, 102);"&gt;I Corinthians 3:12&lt;/span&gt; with gold, silver, precious stones) will be like poor people in Heaven, who was pulled from the fire with only a few burnt marks after God's judgement. The rest will be rewarded by their works that remained after the fire burnt it.&lt;br /&gt;So it is imperitive that we start gathering treasure for ourselves in Heaven by building on the foundation of Christ with gold, silver, precious stones which cannot be destroyed by the fire of God's judgement. One might ask how we do that. I was taught in Church that doing that which Christ instructed us to do, is the foundation of gathering such treasure. Things such as, forgiving your neighbour 77 x 7 times (in other words infinite!), helping the needy and weak, giving food to the hungry, blessing those who curse you, etc. Its not easy and it would be starteling if it was.&lt;br /&gt;&lt;br /&gt;So I hope that you have found my discovery usefull/inspiring/etc and I hope that all of you who read this will gather many treasures for yourselves in Heaven!&lt;br /&gt;&lt;br /&gt;Good day and God Bless!&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115558761551028261?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115558761551028261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115558761551028261&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115558761551028261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115558761551028261'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/08/treasures-in-life.html' title='Treasures in life'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115524020963049271</id><published>2006-08-10T21:52:00.000+02:00</published><updated>2007-01-17T19:58:59.919+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prayer'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>A Prayerfull matter</title><content type='html'>Hi guys. Any of you subscribed to the Gospel for Asia newsletter?&lt;br /&gt;I got one from them where K.P. Yohannan (Founder &amp;amp; President) updated us in the situation in India regarding the religious prosecution there.&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;You can read the story here : &lt;a href="http://www.gfa.org/gfa/newsupdate080906"&gt;http://www.gfa.org/gfa/newsupdate080906&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I thoaght to bring this up because I believe that we need to pray for those people at least. I mean, they live in areas with very little and they are being prevented of accepting Christ as their saviour! They need our prayer and support. Can you just image that! We just don't know how thankfull we should be at this time.&lt;br /&gt;&lt;br /&gt;I sometimes just wonder why I wasn't like brought up in such circumstances. Ok, I'm not saying that I'm living a life of luxury either. I had my share of bad deals in life too but I just wondered why some people have it so much worse than others? Well, all I can conclude right now is sothat I can be thankfull for what I have now and to pray and try to give for those who have less or worse.&lt;br /&gt;&lt;br /&gt;Thanks! May God Bless you!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115524020963049271?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115524020963049271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115524020963049271&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115524020963049271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115524020963049271'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/08/prayerfull-matter.html' title='A Prayerfull matter'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115458295328894317</id><published>2006-08-03T07:22:00.000+02:00</published><updated>2007-01-19T21:52:37.379+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='my projects'/><title type='text'>My project so far</title><content type='html'>Hey guys!&lt;br /&gt;I just thought  that I would share my project progress with all of you who keep on hearing about my project. Please don't see this as an attempt for me to brag. Besides, it keeps my blog active ;)&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Anyway, here's two forum posts if you are interrested. The second link has some screenshots of what I have so far. Sure, it may not look like much but I was exploring the wonderful world of shaders and was busy getting my project layout well structured to prevent future problems with design issues and spaghetti code.&lt;br /&gt;&lt;br /&gt;Rendering landscape from a texture:&lt;br /&gt;&lt;a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=405078"&gt;http://www.gamedev.net/community/forums/topic.asp?topic_id=405078&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I see no Red in Linux:&lt;br /&gt;&lt;a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=406526"&gt;http://www.gamedev.net/community/forums/topic.asp?topic_id=406526&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, I stumbled upon this great site which features cool OpenGL and Direct3D demos mostly with source code. It has a great framework to work from aswell which allows you to create something for OGL or D3D and has a linux port available using GTK (obviously if you choose OGL).&lt;br /&gt;&lt;a href="http://www.humus.ca/index.php?page=3D&amp;&amp;amp;start=0"&gt;http://www.humus.ca/index.php?page=3D&amp;&amp;amp;start=0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope you guys like it ;)&lt;br /&gt;Oh, and please don't hesitate to contact me if you would like to know about something. Programming, Linux, Christianity... I'm open for discussion! I might be busy but I always have some time to answer a question or 2! If I can't answer it, just be patient, and I'll try to answer it to the best of my abilities.&lt;br /&gt;&lt;br /&gt;Good day and God Bless!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115458295328894317?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115458295328894317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115458295328894317&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115458295328894317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115458295328894317'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/08/my-project-so-far.html' title='My project so far'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115323770321872031</id><published>2006-07-18T17:27:00.000+02:00</published><updated>2007-10-09T20:20:03.179+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>A Single way</title><content type='html'>Many times a few years ago I wondered why anyone would want to use Singletons in programming projects, that is, untill I reached half way through my 2nd year in university when we did Java and proper Object Orientated programming. I wasn't too happy about Java in the beginning but as I progressed through the cource I found how easy it was to implement somthing in comparison to C++. Java had it all, C++ you had to write it all, he he!&lt;br /&gt;Don't get me wrong, I still like C++ alot and Java isn't on my hated-programming-list anymore. LOL!&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;It was when I wrote a Java multiplayer game for a project that I realised how useful Singletons are. It helps you make classes independant and available to everything. This is essential for Manager classes. In Java, all you have to do is make a class with static variables and methods. Whoala, a singleton class! He he!&lt;br /&gt;In C++ its exactly the same, only I stumbled upon a cool Singleton super-class that you can derive from to make your class a Singleton one. Then to make it auto memory managed, just make a static variable of itself somewhere in the class's cpp file.&lt;br /&gt;&lt;br /&gt;This was found originally from Scott Bilas in his book Game Programming Gems, I just found it off an article at Gamedev.net:&lt;br /&gt;&lt;br /&gt;This is the Singleton class:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;template &amp;lt; class T &amp;gt;&lt;br /&gt;class CSingleton&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;CSingleton()&lt;br /&gt;{&lt;br /&gt;//Uses a cunning trick to get the singleton pointing to&lt;br /&gt;//the start of the whole, rather than&lt;br /&gt;//the start of the Singleton part of the object&lt;br /&gt;int offset = (int)(T *)1 - (int)(CSingleton&amp;lt;T&amp;gt; *)(T *)1;&lt;br /&gt;mPtr = (T *)((int)this + offset);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;~CSingleton() { mPtr = NULL; }&lt;br /&gt;&lt;br /&gt;static T &amp;amp; getSingleton() { return *mPtr; }&lt;br /&gt;static T * getSingletonPtr() { return mPtr; }&lt;br /&gt;&lt;br /&gt;private:&lt;br /&gt;static T * mPtr;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;template &amp;lt;class T&amp;gt; T * CSingleton&lt;t&gt;::mPtr = NULL;&lt;br /&gt;&lt;/t&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you have a class CTextureManager, let it derive publicly from CSingleton&lt;ctexturemanager&gt; and there you go. If you know Singletons, then you know that you can obtain that class instance by saying : CTextureManager::getSingletonPtr()-&gt;texture_man_function();&lt;br /&gt;Just make a MACRO to shorten your function calls.&lt;br /&gt;Then in your CTextureManager.cpp file (example), just add the following at the top or something:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;static CTextureManager texture_manager;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Don't use &lt;i&gt;texture_manager&lt;/i&gt; but the call above it. You might wonder, why do that while a global var will do? Well its cleaner, if you use MACROs and more structured. Now you only need to (#include "CTextureManager.h") if you need the texture manager. I am currently implementing it in my project's manager classes. I think it works much better than passing variables to and throu or using global variables.&lt;br /&gt;And it's good for team-based projects. You know what I mean? Well, it is one of those "Use it if you want to" things.&lt;br /&gt;&lt;/ctexturemanager&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115323770321872031?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115323770321872031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115323770321872031&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115323770321872031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115323770321872031'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/07/single-way.html' title='A Single way'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115323599804955292</id><published>2006-07-18T16:47:00.000+02:00</published><updated>2007-01-19T21:52:48.613+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>Talking with God...</title><content type='html'>I dunno about other people but sometimes I wonder what its like having a conversation with God. I mean, there were times when I could hear His voice (not audible) but as a thoaght rushing through my mind but it was merely commands, not conversation.&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;How did I know it was God telling me what to do through my thoaghts?  Don't worry, He made sure I knew it was Him. How about a serious grip on my throaght that made me gasp for breath? Untill I did what He wanted me to do, it remained. After doing what He wanted, the "pain" left. Now, some of you might think that it's not God who would do something like that. Maybe you're right. What if it was some other kind of spiritual thing going on and God was trying to help me pull off those grips around my neck by telling me what to do. I know the Bible tells us that God wouldn't force His will on anyone. But what happened that morning in my church, I don't know.&lt;br /&gt;&lt;br /&gt;Mostly when I try to have one with Him, its usually me who's doing all the talking. Sure its good for relieving certain things bound up in me and talking helps release it but so little do I hear God talk to me. I don't know what He is thinking about me right now, or anything like that. It might be that I am just too busy for Him. Yeah, so much projects in so little time. No time to hear God speak. Bad, eh? Yeah I know. But what can one do? I admit that I'm not so disciplined in reading my Bible and praying and that might be the greatest problem I'm facing. That might also be the reason why there isn't a hunger inside of me for Him. I keep feeding my spirit with junk food rather than with words from God's mouth.&lt;br /&gt;&lt;br /&gt;Before I get too emotional/depressed ;), I want to say that there were times when God did talk to me. He taught me good lessons through scripture but alas I was too busy and blind to incorporate those lessons in my life. Like the story of when Jesus visited Martha but she was too busy to listen to Him. God talked directly to me there but I was still like a Martha running around worrying about the things I still had to do. But the other lesson God taught me was that I shouldn't be afraid of losing something. What can I loose that He cannot give as new? I realised that as I was reading Malachi 3:8-12. When God was talking to His people He made the promise: &lt;span style="color: rgb(51, 204, 255);"&gt;"'Bring one-tenth of your income into the storehouse so that there may be food in my house. Test me in this way,' says the LORD of Armies. 'See if I won't open the windows of heaven for you and flood you with blessings. '"&lt;br /&gt;&lt;/span&gt;Thats when I somehow clicked that I don't have to be afraid. I read a passage before (couldn't remember) about why not to fear but that verse above just somehow summed it up for me. Why fear to loose something if God can replace it. If He can open up Heaven when you give a tenth of your life to Him and He says that we shouldn't worry that He will provide, then surely God can provide for me in a way that I don't have to fear loosing something. Sometimes, I'm afraid of loosing my family, my friends, my possetions, etc. But God just showed me that I don't have to worry at all.&lt;br /&gt;&lt;br /&gt;I wish I could just drop everything and sit an entire day trying to listen to Him but I believe that through trusting Him and disciplining myself in the basics of Godlyness, I will reap those rewards.&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115323599804955292?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115323599804955292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115323599804955292&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115323599804955292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115323599804955292'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/07/talking-with-god.html' title='Talking with God...'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115273531038548102</id><published>2006-07-12T21:53:00.000+02:00</published><updated>2007-01-19T21:52:44.983+02:00</updated><title type='text'>A little while since...</title><content type='html'>Man, even though I'm on vacation for 3 weeks now, I've been very busy with other things besides academics. I mean, my project was really hanging behind because of all the distractions.&lt;br /&gt;I have to say that I have learned a lot, though but with the constant computer issues I had to resolve in between at work, home, etc it has pretty much became a pain in the butt.&lt;br /&gt;But no worries, I haven't forgotten my good 'ol Blog! ;)&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;I wrote a command line parser in C for Console and GUI based apps (I am using it in my 3D project, works great BTW) and a configuration file parser. It can only read at the moment but does its job very nicely. It works by not loading in everything into memory at once but caching only a max of 10 sections at a time. A configuration file looks like an INI file. I did this because I always wanted to write my own kind of utils. I am especially going to use it in my project for configurable settings.&lt;br /&gt;&lt;br /&gt;I also got to play around with TerraGen which is pretty cool for making SkyBoxes. Check this &lt;a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=402743"&gt;forum&lt;/a&gt; out to see how my project is looking so far. I still have MUCH to do for 2 weeks time, but I believe that I will reach my goal of making a Terrain LOD app.&lt;br /&gt;&lt;br /&gt;Well, you can expect some more posting delays... I don't know what to expect in a weeks time so just in case you think that I'm going to write some more stuff... Don't put your heart on it.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115273531038548102?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115273531038548102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115273531038548102&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115273531038548102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115273531038548102'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/07/little-while-since.html' title='A little while since...'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115075887058854038</id><published>2006-06-20T00:45:00.001+02:00</published><updated>2008-05-02T11:33:27.980+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>A Cool Makefile</title><content type='html'>Recently I wanted to make a makefile that could detect what OS you are&lt;br /&gt;using and weither it should compile for debug or release mode. After&lt;br /&gt;hours of playing around and scouting the net for answers, I actually&lt;br /&gt;managed to code one very close to what I wanted.&lt;br /&gt;For those who doesn't know what a makefile is, well... ever heard of &lt;a href="http://www.mingw.org/"&gt;MingW C/C++&lt;/a&gt; or &lt;a href="http://gcc.gnu.org/"&gt;GNU C/C++&lt;/a&gt; ?&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;They are both the same except MingW is for Windows while GNU's one is&lt;br /&gt;for Linux. Its a script file that prepares and calls the compiler to&lt;br /&gt;compile your code.&lt;br /&gt;Why would you need one? For various reasons. Mostly for automated&lt;br /&gt;tasks, for instance, lets say you want all your compiled .o files in a&lt;br /&gt;"output" directory in the current path, then you can instruct 'make'&lt;br /&gt;(the interpreter that reads your Makefile) to create that directory and&lt;br /&gt;to tell the compiler to place all those object files into that&lt;br /&gt;directory.&lt;br /&gt;You might wonder why you don't use BATCH scripting for windows or BASH&lt;br /&gt;scripting for Linux instead of Makefiles, well... Makefiles are more&lt;br /&gt;programming oriented, it has functionality specifically for compiling&lt;br /&gt;purposes that BASH or BATCH scripting doesn't have. Well, you might&lt;br /&gt;still accompilsh the same with BASH but not entirely, I believe.&lt;br /&gt;How would you invoke a Makefile? Easy, make sure that you have a file&lt;br /&gt;called &lt;span style="font-weight: bold;"&gt;Makefile &lt;/span&gt;in your&lt;br /&gt;source directory and type : make&lt;br /&gt;You can add parameters to 'make' according to what the Makefile&lt;br /&gt;expects, so its a good idea to either read the Makefile itself or any&lt;br /&gt;READMEs found with the source.&lt;br /&gt;I'm not going through all the basics about Makefiles, but I will&lt;br /&gt;explain how I managed to complete one mentioned above.&lt;br /&gt;&lt;pre&gt;&lt;big&gt;&lt;big&gt;&lt;span style="color: rgb(51, 204, 0);font-family:courier new;" &gt;&lt;/span&gt;&lt;/big&gt;&lt;/big&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# NOTES: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Please use GNU's make application for this makefile. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Also, this is made for Windows &amp;amp; Linux compilations only! &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# This creates an output folder where all the object &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# files are going to be stored. It'll compile all .c files &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# found in the current directory where the makefile lies. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# The makefile will detect if this is being compiled in &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# an Windows NT environment, else it'll assume its&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# a Linux environment. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Also, by default it will compile in debug mode.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# To build in release mode, use the following:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# make dist&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;#&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# This makefile is compatible with CodeBlocks (RC2).&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Set up OS specific stuff&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Since this could be compiled on a different&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# windows version, we rather check if the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# OSTYPE var exists and that it is 'linux'.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# If so then we're compiling for linux,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# else we assume for some windows version.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;ifeq &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;$(OSTYPE&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;),&lt;/span&gt;&lt;span style="font-size:100%;"&gt;linux&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    EXT &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;CFLAGS &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; -DLINUX&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;OS &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;EXT &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;CFLAGS &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; -DWIN32&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;OS &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Windows&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;endif&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:100%;" &gt;# Ordinary vars needed&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;APP &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; lacp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;OUTPUT &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; output&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;BIN &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:= $(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;APP&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;EXT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;CC &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; gcc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;OBJS &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:= $(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;patsubst &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;%.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;c&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;,$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)/%.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;o&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;,$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;wildcard &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;*.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;c&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Not our actual targets! &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-size:100%;" &gt;.PHONY:&lt;/span&gt;&lt;span style="font-size:100%;"&gt; all dist default clean clean_default debugmode releasemode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Where to start building with what targets&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;all:&lt;/span&gt;&lt;span style="font-size:100%;"&gt; default&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;default:&lt;/span&gt;&lt;span style="font-size:100%;"&gt; debugmode&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;dist: &lt;/span&gt;&lt;span style="font-size:100%;"&gt;releasemode&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# The following targets (debug &amp;amp; release) has multiple&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# lables because one cannot define variables after the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# first target line, ie. all.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# So, make allows you to change vars but only 1 per target&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# line and that change is only valid within that target scope.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Thats why I have $(BIN) in the debugmode and releasemode targets&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# instead of the targets above, sothat the variable changes can be&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# carried over to any $(BIN) compilations.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# The double colons are to tell make to execute the var changes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# and commands in order given below.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# DEBUG mode&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;debugmode::&lt;/span&gt;&lt;span style="font-size:100%;"&gt; MODE &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; DEBUG&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;debugmode::&lt;/span&gt;&lt;span style="font-size:100%;"&gt; CFLAGS &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;+= -&lt;/span&gt;&lt;span style="font-size:100%;"&gt;g &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;-&lt;/span&gt;&lt;span style="font-size:100%;"&gt;D__DEBUG__&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;debugmode::&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;@&lt;/span&gt;&lt;span style="font-size:100%;"&gt;echo Compiling for &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OS&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;@&lt;/span&gt;&lt;span style="font-size:100%;"&gt;echo Compiling in &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;MODE&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;ifeq &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;($(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OS&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;),&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Windows&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;-@&lt;/span&gt;&lt;span style="font-size:100%;"&gt;if not exist &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;"./"$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;mkdir &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;mkdir &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;-&lt;/span&gt;&lt;span style="font-size:100%;"&gt;p &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;endif&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;debugmode::&lt;/span&gt;&lt;span style="font-size:100%;"&gt; $(BIN)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# RELEASE mode &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;releasemode::&lt;/span&gt;&lt;span style="font-size:100%;"&gt; MODE &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;:=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; RELEASE&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;releasemode::&lt;/span&gt;&lt;span style="font-size:100%;"&gt; CFLAGS &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;+=&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;-&lt;/span&gt;&lt;span style="font-size:100%;"&gt;O3&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;releasemode::&lt;/span&gt;&lt;span style="font-size:100%;"&gt; LDFLAGS &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;+= -&lt;/span&gt;&lt;span style="font-size:100%;"&gt;s&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;releasemode::&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;@&lt;/span&gt;&lt;span style="font-size:100%;"&gt;echo Compiling for &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OS&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;@&lt;/span&gt;&lt;span style="font-size:100%;"&gt;echo Compiling in &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;MODE&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;ifeq &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;($(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OS&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;),&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Windows&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;-@&lt;/span&gt;&lt;span style="font-size:100%;"&gt;if not exist &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;"./"$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;mkdir &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="font-size:100%;"&gt;mkdir &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;-&lt;/span&gt;&lt;span style="font-size:100%;"&gt;p &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;endif&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;releasemode::&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;BIN&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Clean up&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;distclean_default:&lt;/span&gt;&lt;span style="font-size:100%;"&gt; clean&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;clean_default:&lt;/span&gt;&lt;span style="font-size:100%;"&gt; clean&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;clean:&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;@&lt;/span&gt;&lt;span style="font-size:100%;"&gt;echo Cleaning up&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt; @$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;RM&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;) -&lt;/span&gt;&lt;span style="font-size:100%;"&gt;f &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;BIN&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt; @$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;RM&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;-&lt;/span&gt;&lt;span style="font-size:100%;"&gt;r &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;-&lt;/span&gt;&lt;span style="font-size:100%;"&gt;f &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);font-size:100%;" &gt;# Actual compilation&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;$(BIN):&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt; $(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OBJS&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;CC&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;OBJS&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; -o &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;BIN&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 102);font-size:100%;" &gt;$(OUTPUT)/%.o:&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;%.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;c&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;CC&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;)&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$(&lt;/span&gt;&lt;span style="font-size:100%;"&gt;CFLAGS&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;) -&lt;/span&gt;&lt;span style="font-size:100%;"&gt;c &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$^ -&lt;/span&gt;&lt;span style="font-size:100%;"&gt;o &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;$@&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Those of you who know Makefiles, can remember that it is very important&lt;br /&gt;to have actual TAB characters below every target label to indicate that&lt;br /&gt;those statements belong to that target, almost like in Python.&lt;br /&gt;I apologise if my code doesn't appear to be indented since the blog&lt;br /&gt;site apparently clears out "unnecessary" spaces.&lt;br /&gt;How this Makefile works is, it first checks if OSTYPE is equal to&lt;br /&gt;linux. In Linux if you type 'export' in the console, you'll find a&lt;br /&gt;variable calles OSTYPE. Since my Makefile is only for Windows and Linux&lt;br /&gt;and nothing else, if OSTYPE doesn't exist, then the Makefile assumes&lt;br /&gt;that you are in Windows.&lt;br /&gt;Then if you have just performed a 'make' or 'make default' command,&lt;br /&gt;then the Makefile assumes that you are compiling for debug mode. If you&lt;br /&gt;have specified 'make dist' or make distribution, then it assumes&lt;br /&gt;Release mode.&lt;br /&gt;It creates an output directory where all the object files will be&lt;br /&gt;placed, and it scouts the current directory only for C files and&lt;br /&gt;compiles them into the output directory. So if you create a C file,&lt;br /&gt;etc. the Makefile will automatically include it. If you need subdirs&lt;br /&gt;with files in them, just tell the Makefile to also scout in those&lt;br /&gt;specific directories to compile them into the output directory.&lt;br /&gt;As you can see, now you don't have to update the compiling process for&lt;br /&gt;smallish projects which are designed for Windows and Linux anymore. The&lt;br /&gt;Makefile takes care of it for you. If you have made any cool&lt;br /&gt;modifications to it, please drop me a mail with your change, I would&lt;br /&gt;like to see what else can be done with this.&lt;br /&gt;&lt;br /&gt;Check and enjoy!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115075887058854038?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115075887058854038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115075887058854038&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115075887058854038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115075887058854038'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/06/cool-makefile.html' title='A Cool Makefile'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115075714461377871</id><published>2006-06-20T00:37:00.000+02:00</published><updated>2007-01-19T21:53:02.187+02:00</updated><title type='text'>Finished with exams</title><content type='html'>I am very happy at this moment to be finished with my exams, now I can get to some really cool stuff.&lt;br /&gt;I have been working on a few things while exams went on but it was in the days when I could afford to do something else than studying.&lt;br /&gt;I am going to start with my year project, and I know it sounds bad but we had to go through the "designing" phase first and the current semester wasn't a very pleasant one to start with the project as I had to work, do other projects and study for semester tests, but not to worry. Thats what recess is for! LOL! ;)&lt;br /&gt;I think I'll let you guys on what I'm doing but not now, as I havn't got anything to actually show you yet. But it is a project on LOD (Level of Detail), for a graphics project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115075714461377871?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115075714461377871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115075714461377871&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115075714461377871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115075714461377871'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/06/finished-with-exams.html' title='Finished with exams'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115040392628795399</id><published>2006-06-15T22:23:00.003+02:00</published><updated>2008-05-02T11:24:53.226+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='libraries'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Software List</title><content type='html'>This is a list of software/libraries which I recommend or like or find interresting:&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-family: Arial;"&gt;&lt;li&gt;&lt;a href="http://www.spreadfirefox.com/?q=affiliates&amp;amp;id=173663&amp;amp;t=218"&gt;&lt;img alt="Firefox 2" title="Firefox 2" src="http://sfx-images.mozilla.org/affiliates/Buttons/firefox2/ff2o80x15.gif" border="0" /&gt;&lt;/a&gt; - Great Web browser&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.spreadfirefox.com/?q=affiliates&amp;amp;amp;id=173663&amp;amp;t=182"&gt;&lt;img alt="Get Thunderbird!" title="Get Thunderbird!" src="http://sfx-images.mozilla.org/affiliates/thunderbird/thunderbird_88x31.png" border="0" /&gt;&lt;/a&gt; - Great e-mail client&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.openoffice.org/"&gt;&lt;img src="http://marketing.openoffice.org/art/galleries/marketing/web_buttons/nicu/80x15_3.png" alt=" Use OpenOffice.org" title="Use OpenOffice.org" border="0" /&gt;&lt;/a&gt; - Great free Office Package&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.wxwidgets.org/"&gt;&lt;img src="http://www.wxwidgets.org/images/blocks2.jpg" /&gt;&lt;/a&gt; - Cross-platform Framework for Python/C++&lt;/li&gt;&lt;li&gt;&lt;a href="http://aptana.com/"&gt;&lt;img src="http://aptana.com/images/aptana_badge.gif" /&gt;&lt;/a&gt; - A web development IDE, looks like Eclipse's. Supports Web scripts such as the basic stuff plus PHP, Ruby on Rails and Ajax.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul style="font-family: Arial;"&gt;&lt;li&gt;&lt;a href="http://www.bloodshed.net/dev/devcpp.html"&gt;DevC++&lt;/a&gt; - C/C++ IDE &lt;/li&gt;&lt;li&gt;&lt;a href="http://wxdsgn.sourceforge.net/"&gt;wxDevC++&lt;/a&gt; - Its DevC++ but with wxWidgets From Designer &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeblocks.org/"&gt;Code::Blocks&lt;/a&gt; - Very Good C/C++ IDE (until RC3, use the night builds)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.7-zip.org/"&gt;7zip&lt;/a&gt; - Free archive utility, fast and supports many archive formats for Windows (GUI) and Linux (apparently command line).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.freedownloadmanager.org/"&gt;Free download manager&lt;/a&gt; - An Open Source, Windows download manager that competes well with the commercial app: Download Accelerator Plus.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.filehippo.com/updatechecker/"&gt;Update Checker&lt;/a&gt; - Scans your Windows PC and displays the applications that have newer versions on the net.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kompozer.net/"&gt;Komposer&lt;/a&gt; - Frontpage open source clone&lt;/li&gt;  &lt;li&gt;&lt;a href="http://nsis.sourceforge.net/Main_Page"&gt;NSIS&lt;/a&gt; - Installer creator (for Windows)&lt;br /&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://hmne.sourceforge.net/"&gt;HM NIS&lt;/a&gt; - Installer creator GUI (needs NSIS)&lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.e-sword.net/"&gt;e-Sword&lt;/a&gt; - Great Bible study program (for Windows)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stardict.sourceforge.net/index.php"&gt;StarDict&lt;/a&gt; - Dictionary software. Very useful!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.stack.nl/%7Edimitri/doxygen/"&gt;Doxygen&lt;/a&gt; - Documentation generation&lt;/li&gt;&lt;li&gt;&lt;a href="http://yareg.akucom.de/"&gt;YAReG&lt;/a&gt; - Reiser FS partition browser for Windows&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.netbeans.org/"&gt;Netbeans&lt;/a&gt; - Very good JAVA IDE (for many platforms). Now has more support for other languages, etc. as well.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tortoisesvn.tigris.org/"&gt;Tortoise SVN&lt;/a&gt; - A very good Windows Subversion GUI&lt;/li&gt;&lt;li&gt;&lt;a href="http://logging.apache.org/log4j/docs/download.html"&gt;log4#&lt;/a&gt; - Very good logging system (# being many languages: java, .net, c++, etc.)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; - A popular interpreted language&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://mmm-experts.com/Products.aspx?ProductId=4"&gt;PyScriptor&lt;/a&gt; - A good IDE for Python&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt; - A popular scripting language&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.launchy.net/"&gt;Launchy&lt;/a&gt; - Open source keystroke launcher for Windows&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.poderosa.org/"&gt;Poderosa&lt;/a&gt; - Poderosa is a tabbed terminal emulator for Windows.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mustangpeak.net/"&gt;Ultra Explorer&lt;/a&gt; - A very good Windows Explorer alternative&lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/console/"&gt;Console&lt;/a&gt; - A nice Windows Console alternative&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Here is a list of software/libraries which I found and would like to use (basically future reference):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/cppcheck"&gt;c++ check&lt;/a&gt; - c/c++ code checking. Checks for these bugs: memory leaks, mismatching allocation-deallocation, buffer overrun, dangerous usage of 'memset', badly defined overloaded operators. Checks for code improvements: redundant code, rewriting standard function.&lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/dpatoolkit"&gt;Design Pattern Automation Toolkit&lt;/a&gt; - A toolkit to design applications using design patterns, with facility to generate code, and reverse engineering. Drag and Drop facility to create UML Class diagrams Support to write custom plug-ins for code generators and reverse engineering.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.icsharpcode.net/OpenSource/SD/"&gt;Sharp Develop&lt;/a&gt; - Very good alternative to Visual Studio for C#&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.lokigames.com/development/index.php3"&gt;Loki&lt;/a&gt; - Many OpenSource projects (including the popular Linux installer creator as the one of UT 2004)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Sites of note:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://csharp-source.net/"&gt;C# Source&lt;/a&gt; - A website dedicated to C# libraries and Frameworks.&lt;/li&gt;&lt;li&gt;&lt;a href="http://java-source.net/"&gt;Java(TM) Source&lt;/a&gt; - A website dedicated to Java libraries and Frameworks.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115040392628795399?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115040392628795399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115040392628795399'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/06/posts-on-this-blog.html' title='Software List'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-115018770089423608</id><published>2006-06-13T10:01:00.000+02:00</published><updated>2007-10-09T20:19:59.138+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Fast string token identification</title><content type='html'>Ever needed to parse a string and identify some parts of it, or identify some tokens found within it?&lt;br /&gt;Well when I had compiler construction, and had to make a compiler, this was an essential part of the compiler as you had to identify tokens and send it to the parser to see if it was in the right order to (be in a valid syntax) make a sentence of your own programming language.&lt;br /&gt;&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;If you had read a line of source code (for instance) : &lt;span style="color: rgb(51, 204, 255);"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;span style="color: rgb(51, 0, 51);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;i &lt;span style="color: rgb(51, 204, 255);"&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;==&lt;span style="color: rgb(255, 204, 0);"&gt; 0&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;The lexical analyser had to return: &lt;span style="color: rgb(51, 204, 255);"&gt;TOK_IF&lt;/span&gt; ; &lt;span style="color: rgb(51, 204, 255);"&gt;TOK_LBRACK&lt;/span&gt; ;&lt;span style="color: rgb(51, 204, 255);"&gt; TOK_ID(i)&lt;/span&gt; ; &lt;span style="color: rgb(51, 204, 255);"&gt;TOK_EQUALS&lt;/span&gt; ; &lt;span style="color: rgb(51, 204, 255);"&gt;TOK_INT(0)&lt;/span&gt; ; &lt;span style="color: rgb(51, 204, 255);"&gt;TOK_RBRACK&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;But when you've implemented the lexical analyser (using a non-traversal matrix, too big and too long to implement in such a short time) you sat with a series of "else if" statements to check if you came accross a keyword, to bind it to the right token.&lt;br /&gt;For instance, lets say the lexical analyser came accross : "if"&lt;br /&gt;Now you had to identify that string with a list of tokens in order for the compiler to know that it is a TOK_IF token.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;(!&lt;/span&gt;strcmp&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;stream&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;"for"&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;return&lt;/span&gt; TOK_FOR&lt;span style="color: rgb(51, 204, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;else if&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;(!&lt;/span&gt;strcmp&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;stream&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;"while"&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;return&lt;/span&gt; TOK_WHILE&lt;span style="color: rgb(51, 204, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;else if&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;(!&lt;/span&gt;strcmp&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;stream&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;"if"&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;return&lt;/span&gt; TOK_IF&lt;span style="color: rgb(51, 204, 255);"&gt;;&lt;/span&gt;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;In C/C++, using c-strings, that would have been the default route to pick, wouldn't it?&lt;br /&gt;But thankfully, I sat and thoaght about hashtables for a while and also played around with C++'s MACROs. Then I finally tried something that worked.&lt;span style="color: rgb(255, 102, 102);"&gt; NOTE : &lt;/span&gt;I believe that this will only work in C/C++ as other languages (that I know of) doesn't support PREPROCESSOR Directives.&lt;br /&gt;Another + point for C/C++ ;)&lt;br /&gt;What did I do? I managed to find a way to compare a string with a bunch of strings in C++ in O(1) time, using a switch statement. How on earth did I do that?&lt;br /&gt;Heres how I did it:&lt;br /&gt;&lt;br /&gt;Firstly, you'll need a bunch of MACROs for the switch statement. You cannot use functions in a switch statement, the compiler will complain because it won't calculate the end result of each case-part in compile time except if you use MACROs.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;#define&lt;/span&gt; H2&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;X1&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;) \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt; ((&lt;/span&gt;X1 &lt;span style="color: rgb(51, 204, 255);"&gt;*&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;#define&lt;/span&gt; H3&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;X1&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;) \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;(((&lt;/span&gt;X1 &lt;span style="color: rgb(51, 204, 255);"&gt;*&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;#define&lt;/span&gt; H4&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;X1&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;, &lt;/span&gt;X4&lt;span style="color: rgb(51, 204, 255);"&gt;) \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;((((&lt;/span&gt;X1 &lt;span style="color: rgb(51, 204, 255);"&gt;*&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;) * &lt;/span&gt;&lt;span style="color: rgb(255, 204, 0);"&gt;3 &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X4&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;#define&lt;/span&gt; H5&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;X1&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X4&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X5&lt;span style="color: rgb(51, 204, 255);"&gt;) \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt; (((((&lt;/span&gt;X1 &lt;span style="color: rgb(51, 204, 255);"&gt;*&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3 &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X4&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3 &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X5&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;#define&lt;/span&gt; H6&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;X1&lt;span style="color: rgb(51, 204, 255);"&gt;, &lt;/span&gt;X2&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X4&lt;span style="color: rgb(51, 204, 255);"&gt;, &lt;/span&gt;X5&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X6&lt;span style="color: rgb(51, 204, 255);"&gt;) \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;((((((&lt;/span&gt;X1 &lt;span style="color: rgb(51, 204, 255);"&gt;*&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X4&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X5&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X6&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;#define&lt;/span&gt; H7&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;X1&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X4&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X5&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; X6&lt;span style="color: rgb(51, 204, 255);"&gt;, &lt;/span&gt;X7&lt;span style="color: rgb(51, 204, 255);"&gt;) \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;(((((((&lt;/span&gt;X1 &lt;span style="color: rgb(51, 204, 255);"&gt;*&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X2&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X3&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X4&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+ &lt;/span&gt;X5&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X6&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;+&lt;/span&gt; X7&lt;span style="color: rgb(51, 204, 255);"&gt;) *&lt;/span&gt; &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Whats that you may wonder? Well, you didn't think that you can use a string directly in a switch statement now did you? Those MACROs are to convert your "string" to an integer representation of it to be used in a switch statement. So if you have string of 3 characters you have to use those MACROs like this: H3&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);"&gt;'f'&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;'o'&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(204, 102, 204);"&gt;'r'&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;)&lt;br /&gt;&lt;/span&gt;Thats the closest you'll get to putting a string in a switch statement.&lt;br /&gt;Next you need a function to convert the string (you'd like to compare) into an integer representation of it:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;int&lt;/span&gt; getHash&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;const&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;char&lt;/span&gt; &lt;span style="color: rgb(51, 204, 255);"&gt;*&lt;/span&gt;str&lt;span style="color: rgb(51, 204, 255);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;int&lt;/span&gt; len&lt;span style="color: rgb(51, 204, 255);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;{&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;int&lt;/span&gt; &lt;/span&gt;i&lt;span style="color: rgb(51, 204, 255);"&gt;;&lt;br /&gt;&lt;/span&gt;      &lt;span style="color: rgb(102, 102, 204);"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;int&lt;/span&gt; &lt;/span&gt;res&lt;span style="color: rgb(51, 204, 255);"&gt; = &lt;span style="color: rgb(255, 204, 0);"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;for&lt;/span&gt;(&lt;/span&gt;i&lt;span style="color: rgb(51, 204, 255);"&gt; = &lt;span style="color: rgb(255, 204, 0);"&gt;0&lt;/span&gt;; &lt;/span&gt;i&lt;span style="color: rgb(51, 204, 255);"&gt; &lt; &lt;/span&gt;len&lt;span style="color: rgb(51, 204, 255);"&gt;; ++&lt;/span&gt;i&lt;span style="color: rgb(51, 204, 255);"&gt;)&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;res&lt;span style="color: rgb(51, 204, 255);"&gt; += &lt;/span&gt;str&lt;span style="color: rgb(51, 204, 255);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(51, 204, 255);"&gt;];&lt;br /&gt;&lt;/span&gt;res&lt;span style="color: rgb(51, 204, 255);"&gt; *= &lt;span style="color: rgb(255, 204, 0);"&gt;3&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;return&lt;/span&gt; &lt;/span&gt;res&lt;span style="color: rgb(51, 204, 255);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The 3's that you see being multiplied by is a prime number. Those who've studied hash tables will know why.&lt;br /&gt;&lt;br /&gt;Now we have all the tools we need to implement our fast string token identifier.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;switch&lt;/span&gt;(&lt;/span&gt;getHash&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;/span&gt;str&lt;span style="color: rgb(51, 204, 255);"&gt;, &lt;/span&gt;len&lt;span style="color: rgb(51, 204, 255);"&gt;))&lt;br /&gt;{&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;case&lt;/span&gt; &lt;/span&gt;H3&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;span style="color: rgb(204, 102, 204);"&gt;'f'&lt;/span&gt;, &lt;span style="color: rgb(204, 102, 204);"&gt;'o'&lt;/span&gt;, &lt;span style="color: rgb(204, 102, 204);"&gt;'r'&lt;/span&gt;):&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;return&lt;/span&gt; &lt;/span&gt;TOK_FOR&lt;span style="color: rgb(51, 204, 255);"&gt;;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;case&lt;/span&gt; &lt;/span&gt;H5&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;span style="color: rgb(204, 102, 204);"&gt;'w'&lt;/span&gt;, &lt;span style="color: rgb(204, 102, 204);"&gt;'h'&lt;/span&gt;, &lt;span style="color: rgb(204, 102, 204);"&gt;'i'&lt;/span&gt;, &lt;span style="color: rgb(204, 102, 204);"&gt;'l'&lt;/span&gt;, &lt;span style="color: rgb(204, 102, 204);"&gt;'e'&lt;/span&gt;):&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;return&lt;/span&gt; &lt;/span&gt;TOK_WHILE&lt;span style="color: rgb(51, 204, 255);"&gt;;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;case&lt;/span&gt; &lt;/span&gt;H2&lt;span style="color: rgb(51, 204, 255);"&gt;(&lt;span style="color: rgb(204, 102, 204);"&gt;'i'&lt;/span&gt;, &lt;span style="color: rgb(204, 102, 204);"&gt;'f'&lt;/span&gt;):&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;return&lt;/span&gt; &lt;/span&gt;TOK_IF&lt;span style="color: rgb(51, 204, 255);"&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Well I believe that there are many applications for this kind of thing. I hope you find it usefull somewhere. Well, if you're doing C/C++ that is!&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-115018770089423608?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/115018770089423608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=115018770089423608&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115018770089423608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/115018770089423608'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/06/fast-string-token-identification.html' title='Fast string token identification'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114954236752592995</id><published>2006-06-05T23:12:00.000+02:00</published><updated>2007-01-19T21:53:09.924+02:00</updated><title type='text'>Remake of my Blog</title><content type='html'>Hi there!&lt;br /&gt;Yes this is still my Blog! :D&lt;br /&gt;I've just made a few modifications, including the new theme.&lt;br /&gt;Some posts didn't have very descriptive titles, but I changed that.&lt;br /&gt;I think I'm going to keep it like this for a while and I hope you all will agree!&lt;br /&gt;&lt;br /&gt;Read through and enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114954236752592995?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114954236752592995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114954236752592995&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114954236752592995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114954236752592995'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/06/remake-of-my-blog.html' title='Remake of my Blog'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114949574642640247</id><published>2006-06-05T09:57:00.000+02:00</published><updated>2007-02-21T23:30:06.534+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>Free Ubuntu &amp; Kubuntu CD delivery</title><content type='html'>Those of you who've heard of &lt;span style="color: rgb(255, 204, 102);"&gt;Ubuntu &lt;/span&gt;being shipped for free can now get &lt;span style="color: rgb(51, 204, 255);"&gt;Kubuntu &lt;/span&gt;which is &lt;span style="color: rgb(255, 204, 102);"&gt;Ubuntu&lt;/span&gt; but with &lt;span style="color: rgb(51, 204, 255);"&gt;KDE &lt;/span&gt;rather than &lt;span style="color: rgb(255, 204, 102);"&gt;Gnome&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;Kubuntu&lt;/span&gt;&lt;br /&gt;&lt;a href="https://shipit.kubuntu.org/"&gt;https://shipit.kubuntu.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 204, 0);"&gt;Ubuntu&lt;/span&gt;&lt;br /&gt;&lt;a href="https://shipit.kubuntu.org/"&gt;&lt;/a&gt;&lt;a href="https://shipit.ubuntu.com/"&gt;https://shipit.ubuntu.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114949574642640247?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114949574642640247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114949574642640247&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114949574642640247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114949574642640247'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/06/free-ubuntu-kubuntu-cd-delivery.html' title='Free Ubuntu &amp; Kubuntu CD delivery'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114949351085598529</id><published>2006-06-05T09:39:00.000+02:00</published><updated>2007-07-15T21:40:46.298+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Bash Scripting</title><content type='html'>I have &lt;a href="http://www.stumbleupon.com/"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;Stumble&lt;/span&gt;&lt;/a&gt;d accross a website that has a pretty well documented reference book on &lt;span style="color: rgb(51, 204, 255);"&gt;Bash &lt;/span&gt;scripting. Its also available in PDF format for offline viewing and even contains DOS &lt;span style="color: rgb(255, 204, 153);"&gt;Batch &lt;/span&gt;scripting equivalents for people who have to write stuff in Unix &lt;span style="color: rgb(51, 204, 255);"&gt;Bash&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You don't need any programming/scripting language to get started but it does move rapidly from one point onwards. I think it's a good reference to &lt;span style="color: rgb(51, 204, 255);"&gt;Bash &lt;/span&gt;scripting too.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tldp.org/LDP/abs/html/"&gt;http://www.tldp.org/LDP/abs/html/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For those who don't know: &lt;span style="color: rgb(51, 204, 255);"&gt;Bash&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt; &lt;/span&gt;scripting stands for &lt;span style="color: rgb(51, 204, 255);"&gt;B&lt;/span&gt;orn &lt;span style="color: rgb(51, 204, 255);"&gt;A&lt;/span&gt;gain &lt;span style="color: rgb(51, 204, 255);"&gt;Sh&lt;/span&gt;ell.&lt;br /&gt;&lt;div style="text-align: left;"&gt;Makes you think doesn't it? ;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114949351085598529?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114949351085598529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114949351085598529&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114949351085598529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114949351085598529'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/06/bash-scripting.html' title='Bash Scripting'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114945932553461811</id><published>2006-06-04T23:55:00.000+02:00</published><updated>2007-07-15T21:28:09.300+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bible-study'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>Book of Acts</title><content type='html'>I was busy rounding up some verses featuring the Holy Spirit, but then the book of Acts caught my attention. I was using e-Sword (&lt;a href="http://www.e-sword.net/"&gt;http://www.e-sword.net&lt;/a&gt;). The whole book was like a novel. I'm sorry to disturb others who already read this many times but with the &lt;span style="color: rgb(255, 204, 102);"&gt;God's Word&lt;/span&gt; &lt;span style="color: rgb(255, 204, 102);"&gt;translation&lt;/span&gt;, I just couldn't put it down. It was an amazing story!&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;Also the way Jesus spoke to Paul was just amazing than what I've found in the rest of the Bible. &lt;span style="color: rgb(255, 102, 102);"&gt;"Paul why are you prosecuting me?"&lt;/span&gt;, &lt;span style="color: rgb(255, 102, 102);"&gt;"Go to Damascus, I have plans for you there."&lt;/span&gt;, &lt;span style="color: rgb(255, 102, 102);"&gt;"Paul if you don't leave this place, you're going to get killed!"&lt;/span&gt; (not direct quotes!).&lt;br /&gt;Some parts reminded me of modern day living. Especially where the people in one village who were members of the occult just suddenly gave up all their books on magic, etc. when Paul visited them and they just opened up spontaneously to what have happened. They even mentioned the price of the amount of books burnt.&lt;br /&gt;When Paul was prosecuted by the Jews for something he didn't do, he was sent to Rome. I could just see the Roman buildings and town squares, even though it wasn't fully described in the Bible.&lt;br /&gt;&lt;br /&gt;I don't want to spoil the end of the story but it was exciting and yet disappointing. Read to find out why I say it was exciting, but it was disappointing because I never got to find out his ruling. The book just ended on &lt;span style="color: rgb(153, 153, 255);"&gt;Acts 28&lt;/span&gt; (I dunno, maybe it was just end of story, or maybe it continued somewhere else in the New Testament, but its provably then in one of the books he wrote to the different tribes).&lt;br /&gt;&lt;br /&gt;It showed me something different about Paul, Jesus and Christianity. Christianity can be very exciting and Paul can testify to that, but I know that it can also be very tough and bad, again reference Paul.&lt;br /&gt;One would have thought that Jesus would bite off Paul's head in the beginning of Acts but did the complete opposite. It just shows how Christ has confidence in us and is willing to try and unlock the good things in us to make us better than to throw all the truthful accusations against us and judge us till doomsday comes.&lt;br /&gt;&lt;br /&gt;This has brought a greater Love for Christ in me.&lt;br /&gt;&lt;br /&gt;Anyone found another book in the Bible that was a hard-to-put-down book? If so, please also specify your Bible translation for the "best effect" ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114945932553461811?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114945932553461811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114945932553461811&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114945932553461811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114945932553461811'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/06/book-of-acts.html' title='Book of Acts'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114901784350552213</id><published>2006-05-30T21:23:00.000+02:00</published><updated>2007-01-18T08:16:50.026+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>What are we waiting for?</title><content type='html'>Today I was also whatching the fifth DVD of Dr Kent Hovind's Creation, Evolution and Dinasaur seminar series. I have to say that I like him. He talks to the point and raises a lot of questions, not just directed against evolution but towards making us Christians think.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;He tries to encourage us to spread the Gospel and do something with our lives because  there is a war going on. If you're not going to be the soldier on the battlefield, you could atleast carry ammunition or attend the sick, as he would say.&lt;br /&gt;I agree. Why are only a handfull of Christians fighting a battle against Satan's entire army? Why are we so content with our little, busy lives that's going to fade away in a few decades at most?&lt;br /&gt;I'm not saying that I'm any better! I am just as guilty but today's seminar series just really opened up something inside me. The end of the world is so near! People want to establish a new world order, just like the Bible said they would and they don't want any Christians or any opposers of evolution in it. People who believe IN evolution don't wanna believe in God because they want to believe that they are their own god.&lt;br /&gt;Those who are interrested, go to &lt;a href="http://www.drdino.com"&gt;www.drdino.com&lt;/a&gt; to find out more about this DVD series and about lies that are taught about evolution. You can also mail him with evolution questions or get some resources on his site regarding it. It would really be great to listen to his stuff, even if you think evolution is bolony! You only have something to gain and something to give! Thank God for Dr Hovind.&lt;br /&gt;&lt;br /&gt;If you are studying at the university of Johannesburg in South Africa, please drop me a mail and I can arrange a copy of the 7 DVD seminar series. Its not copyrighted so you can also distribute with delight. I want to start to make an investment, and I wanna start with these DVDs, I think that it might help a lot of Christians and non-Christians.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114901784350552213?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114901784350552213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114901784350552213&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114901784350552213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114901784350552213'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/05/what-are-we-waiting-for.html' title='What are we waiting for?'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114901686114579863</id><published>2006-05-30T21:09:00.000+02:00</published><updated>2007-07-15T22:27:18.742+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testimony'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>Had to be some kind of miracle</title><content type='html'>Its a day after I wrote my Forensics exam. Its just amazing! I only had like 3 days to study 16 chapters (well, ok 12 approximately since I had already studied 3 that Monday)! I'm sorta used to cram in a lot of info in a short amount of time but this is just rediculous. But, again... I thank God. You know ... Thursday when I was done with my projects, I decided to rest. Friday, I didn't even finish a chapter  and everything was left for Saturday and Sunday.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;The bad thing was that everytime I tried to study, my mind would just float off. You know what I mean? Almost the same as though I was praying... Then I realised something. What if I praised God before each study session? I sang a few songs, to get my mind off things and just afterwards I would study verbally. Taking my lecture notes, I would walk accross my room saying stuff aloud to memorise the stuff optimally. My teacher said in Highschool that if you talk, read and listen, you would achieve that optimal state... but none of that would help if your mind isn't there! But it looked like praising God before studying directed my thoughts off everything and helped me to study. I believe thats one way of studying to God's glory!&lt;br /&gt;When I went to write yesterday, I saw the questions and I was so amazed. All the questions but 1 was familiar. They actually asked all the stuff I studied for, and I just about studied all the chapters they said I had to (there was a few not mentioned which were self study chapters but I didn't bother with them). I was like... THANKS GOD!!!&lt;br /&gt;Hope it might help someone else.&lt;br /&gt;But please don't think that I'm going to praise God for my own benefit. I know that praising God is for Him, not for me. But if one can pray for God, can't you study for Him?&lt;br /&gt;Any thoughts, comments?&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114901686114579863?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114901686114579863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114901686114579863&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114901686114579863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114901686114579863'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/05/had-to-be-some-kind-of-miracle.html' title='Had to be some kind of miracle'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114863486603348405</id><published>2006-05-26T10:47:00.000+02:00</published><updated>2007-01-18T08:17:14.267+02:00</updated><title type='text'>Almost Done!</title><content type='html'>Well I'm so glad that I am finally done with my projects with this semester.&lt;br /&gt;I did pretty well its just the exams that are left.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Thanks for anyone who prayed for me during my finalization for my project deadlines, I feel that the Lord has helped me get through it, and I would also like to thank Him for His help.&lt;br /&gt;I regret to say that during the time before my project deadline, I havn't come to a quiet realization with my Maker and I regret that I havn't. But it won't help to bust my own chops, but only to prepare for the next ordeal that is yet to come... my worst subject that I'm writing Monday.&lt;br /&gt;Computer Forensics, is a good subject to have but I am pretty dissapointed in the study context it had to offer. It could be for various reasons, but I really thoaght that it would be an interresting subject but I guess its because it was the only theoretical subject that had to compete against practical subjects, such as Data Communication, Compiler Construction, My Year Project and Systems Programming (Linux). He he.&lt;br /&gt;But since there isn't much time left and I have a lot to study (again!) I would want to make time for God because what's the use of doing something where He is not included? How can He bless you and help you if you don't include Him or are doing things that He wants you to do. I guess its easy to make such statements now, but when one has to hurry up to finish with something, you tend to lose track of the bigger picture. I did include God in my projects but I didn't remain with Him till the bitter end, but He remained with me. Seems weird to hear it like that but God is always with us, we are not always with Him.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114863486603348405?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114863486603348405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114863486603348405&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114863486603348405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114863486603348405'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/05/almost-done.html' title='Almost Done!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114814138048240991</id><published>2006-05-20T17:52:00.000+02:00</published><updated>2007-01-16T18:30:30.861+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>I'm so relieved!</title><content type='html'>Man I am so thankful to the Lord who have helped me...&lt;br /&gt;I had a huge struggle of setting up my home gateway on a Linux Server.&lt;br /&gt;Through many tries and scouting the web I finally got to a place where someone was able to help me. I was so happy when I finally saw my internet work when I browsed a page that I was shouting it out to my family in joy.&lt;br /&gt;&lt;br /&gt;You check the following site if you are interrested : &lt;a href="http://mybroadband.co.za/vb/showthread.php?t=43939"&gt;http://mybroadband.co.za/vb/showthread.php?t=43939&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114814138048240991?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114814138048240991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114814138048240991&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114814138048240991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114814138048240991'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/05/im-so-relieved.html' title='I&apos;m so relieved!'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114811571952753381</id><published>2006-05-20T10:57:00.001+02:00</published><updated>2008-05-02T11:24:37.921+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='settings'/><title type='text'>Cool VIM settings</title><content type='html'>For those using VIM, I have some cool settings for you to try if you do a lot of config and source editing.&lt;br /&gt;Make (if there is not one already) a ~/.vimrc file.&lt;br /&gt;Edit it with...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255); font-weight: bold;"&gt;:syntax on&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255); font-weight: bold;"&gt;:colorscheme delek&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255); font-weight: bold;"&gt;:set number&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255); font-weight: bold;"&gt;:set autoindent&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255); font-weight: bold;"&gt;:set tabstop=4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255); font-weight: bold;"&gt;:set shiftwidth=4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 255, 153); font-weight: bold;"&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;:set backspace=2&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;What it basically does is it turns on keyword coloring (you can change delek into any other colorscheme), line numbering, a tabwidth of 4 and allows you to properly backspace your lines, etc. Put it on and try it out.&lt;span style="color: rgb(153, 255, 153); font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114811571952753381?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114811571952753381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114811571952753381&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114811571952753381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114811571952753381'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/05/cool-vim-settings.html' title='Cool VIM settings'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114798400067620555</id><published>2006-05-18T22:19:00.001+02:00</published><updated>2008-05-02T11:35:49.998+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='settings'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>My Linux questions answered (part 1)</title><content type='html'>Hi.&lt;br /&gt;I have a couple of links here that I have made at &lt;a href="http://www.linuxquestions.org/"&gt;Linux Questions.org's&lt;/a&gt; forums which I hope you might find useful.&lt;br /&gt;&lt;a href="http://www.linuxquestions.org/questions/showthread.php?t=446151"&gt;SAMBA Sample&lt;/a&gt;&lt;br /&gt;&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;a href="http://www.linuxquestions.org/questions/showthread.php?t=428601"&gt;  Problem setting up iBurst USB-terminal on SuSE&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.linuxquestions.org/questions/showthread.php?t=445016"&gt;  Remote connection to KInternet&lt;/a&gt;&lt;br /&gt;&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;a href="http://www.linuxquestions.org/questions/showthread.php?t=441708"&gt;  Kernel module with multiple source files compilation problem&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxquestions.org/questions/showthread.php?t=434576"&gt;  Compiling a Kernel Module for User Mode Linux&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxquestions.org/questions/showthread.php?t=434007"&gt;  A program to rip audio to a RAW file (Linux Programming)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yes these are all Linux type questions, so if you have problem with stuff like that, then I hope this would be useful to you.&lt;br /&gt;&lt;br /&gt;EDIT: I've updated the title to a more associative one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-114798400067620555?l=lastattacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lastattacker.blogspot.com/feeds/114798400067620555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27947907&amp;postID=114798400067620555&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114798400067620555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27947907/posts/default/114798400067620555'/><link rel='alternate' type='text/html' href='http://lastattacker.blogspot.com/2006/05/my-linux-questions-answered-part-1.html' title='My Linux questions answered (part 1)'/><author><name>Dandré</name><uri>http://www.blogger.com/profile/04574047868840250564</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-iWPrMo3Upmc/TrGXNj1MzZI/AAAAAAAAACw/KP-DjeTPrRs/s220/Identity.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27947907.post-114770668661175089</id><published>2006-05-15T17:14:00.000+02:00</published><updated>2007-01-18T08:17:27.010+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prayer'/><category scheme='http://www.blogger.com/atom/ns#' term='christianity'/><title type='text'>Praise for Pray</title><content type='html'>Today I rediscovered the value of praise before praying.&lt;br /&gt;Usually we tend to separate the two. Tradisionally we pray in the mornings when we wake up and at night when we go to sleep and we sing praises at church. Well I'm not saying that everyone does it but it is adopted umongst many Christians.&lt;br /&gt;&lt;span id="fullpost"&gt;&lt;br /&gt;The problem with prayer sometimes is that one cannot truly focus on God because everytime we do, we have a TODO item popping up in our minds and then we dwell on it only to remember that we are actually praing now but keep getting frustrated because we can't help it.&lt;br /&gt;A few months ago, I remembered our reverent's wife talking on that subject. Satan just loves to steal our time from God and tries to distract us. The only way to get rid of such thoaghts is not to pray it away, think it away or anything like that...&lt;br /&gt;You PRAISE it away. How? By singing and praising God with your mouth litterally.&lt;br /&gt;When you do that, your brain starts to focus on what you say and the thoaghts start to change. The reason why you have to praise God is because He comes in and your brain finds a place to focus at.&lt;br /&gt;&lt;br /&gt;I sang songs of praises this morning and it took my mind off my projects, etc. and made me think about God. I could actually pray for almost an hour. Wouldn't you want to be able to speak with God without any distractions?&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27947907-11477066866117
