<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ranok&#039;s Ramblings &#187; Random</title>
	<atom:link href="http://www.r4n0k.com/category/random/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.r4n0k.com</link>
	<description>A peek into my life, and the projects I never complete</description>
	<lastBuildDate>Mon, 14 Jun 2010 12:49:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Computers Like Rectangles</title>
		<link>http://www.r4n0k.com/2009/05/24/computers-like-rectangles/</link>
		<comments>http://www.r4n0k.com/2009/05/24/computers-like-rectangles/#comments</comments>
		<pubDate>Sun, 24 May 2009 12:59:32 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[For Fun]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[quandry]]></category>
		<category><![CDATA[rectangles]]></category>
		<category><![CDATA[triangles]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=192</guid>
		<description><![CDATA[The other day I was at a friend&#8217;s house, and while waiting for the oven to preheat, I stumbled across a game I once played as a child, a triangular peg board where the goal is to remove pegs such that there is only one peg remaining. I was thinking of devising a program to [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I was at a friend&#8217;s house, and while waiting for the oven to preheat, I stumbled across a game I once played as a child, a triangular peg board where the goal is to remove pegs such that there is only one peg remaining. I was thinking of devising a program to attempt to solve the puzzle, much like my programming languages assignment last year to solve a slide puzzle. However, the more I thought about it, the more I realized how attached the conventional computer science paradigm is to rectangular data. It is almost too easy to write a program to play checkers (or at least manipulate the pieces on a board), but it is certainly non-trivial to write a simple and efficient algorithm the maintain the board state. I think it&#8217;s rather interesting how the problems we generally have to solve fit rather nicely into their little rectangles, and how few problems require other shapes.</p>
<p>For a solution to the peg board problem, I found <a href="http://www.danobrien.ws/PegBoard.html">this site</a> that documents the author&#8217;s process and a code listing. If you&#8217;re interested in the game as much (or more) than that the programmatic solution, there are also a number of statistics for possible solutions on the site.</p>
<p>Peace and chow,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2009/05/24/computers-like-rectangles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Off on a Tangent: Calling Conventions</title>
		<link>http://www.r4n0k.com/2009/05/07/off-on-a-tangent-calling-conventions/</link>
		<comments>http://www.r4n0k.com/2009/05/07/off-on-a-tangent-calling-conventions/#comments</comments>
		<pubDate>Thu, 07 May 2009 16:17:50 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[For Fun]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[assembler]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tangent]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=190</guid>
		<description><![CDATA[There are many things that we take for granted when using a computer: the operating system, hard ware drivers, and graphical interfaces. By learning about these tools, it gives a new awareness into how much work it takes to get even a simple system working. Computer programmers also take advantage of a number of software [...]]]></description>
			<content:encoded><![CDATA[<p>There are many things that we take for granted when using a computer: the operating system, hard ware drivers, and graphical interfaces. By learning about these tools, it gives a new awareness into how much work it takes to get even a simple system working. Computer programmers also take advantage of a number of software components: compiler, linker, operating system, memory management functions and debuggers. There is quite a bit of behind the scenes that goes on even in a simple program like:</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">int foo(int a, int b) {
return a + b;
}</span></pre>
</div>
</div>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">int main() {
return foo(3, 4);
}</span></pre>
</div>
</div>
<p>Still has many layers underneath the obvious, the one I want to mention briefly today is the calling conventions. I was curious what happens when you call a function, and looking on wikipedia, I found an article that very nicely shows how many possible things could happen.</p>
<p>Normally in with gcc, when you call a function, the generated code pushes the arguments to the function onto the stack in reverse order, that is, last argument first, and then pushes the address of the next instruction to execute and jumps to the function. That function then can access the arguments and put it&#8217;s return value in EAX and jump back to the pushed instruction address. The caller must then clear the stack and use the EAX return value.</p>
<p>However, a way to optimize your code with gcc is the -mregparm=N command, which will put the N &lt; 4 first arguments in registers EAX, EDX, and ECX respectively and push the rest onto the stack. This is much quicker since it requires less memory access. However, you must make sure to compile all your code this way, otherwise you&#8217;ll have some strange interactions when the conventions are mixed.</p>
<p>Peace and chow,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2009/05/07/off-on-a-tangent-calling-conventions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Inets &#8211; Erlang&#8217;s Builtin Web Daemon</title>
		<link>http://www.r4n0k.com/2009/05/02/using-inets-erlangs-builtin-web-daemon/</link>
		<comments>http://www.r4n0k.com/2009/05/02/using-inets-erlangs-builtin-web-daemon/#comments</comments>
		<pubDate>Sat, 02 May 2009 21:31:03 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[inets]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[osp]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=183</guid>
		<description><![CDATA[A feature I&#8217;ve been meaning to add to Open Server Platform for a while is a web management system, where an administrator can login and manage the cluster and the servlets running on it. I&#8217;d like there to be a user friendly interface for administrators to start, stop and migrate servlets across the different nodes [...]]]></description>
			<content:encoded><![CDATA[<p>A feature I&#8217;ve been meaning to add to <a href="http://www.openserverplatform.com">Open Server Platform</a> for a while is a web management system, where an administrator can login and manage the cluster and the servlets running on it. I&#8217;d like there to be a user friendly interface for administrators to start, stop and migrate servlets across the different nodes of the system and a way to upload a servlet file and have it compiled and distributed across the cluster.</p>
<p>The simplest way to start serving web content with Erlang is to use the inets server and the httpd service. This is a HTTP/1.1 server built into the Erlang distribution that supports some more advanced features, most interesting of all, the ability to use Erlang to dynamically generate content. It is however very poorly documented, and there are a few very annoying things I came across that I&#8217;m posting to hopefully help anyone else trying to get it working.</p>
<ol>
<li>The order of modules in the <code>{modules, []}</code> directive matters, if you want to have mod_dir work, it needs to be specified *AFTER* the mod_alias.</li>
<li>The logging is rather horrid, the transfer.log will not log anything except for HTTP 200 for every request, even if it failed.</li>
<li>You must specify <code>{bind_address, any}</code> in the configuration to use the <code>httpd:reload_config</code> function, otherwise it will return <code>{error, not_started}</code></li>
<li>If you just want to server static content, you will need at a minimum the following modules: mod_get, mod_head, mod_log, mod_actions and mod_range. However, adding mod_alias is recommended along with the <code>{directory_index, ["index.html"]}</code> directive to stop it from failing (HTTP 500) on a directory request.</li>
<li>To use dynamic content, create a module that exports callbacks of the form: <code>function(SessionID, _Env, _Input)</code>. To write Str back to the client, use the <code>mod_esi:deliver(SessionID, Str)</code> function.</li>
</ol>
<p>I hope that this helps out!</p>
<p>Peace and chow,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2009/05/02/using-inets-erlangs-builtin-web-daemon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Black Hat DC Day 2</title>
		<link>http://www.r4n0k.com/2009/02/19/black-hat-dc-day-2/</link>
		<comments>http://www.r4n0k.com/2009/02/19/black-hat-dc-day-2/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 03:42:47 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[biometrics]]></category>
		<category><![CDATA[blackhat]]></category>
		<category><![CDATA[data mining]]></category>
		<category><![CDATA[dc]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[smartcards]]></category>
		<category><![CDATA[tor]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=168</guid>
		<description><![CDATA[Now that I knew what I was in for, the second day of Black Hat DC took quite a bit less adjusting to, I felt more okay to skip parts of a presentation to chat was presenters, which I did after the Tor presentation.
In the morning, Dan Kaminsky gave a brief review of the DNS [...]]]></description>
			<content:encoded><![CDATA[<p>Now that I knew what I was in for, the second day of Black Hat DC took quite a bit less adjusting to, I felt more okay to skip parts of a presentation to chat was presenters, which I did after the Tor presentation.</p>
<p>In the morning, Dan Kaminsky gave a brief review of the DNS exploit he found last year, and the current status of the source port randomization patch. The estimate for patch coverage was about 60% of DNS servers, though the unpatched servers are being pretty actively exploited. He also clarified his stance on DNSSEC, that he&#8217;s neutral to the technology, but feels that it can provide end to end trust, something that DNSCurve cannot do, and has a higher chance of being accepted on the root since it doesn&#8217;t require pre-operation cryptography. A big implementation hurdle that he sees is for the deployment of DNSSEC servers to be turn-key and not require extra maintenance or knowledge to use.</p>
<p>The following presentation was an interesting one that provided a technical solution to a political problem, how to share data without compromising the data privacy, and without letting the data sharing knowing what is being searched for.</p>
<p>After that, a researcher from Vietnam showed how to break the facial recognition software built into laptops. Simply by taking a photo of the user, and editing it for proper lighting and tones. I got to be the lovely assistant in this presentation, enrolling my face into one of his laptops, then having him take my picture through a Skype chat, then using that picture to unlock the computer. This got the crowd laughing and very impressed with how this technology can actually sell.</p>
<p>The presentation on Tor did very little for me, the research was of marginal value, but the talk after with the presenter and the creator of Tor was eye opening. The most important thing I brought back from that talk was that <strong>Tor is not meant to protect you from big brother, but to keep you anonymous from the sites you are browsing, and your ISP</strong>. After I saw that shift, I was able to accept the many attacks that have come out of the woodwork over the past few years, and finally put Tor in the proper place in my cyber tool chest.</p>
<p>Finally, the memory snorting presentation was very slick, it seemed to be a very clever way to reuse the signature data already in existence, and be able to both analyze a saved memory dump, and also potentially find malicious code before it hits the wire.</p>
<p>Overall, the show was a blast, and I hope to have the privilege of attending sometime in the future.</p>
<p>Peace and chow,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2009/02/19/black-hat-dc-day-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Black Hat DC Day 1</title>
		<link>http://www.r4n0k.com/2009/02/18/black-hat-day-1/</link>
		<comments>http://www.r4n0k.com/2009/02/18/black-hat-day-1/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 03:34:47 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[blackhat]]></category>
		<category><![CDATA[dc]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[intel txt]]></category>
		<category><![CDATA[satellite]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=165</guid>
		<description><![CDATA[My first day at Black Hat was pretty neat, I learned quite a bit, and I had my expectations shifted around. Originally, I was expecting the presentations to be the core aspect of the conference, and everything else on the sidelines. I quickly learned that the presentations are just a small part of the greater [...]]]></description>
			<content:encoded><![CDATA[<p>My first day at Black Hat was pretty neat, I learned quite a bit, and I had my expectations shifted around. Originally, I was expecting the presentations to be the core aspect of the conference, and everything else on the sidelines. I quickly learned that the presentations are just a small part of the greater networking and information exchange going on.</p>
<p>The keynote was very interesting as it wasn&#8217;t technical in the least, but more a call for discourse about the tough questions that the country needs to ask about how the government and private sector need to work together to protect the country&#8217;s cyber resources. It also brought to light a question regarding cyber weapons, and who is responsible to clean up the online equivalent of a Katrina.</p>
<p>Moxie&#8217;s presentation on defeating HTTPS was interesting, but was more leveraging holes in other aspects of the network to gain control of an SSL tunnel. Why clever and very neat to see in action, it didn&#8217;t blow me away nor was it particularly ground breaking.</p>
<p>After Moxie&#8217;s talk, I spent a while chatting with <a href="http://www.doxpara.com/">Dan</a> about the advantages of DNSSEC versus DNSCurve and how take the strengths of each to find a happy medium. I hope to implement his suggestions into LadieBug (which he thought was a bad name to have &#8216;bug&#8217; in the name).</p>
<p>I left half way through the Mac OSX presentation since it was pretty useless. The presenter assumes you have access to a Mac and can run arbitrary code/modify binaries. From my perspective, one you&#8217;ve got that, the game is pretty much over.</p>
<p>After lunch I made my way to the packed room where the gang from the Invisible Things Lab talked about their TXT exploit. This was a highly anticipated talk, and I must say I personally was slightly disappointed. While their findings were interesting, due to their deal with Intel, they basically gave an overview of TXT and then talking about the Q35 hack in more detail, which is old news. Esentially, the summary of their findings were that TXT doesn&#8217;t check the SMM handler, and they disassembled the handler and found a number of bugs. The need for Dual Monitor Mode or an STM as they called it seems needed, but perhaps more eyes on the SMM handler code to help find bugs.</p>
<p>Hailing from AFIT, the speaker for the SecureQEMU project gave an overview of using emulation to encrypt and sign code that can&#8217;t be modified from the guest. While impressive that they managed to get it working on an unmodified OS, it was slow, and not a very complex concept.</p>
<p>Last, but not least was a just for fun talk on satellite hacking. This one had the room laughing for much of the hour while the speaker showed us a live demo of decoding a stream from a satellite over Africa. He then showed us how laughable the security in the RFID passports is, easily cloning and modifing his son&#8217;s passport to have Osama Bin Laden&#8217;s face, and doing a MitM attack using two $15 RFID readers/emulators.</p>
<p>That&#8217;s all for today, check back tomorrow for a review of the next set of briefings, and as always I&#8217;ll be updating regularly on <a href="http://twitter.com/ranok">Twitter</a>.</p>
<p>Peace and chow,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2009/02/18/black-hat-day-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why Better is Not Always Best</title>
		<link>http://www.r4n0k.com/2009/01/23/why-better-is-not-always-best/</link>
		<comments>http://www.r4n0k.com/2009/01/23/why-better-is-not-always-best/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 03:29:00 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[For Fun]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=153</guid>
		<description><![CDATA[There has been a long debate on Windows versus Linux, Mac versus Windows, Apples versus Oranges, etc&#8230; I&#8217;m going to add my two cents to the fray, but in a way that looks at how each OS plays its role.
Windows: This is the dominant OS, it may not follow industry standards, but regardless is the [...]]]></description>
			<content:encoded><![CDATA[<p>There has been a long debate on Windows versus Linux, Mac versus Windows, Apples versus Oranges, etc&#8230; I&#8217;m going to add my two cents to the fray, but in a way that looks at how each OS plays its role.</p>
<p><strong>Windows: </strong>This is the dominant OS, it may not follow industry standards, but regardless is the norm. It has a horrid reputation for security as it is still trying to support legacy applications. It is also buggy, and a pain to develop on, however, the .NET framework is a step in the right direction. Windows made a rise when it was able to make computing both affordable, and simple, it wasn&#8217;t perfect, but it was good enough for its users.</p>
<p><strong>Mac:</strong> Apple started out lost, using the shotgun approach to selling computers, many different models with very slight differences. However, once Steve Jobs trimmed down the breadth of choices and OS X came out, they had finally hit the sweet spot, selling powerful, easy to use software on high quality hardware. They are in the best position to take the lead, if they can lower their price points, as they will never be able to compete with a $200 computer from Dell. I&#8217;d suggest they release some very low end netbooks and cheap desktops to gain market share in both the education sector and as a computer for the &#8216;basic user&#8217;, those who only checks their email and surfs the web.</p>
<p><strong>Linux:</strong> An oddball to say the least, it has been mostly community developed since its inception. Very popular with servers and more computer literate users, it still has very little market share. While there may be evidence to support it being the &#8216;best&#8217; operating system, best is inherently subjective, Linux is made by technically savvy users for themselves, it is just now being looked at from a average user standpoint. While I prefer Linux, I also would consider myself a pretty technically skilled user, therefore enjoy the challenges of getting my system running perfectly, and the customizations it exposes. Linux has a long way to go before it will be considered viable for the average user, as most of the development is to make it better for the current userbase, not the one that doesn&#8217;t use it.</p>
<p>Well, now that I&#8217;m sure I&#8217;ve angered a number of people (please comment, I do like reading responses), I will end this post having put in my two cents, but very eager to see how the next few years change the playing field.</p>
<p>Peace and chow,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2009/01/23/why-better-is-not-always-best/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lulz of the Day: Ark</title>
		<link>http://www.r4n0k.com/2008/11/16/lotd-ark/</link>
		<comments>http://www.r4n0k.com/2008/11/16/lotd-ark/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 01:19:59 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[For Fun]]></category>
		<category><![CDATA[IRC]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[LOTD]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=117</guid>
		<description><![CDATA[Well, it&#8217;s about time for there to be another Lulz of the Day! Today we&#8217;ll be lulzing about Ark, my IRC anti-floodbot script. As an IRCop on a network, I am constantly figthing floodbots who join, /msg everyone on the network some spam and then disconnect. I figured that there must be a way to [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s about time for there to be another Lulz of the Day! Today we&#8217;ll be lulzing about Ark, my IRC anti-floodbot script. As an IRCop on a network, I am constantly figthing floodbots who join, /msg everyone on the network some spam and then disconnect. I figured that there must be a way to stop them, and so I diligently started working on Ark. Ark is a perlscript that connects to an IRC server as an IRCop and joins the most popular channels (which you specify). It then waits quietly, bidding its time until it gets /msg&#8217;d. Once it receives a message, it springs into action, checking the received message against a list of regexs. If any of them match, it will /kill the bot and resume its slumber.</p>
<p>This very simple, yet oddly helpful script can be downloaded from <a href="http://code.jitunleashed.com/ark.tar">my code site</a></p>
<p>Peace and chow,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2008/11/16/lotd-ark/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lulz of the Day: Cesspool</title>
		<link>http://www.r4n0k.com/2008/11/14/lulz-of-the-day-cesspool/</link>
		<comments>http://www.r4n0k.com/2008/11/14/lulz-of-the-day-cesspool/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 17:09:47 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[For Fun]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[LOTD]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=113</guid>
		<description><![CDATA[While cleaning up my hard drive, I&#8217;ve come across many old projects that are pretty interesting, and I thought I&#8217;d start a mini-series of these little pearls (perls?) I come across as I find them. Without further ado, lets start with our first Lulz of the Day (LOTD)!
Cesspool
As many of you know, I&#8217;m in the [...]]]></description>
			<content:encoded><![CDATA[<p>While cleaning up my hard drive, I&#8217;ve come across many old projects that are pretty interesting, and I thought I&#8217;d start a mini-series of these little pearls (perls?) I come across as I find them. Without further ado, lets start with our first Lulz of the Day (LOTD)!</p>
<p><strong>Cesspool</strong></p>
<p>As many of you know, I&#8217;m in the systems biology class this semester, and recently we spent a week or so looking at the genetic algorithm and its applications. I immediately began hacking on a genetic algorithm to &#8216;breed&#8217; a <a href="http://www.corewars.org/">Corewars</a> warrior. The code for this is pretty simple, and still needs much revision, but it&#8217;s bred some programs that are pretty good. I&#8217;m going to run it a few times and try to put together some statistics in the next few days, but for now, you can <a href="http://code.jitunleashed.com/cesspool.txt">download the source</a> and play around with it as you wish. Basically what it does is:</p>
<ol>
<li>Generates some initial warriors with random commands and arguments</li>
<li>Pits the warriors against themselves in battle using the corewars-cmd command</li>
<li>Ranks them by their scores</li>
<li>Cross breeds the best 20% of the population, and mutate the rest (with 5% chance of mutation)</li>
<li>Repeat from step 2 for the number of generations.</li>
</ol>
<p>Todo:</p>
<ul>
<li>Modify the cross-breeding algorithm so it doesn&#8217;t just append one program to the other, but mixes up the commands of both</li>
<li>Small bug fixes with the scraper for the corewars-cmd results</li>
<li>Run a number of times, and then pit the best generated warriors against some made by humans</li>
</ul>
<p>Peace and lulz,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2008/11/14/lulz-of-the-day-cesspool/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Expanding My Horizons</title>
		<link>http://www.r4n0k.com/2008/11/03/expanding-my-horizons/</link>
		<comments>http://www.r4n0k.com/2008/11/03/expanding-my-horizons/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 00:01:26 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[For Fun]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=100</guid>
		<description><![CDATA[While I have many interests from computers to canoing, to philosophy and reading, one thing that I love across the board is music. I&#8217;ve been keeping track of my musical tastes for a while using Last.fm, and I&#8217;m very fascinated by how my tastes have matured and shifted, and how music I couldn&#8217;t stand before [...]]]></description>
			<content:encoded><![CDATA[<p>While I have many interests from computers to canoing, to philosophy and reading, one thing that I love across the board is music. I&#8217;ve been keeping track of my musical tastes for a while using <a href="http://www.last.fm/user/discipleofranok">Last.fm</a>, and I&#8217;m very fascinated by how my tastes have matured and shifted, and how music I couldn&#8217;t stand before I now embrace. In high school, I was very into pretty mainstream hard rock and metal, bands like Godsmack, Killswitch Engage and Lamb of God. While I still enjoy them from time to time, I have found myself growing tired of the genre as while each song is a very multidimensional sonic journey, the variations between individual songs and albums are slight and rather lacking. I was then shown Porcupine Tree by my friend <a href="http://jonrossi.net/">Jon Rossi</a>. I immediately feel in love with the difference between each song, and between the different albums, I could listen to album after album without growing weary of it. Using Last.fm to branch out from Porcupine Tree, I found Blackfield, Sigur Ros, rediscovered Alan Parsons Project, Marillion and Pink Floyd. Still, I was looking for something more off the wall and varying, looking into The Prize Fighter Inferno and moving my way into electronic music. Today however, I think I have hit the nail on the head, finding a whole genre of off-beat, strange yet oddly musical delights: avant-progressive rock, with bands like Kayo Dot and The Mars Volta. From there, <a href="http://www.maxedmands.com/index.html">Max</a> pointed me at Sound Tribe Sector 9 and I found Tstewart, an electronic post-jazz musician. So I have many new artists to listen to (thanks Amazon MP3 download) and more places to search.</p>
<p>It should be said that even as my tastes have evolved, I still really enjoy hardcore trance ala Clubland X-Treme and other hardcore eurotrance.</p>
<p>Peace and chow,</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2008/11/03/expanding-my-horizons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Day of Food!</title>
		<link>http://www.r4n0k.com/2008/08/25/first-day-of-food/</link>
		<comments>http://www.r4n0k.com/2008/08/25/first-day-of-food/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 23:04:09 +0000</pubDate>
		<dc:creator>ranok</dc:creator>
				<category><![CDATA[For Fun]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[vegan]]></category>

		<guid isPermaLink="false">http://www.r4n0k.com/?p=68</guid>
		<description><![CDATA[Well, today was my first day of food, so I decided to be creative and try some new food. I had granola and banana for breakfast, a delightful tomato pesto panini on multigrain bread for lunch and for dinner, Max and I shared a quinoa salad. It was simple to make (Max and I played [...]]]></description>
			<content:encoded><![CDATA[<p>Well, today was my first day of food, so I decided to be creative and try some new food. I had granola and banana for breakfast, a delightful <a href="http://www.r4n0k.com/food/tomato-pesto-sandwich.jpg">tomato pesto panini on multigrain bread</a> for lunch and for dinner, Max and I shared a quinoa salad. It was simple to make (Max and I played GameCube while the quinoa was simmering) and very delicious. For us two (a little left over for lunch), I used 3/4 cups rinsed quinoa, 1.5 cups water, 1/3 of a tomato (more is better, chopped coarsely), 1/2 of an avocado (chopped into bits as well) and some chopped cilantro. Simply bring the quinoa and the water to a boil, and then slowly simmer until all the water is gone, then cool and add the vegetables and cilantro and mix with a little bit of extra virgin olive oil to keep from getting to clumped. We also had some carrots and a dollup of hummus on the side, with a few almonds and a sprig of cilantro for a garnish. It was very tasty and simple to make, here&#8217;s a shot of <a href="http://r4n0k.com/food/quinoa-salad.jpg">the salad</a>, and <a href="http://r4n0k.com/food/quinoa-salad-plated.jpg">us having fun plating it up</a>.</p>
<p>Good eats!</p>
<p>Ranok</p>
]]></content:encoded>
			<wfw:commentRss>http://www.r4n0k.com/2008/08/25/first-day-of-food/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
