<?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>haslo.ch - Guido's Blog &#187; downloads</title>
	<atom:link href="http://www.haslo.ch/blog/tag/downloads/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.haslo.ch/blog</link>
	<description>We believe that people with passion can change the world for the better.</description>
	<lastBuildDate>Wed, 16 Nov 2011 11:23:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>StarCraft TBG German Card Translations</title>
		<link>http://www.haslo.ch/blog/starcraft-tbg-german-card-translations/</link>
		<comments>http://www.haslo.ch/blog/starcraft-tbg-german-card-translations/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 16:11:52 +0000</pubDate>
		<dc:creator>haslo</dc:creator>
				<category><![CDATA[Games IRL]]></category>
		<category><![CDATA[board games]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[game rules]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[starcraft]]></category>

		<guid isPermaLink="false">http://www.haslo.ch/blog/?p=2063</guid>
		<description><![CDATA[I got the Brood War expansion for the great StarCraft board game for christmas from my beloved wife, how great is that. I&#8217;ll tell you: Totally awesome. Whether you know the game or not, this FFG promo video is very well-made and worth watching either way: Back when I got the original game, I invited [...]]]></description>
			<content:encoded><![CDATA[<p>I got the <a href="http://www.boardgamegeek.com/game/38796">Brood War expansion</a> for the great <a href="http://www.boardgamegeek.com/boardgame/22827">StarCraft board game</a> for christmas from my beloved wife, how great is that. I&#8217;ll tell you: Totally awesome.</p>
<p>Whether you know the game or not, this <a href="http://new.fantasyflightgames.com/edge_minisite.asp?eidm=7&amp;enmi=StarCraft">FFG</a> promo video is very well-made and worth watching either way:</p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object type="application/x-shockwave-flash" width="425" height="355" data="http://www.youtube.com/v/KqNyZNoGWrw&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;hl=en&amp;autoplay=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0"><param name="movie" value="http://www.youtube.com/v/KqNyZNoGWrw&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;hl=en&amp;autoplay=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" /><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /></object></span></p>
<p>Back when I got the original game, I invited some friends over to play it a couple of times, and we had a great time -- but people had problems wrapping their heads around the tech trees, and some would have preferred if I&#8217;d have bought the game in German. There&#8217;s plenty of cards that come with StarCraft, and having them just sitting there in a pile won&#8217;t help understanding which ones help which troops.</p>
<p>Furthermore, the expansion did add (of course) new cards, and even new faction-specific card types, so things didn&#8217;t get any easier. Having to mentally translate stuff all the time doesn&#8217;t help with forming strategies. So, here&#8217;s my newest little player aid:</p>
<p><a href="http://www.haslo.ch/starcraft/StarcraftCardsGerman.1.1.pdf"><img style="float: left; border: none" src="http://www.haslo.ch/media/floppy.png" alt="floppy StarCraft TBG German Card Translations"  title="StarCraft TBG German Card Translations" /></a>A four-page spreadsheet that lists and translates to German <a href="http://www.haslo.ch/starcraft/StarcraftCardsGerman.1.1.pdf">all event cards, racial techs, leadership cards, abilities and modules</a> (currently version 1.1).</p>
<p>I hope it helps my German-speaking, StarCraft-playing readers, all three of them <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' title="StarCraft TBG German Card Translations" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.haslo.ch/blog/starcraft-tbg-german-card-translations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yet Another Doom Math Sheet</title>
		<link>http://www.haslo.ch/blog/yet-another-doom-math-sheet/</link>
		<comments>http://www.haslo.ch/blog/yet-another-doom-math-sheet/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 23:02:37 +0000</pubDate>
		<dc:creator>haslo</dc:creator>
				<category><![CDATA[Games IRL]]></category>
		<category><![CDATA[board games]]></category>
		<category><![CDATA[doom]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[game rules]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[haslo]]></category>

		<guid isPermaLink="false">http://www.haslo.ch/blog/?p=1941</guid>
		<description><![CDATA[Yet again, yours truly didn&#8217;t find what I really wanted when browsing the extensive files section that the BoardGameGeek has in store for the Doom boardgame (aah, Flash with sound!). So yet again, I created a little player aid of my own, procrastinating from learning for Uni as I were. This is what came out [...]]]></description>
			<content:encoded><![CDATA[<p>Yet again, yours truly didn&#8217;t find what I really wanted when browsing the extensive <a href="http://www.boardgamegeek.com/files/boardgame/10640">files section</a> that the <a href="http://www.boardgamegeek.com/">BoardGameGeek</a> has in store for the <a href="http://new.fantasyflightgames.com/edge_minisite.asp?eidm=34&amp;enmi=Doom">Doom boardgame</a> (aah, Flash with sound!). So yet again, I created a little player aid of my own, procrastinating from learning for Uni as I were.</p>
<p><a href="http://www.haslo.ch/files/YADMS_v1.1.pdf"><img style="border: none; float: left" src="http://www.haslo.ch/media/floppy.png" alt="floppy Yet Another Doom Math Sheet"  title="Yet Another Doom Math Sheet" /></a>This is what came out of it: <strong><a href="http://www.haslo.ch/files/YADMS_v1.1.pdf">Yet Another Doom Math Sheet, v. 1.1</a></strong></p>
<p>It is, basically, a little statistical breakdown of a few values (average, median, minimum, maximum) for a couple variables (range, damage) for each of a marine&#8217;s weapons and each invader&#8217;s demon. It might help players decide to punch a Trite over trying to shoot it with the pistol, from close range &#8211; or at least, that is my hope.</p>
<p>It also goes to show how different some medians are from their respective averages, which is the interesting part.</p>
<p>Tell me if you find it useful, or if you&#8217;d change something <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="Yet Another Doom Math Sheet" /> </p>
<h2>Version history</h2>
<ul>
<li>08-12-17: v<a href="http://www.haslo.ch/files/YADMS_v1.0.pdf">1.0</a> &#8211; Initial release</li>
<li>08-12-18: v<a href="http://www.haslo.ch/files/YADMS_v1.1.pdf">1.1</a> &#8211; Added columns for non-miss averages and medians, explanations in a row below the values, and a copyright notice</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.haslo.ch/blog/yet-another-doom-math-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rational-Causalist Phenomenology</title>
		<link>http://www.haslo.ch/blog/rational-causalist-phenomenology/</link>
		<comments>http://www.haslo.ch/blog/rational-causalist-phenomenology/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 10:54:58 +0000</pubDate>
		<dc:creator>haslo</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[haslo]]></category>
		<category><![CDATA[papers]]></category>
		<category><![CDATA[phenomenology]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[studies]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://www.haslo.ch/blog/?p=1494</guid>
		<description><![CDATA[What I always wondered when listening to Prof. E. Marbach&#8216;s lectures about phenomenology (or sitting in his seminars) was: Hm, well, this really doesn&#8217;t quite fit into a rational-causalist world view (like science currently propagates), at all. Being dualist in nature and all. But, phenomenologists have a point: There are things science just can&#8217;t explain [...]]]></description>
			<content:encoded><![CDATA[<p>What I always wondered when listening to <a href="http://www.philosophie.unibe.ch/content/institutsangehoerige/marbach/index_ger.html">Prof. E. Marbach</a>&#8216;s lectures about <a href="http://en.wikipedia.org/wiki/Phenomenology_(philosophy)">phenomenology</a> (or sitting in his seminars) was: Hm, well, this really doesn&#8217;t quite fit into a rational-causalist world view (like science currently propagates), at all. Being dualist in nature and all.</p>
<p>But, phenomenologists have a point: There are things science just can&#8217;t explain (yet?), and often, when trying to incorporate science (or rather, the scientific methods) and the way we have subjective intentionality, <a href="http://en.wikipedia.org/wiki/Philosophy_of_mind">philosophers of mind</a> either didn&#8217;t bring forth an entirely convincing argument or invented terms like <a href="http://en.wikipedia.org/wiki/Supervenience">supervenience</a> or <a href="http://en.wikipedia.org/wiki/Epiphenomenalism">epiphenomenalism</a> that essentially say &#8220;we don&#8217;t know how exactly, but it just happens&#8221;.</p>
<p><a href="http://www.haslo.ch/philosophy/phenomenology.pdf"><img style="border: none; float: left;" src="http://www.haslo.ch/media/floppy.png" alt="floppy Rational Causalist Phenomenology"  title="Rational Causalist Phenomenology" /></a>That didn&#8217;t satisfy me. So I went to write a paper of my own about the subject:</p>
<p style="text-align: center;"><strong><a href="http://www.haslo.ch/philosophy/phenomenology.pdf">The Legitimation of Traditional Phenomenology in a Rational-Causalist World</a></strong></p>
<p style="text-align: left;">From the Abstract:</p>
<blockquote>
<p style="text-align: left;">Traditional phenomenology has both gained new followers and new opponents in the last years. Followers, because it can explain things other approaches (like neurophysiology, or even psychology) can&#8217;t. Opponents, because it is dualist in nature and not really compatible with the way our science these days operates.</p>
<p style="text-align: left;">I will, in this short paper, attempt to show up how the good and important findings of traditional phenomenology can be incorporated in our rational-causalist world view, while at the same time avoiding to commit to its controversial parts. I will also show why I choose this approach and not one starting with traditional phenomenology.</p>
<p style="text-align: left;">To that end, I will attempt to single out two fundamental dogmas of phenomenology &#8211; that mental objects are immaterial, and that mental objects are (or can be) directed at physical entities &#8211; and show in what way altering those changes the entire theory that&#8217;s built upon them, enabling a reading of phenomenology that takes its contents serious and at the same time is compatible with a rational-causalist world view.</p>
</blockquote>
<p style="text-align: left;">I did hand in the paper already, and I&#8217;m really looking forward to discussing it with the Professor later this month.</p>
<p style="text-align: left;">Keep in mind that I&#8217;m still merely a student working on his Diploma thesis (equivalent to Master under Bologna), so I&#8217;m sure I still have lots to learn <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="Rational Causalist Phenomenology" />  Particularly the whole subjectivity issue isn&#8217;t quite solved yet.</p>
<p style="text-align: left;">Also, thanks to Prof. Marbach for this opportunity and an always open ear, Ste for the feedback during the writing of this paper, and to my wife Arzo for her awesome support.</p>
<p style="text-align: left;"><strong>Update 08-11-13, 15:52:</strong> Gee, I just had the first part (originally meant to be the whole) of some kind of a review discussion with Prof. Marbach, and I realized I misunderstood quite a few things about phenomenology, while I was not entirely clear on quite a few points in the paper, too, and actually have some things in there that border being factual errors. It&#8217;s great that I see those now, the idea that I could was one of the main things that drove me when writing the paper and putting forth such a controversial point. But take this as a word of caution &#8211; even less than I thought in this work here can be taken at face value, and I&#8217;ll revise quite a few points for my diploma thesis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haslo.ch/blog/rational-causalist-phenomenology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twilight Imperium &#8211; Stop Motion Experiment</title>
		<link>http://www.haslo.ch/blog/twilight-imperium-stop-motion-experiment/</link>
		<comments>http://www.haslo.ch/blog/twilight-imperium-stop-motion-experiment/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 17:30:49 +0000</pubDate>
		<dc:creator>haslo</dc:creator>
				<category><![CDATA[Games IRL]]></category>
		<category><![CDATA[board games]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[experiments]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[movies]]></category>
		<category><![CDATA[real life]]></category>
		<category><![CDATA[ti3]]></category>

		<guid isPermaLink="false">http://www.haslo.ch/blog/?p=1431</guid>
		<description><![CDATA[First off, sorry for doing this to you -- it&#8217;s an experiment, and I&#8217;m not quite sure if it&#8217;s of any interest whatsoever for anybody except myself If however you&#8217;re interested in Twilight Imperium, this little 2:19 movie that shows an entire game of it might be of interest for you (music probably not everybody&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>First off, sorry for doing this to you -- it&#8217;s an experiment, and I&#8217;m not quite sure if it&#8217;s of any interest whatsoever for anybody except myself <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' title="Twilight Imperium   Stop Motion Experiment" /> </p>
<p>If however you&#8217;re interested in <a href="http://www.boardgamegeek.com/game/12493">Twilight Imperium</a>, this little 2:19 movie that shows an entire game of it might be of interest for you (music probably not everybody&#8217;s favourite, I love this track though). I did play all three races, and consequently made many mistakes, bear with me <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="Twilight Imperium   Stop Motion Experiment" /> </p>
<p style="text-align: center;"><!-- Smart Youtube --><span class="youtube"><object type="application/x-shockwave-flash" width="425" height="355" data="http://www.youtube.com/v/u00yetBeC00&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;hl=en&amp;autoplay=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0"><param name="movie" value="http://www.youtube.com/v/u00yetBeC00&amp;rel=1&amp;color1=d6d6d6&amp;color2=f0f0f0&amp;border=&amp;fs=1&amp;hl=en&amp;autoplay=&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" /><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /></object></span></p>
<p>The whole thing took about 250 photographs (and three camera battery reloads) to make, they&#8217;re shown at a rate of roughly one picture every half second.</p>
<h2>Game Report</h2>
<p>So what happens, actually? (Keep in mind that if you haven&#8217;t heard of the Twilight Imperium rules before, this might not clear up that much&#8230;)</p>
<p><span id="more-1431"></span>There&#8217;s three parties; the <a href="http://gmdice.com/blog/?p=45">Embers of Muaat</a> (a lava dwelling species that starts out quite strong with a War Sun in play already) in red, the <a href="http://gmdice.com/blog/?p=113">Winnu</a> (kinda tech-diplomats, they like to scheme) with purple, and the <a href="http://gmdice.com/blog/?p=56">Emirates of Hacan</a> (focused mostly on trade) with yellow ships.</p>
<p>Note that due to the setup, the <em>Winnu</em> were kinda cut off from the center, while <em>Hacan</em> and <em>Muaat</em> were split by quite some empty space, and obstacles prevented access to Mecatol Rex (the planet in the middle) from two sides, left and right in the video, and kinda split the entire map apart. There&#8217;s also just one wormhole, which ends up being the only way to the Wormhole Nexus with its planet Mallice.</p>
<p>In the beginning, all three attempted to grab as many planets as possible, fighting hostile locals and greeting friendly ones -- nothing unexpected until around 0:30 the <em>Muaat</em> went for Mecatol Rex in turn 3 (they had tried successfully to boost their War Sun to a movement of 2 for that, in fact). The tension between the Muaat on Mecatol Rex and the <em>Hacan</em> base next to it (the locals had given them a free base there) kept rising afterwards.</p>
<p>Everybody kept building up until, shortly after 1:00, the <em>Hacan</em> made their move for Mecatol Rex -- their private objective required them to control it. The <em>Muaat</em> proved to be fierce defenders though and only one Ground Force and a single Carrier survived (and they were lucky to get Mecatol Rex, too), so the <em>Winnu</em>, who also needed Mecatol Rex for their private objective, decided to make a dash through the empty space and get some foothold amidst the two other parties.</p>
<p>Another arms race ensued, until at 1:25 the <em>Muaat</em> went for Mecatol Rex again -- they didn&#8217;t actually need it, but wanted to keep everybody focused on the central planet. Their private objective was to have 6 planets with tech specializations -- the <em>Muaat</em> had 3 in their own territory, the <em>Winnu</em> had 2 border planets with that and the <em>Hacan</em> had one, all of them with little or no defense. The distraction proved successful (I actually forgot about those border planets later on, with the <em>Hacan</em> in particular)&#8230;</p>
<p>1:35 brought a big twist for the trade-centered <em>Hacan</em>, one that the movie doesn&#8217;t properly show: Class Struggle came into play, despite them doing everything in their might against it; a law that spreads the wealth from trade evenly, basically destroying one of their biggest advantages.</p>
<p>Around 1:40 another <em>Winnu</em> fleet makes its way slowly towards the center. The <em>Winnu</em> were, at that point, focusing on tech: They wanted Advanced Fighters, to make those little cheap ships into real pests; some action cards helped them (they used Alien Technology, Corporate Sponsorship and Focused Research, all in one round) and they got there -- but not without sacrificing many valuable resources and precious time.</p>
<p>The <em>Hacan</em> had already passed for that round, when the <em>Muaat</em> made their dash for the private objective, between 1:45 and 1:50: The <em>Winnu</em>&#8216;s border world fell first, and thanks to the Warfare II High Alert token the <em>Hacan</em> world was easy prey as well. Despite the <em>Winnu</em> voiding the <em>Muaat</em>&#8216;s control over Hope&#8217;s End with its Artifact through Local Unrest (and thus denying them one victory point), the <em>Muaat</em> still were leading on the victory point track.</p>
<p>The next round then brought the decision -- the <em>Muaat</em> went for the Bureaucracy strategy, hoping for a quick stolen win through Imperium Rex (at a chance of 40%, not bad odds -- but admittedly, I knew it was coming, not sure if that influenced my <em>Muaat</em>&#8216;s will to go and see if it was there).</p>
<p>The <em>Hacan</em> allied with the <em>Winnu</em>, seeing <em>Muaat</em> too powerful, and made another go for Mecatol Rex -- successfully at that, a huge step closer to fulfilling their private objective. The <em>Winnu</em> tried to force the <em>Muaat</em> back, too (but left them one planet); they couldn&#8217;t wait and build up any longer because otherwise, the <em>Muaat</em> would have run into their backyard with their fast War Sun.</p>
<p>At 2:05, it&#8217;s all over, when the <em>Muaat</em> uncover the Imperium Rex public objective and win the game, at 6 victory points.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haslo.ch/blog/twilight-imperium-stop-motion-experiment/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>VBA Vector Classes</title>
		<link>http://www.haslo.ch/blog/vba-vector-classes/</link>
		<comments>http://www.haslo.ch/blog/vba-vector-classes/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 15:36:25 +0000</pubDate>
		<dc:creator>haslo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[haslo]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[vb]]></category>

		<guid isPermaLink="false">http://www.haslo.ch/blog/?p=416</guid>
		<description><![CDATA[If you&#8217;re anything like me and ever had to code anything in Visual Basic for Applications, you must have felt the need for a proper API with some very basic common ADTs. The most basic of them being, in my opinion, the dynamic array (Vector, ArrayList, List and Collection are often used more or rather [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re anything like me and ever had to code anything in <a href="http://en.wikipedia.org/wiki/Visual_Basic_for_Applications">Visual Basic for Applications</a>, you must have felt the need for a proper API with some very basic common <a href="http://en.wikipedia.org/wiki/Abstract_data_type">ADTs</a>. The most basic of them being, in my opinion, the <a href="http://en.wikipedia.org/wiki/Dynamic_array">dynamic array</a> (Vector, ArrayList, List and Collection are often used more or rather less synonymous). So what would it feel like to be able to write this and have it work?</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Dim</span> primitiveVector <span style="color: #000080;">As</span> clsVector
<span style="color: #000080;">Set</span> primitiveVector = <span style="color: #000080;">New</span> clsVector
<span style="color: #000080;">Dim</span> myInt <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
myInt = 3
&nbsp;
primitiveVector.AddItem myInt</pre></div></div>

<p>There are of course other people who have made such a thing, and there&#8217;s the VBA <a href="http://msdn.microsoft.com/en-us/library/a1y8b3b3(VS.80).aspx">Collection</a>, but none of them quite fit what I wanted. I wanted a Vector that had random access, was able to handle <a href="http://en.wikipedia.org/wiki/LIFO">LIFO</a> and <a href="http://en.wikipedia.org/wiki/FIFO">FIFO</a> (and thus act as stack and queue), addition and insertion and deletion, could check for item existence, and had dynamic resizing. So I went and coded my own. I did this while working at <a href="http://promino.ch/">Promino AG</a> and thus the code is technically theirs, so thanks to <a href="https://www.xing.com/profile/PaulB_Moser/">Paul Moser</a> for the nod for publishing this under the GNU <a href="http://www.gnu.org/licenses/lgpl.html">Lesser General Public License</a>.</p>
<p><a href="http://www.haslo.ch/media/Vectors.zip"><img src="/media/floppy.png" style="border: none; float: left" title="VBA Vector Classes" alt="floppy VBA Vector Classes" /></a>You can download both classes (two? more below), together with a tiny trivial testing framework, <a href="http://www.haslo.ch/media/Vectors.zip">as Access 2002-2003 .mdb</a>.<br />
<span id="more-416"></span><br />
This here is the vector class for Variants. It goes into a new class module, I called mine &#8220;clsVector&#8221;:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
</pre></td><td class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Option</span> Compare Database
<span style="color: #000080;">Option</span> <span style="color: #000080;">Explicit</span>
&nbsp;
<span style="color: #008000;">' Copyright 2007, 2008 by Promino AG
</span><span style="color: #008000;">' Author: Guido Gloor
</span><span style="color: #008000;">'
</span><span style="color: #008000;">' This program is free software: you can redistribute it and/or modify
</span><span style="color: #008000;">' it under the terms of the GNU Lesser General Public License as published by
</span><span style="color: #008000;">' the Free Software Foundation, either version 3 of the License, or
</span><span style="color: #008000;">' (at your option) any later version.
</span><span style="color: #008000;">'
</span><span style="color: #008000;">' This program is distributed in the hope that it will be useful,
</span><span style="color: #008000;">' but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style="color: #008000;">' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span style="color: #008000;">' GNU Lesser General Public License for more details.
</span><span style="color: #008000;">'
</span><span style="color: #008000;">' You should have received a copy of the GNU Lesser General Public License
</span><span style="color: #008000;">' along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.
</span>
<span style="color: #000080;">Private</span> itemCount <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
<span style="color: #000080;">Private</span> itemBufferSize <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
<span style="color: #000080;">Private</span> itemBuffer() <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
&nbsp;
<span style="color: #000080;">Private</span> <span style="color: #000080;">Sub</span> Class_Initialize()
    itemCount = 0
    itemBufferSize = 100
    NewDimensions
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Private</span> <span style="color: #000080;">Sub</span> NewDimensions()
    <span style="color: #000080;">ReDim</span> <span style="color: #000080;">Preserve</span> itemBuffer(itemBufferSize) <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Private</span> <span style="color: #000080;">Sub</span> CheckDimensions()
    <span style="color: #000080;">If</span> itemCount &gt; itemBufferSize - 2 <span style="color: #000080;">Then</span>
        itemBufferSize = itemBufferSize * 2
        NewDimensions
    <span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Sub</span> ShrinkDimensions()
    itemCount = itemBufferSize + 10
    NewDimensions
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> GetSize() <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
    GetSize = itemCount
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Sub</span> AddItem(item <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>)
    CheckDimensions
    itemBuffer(itemCount) = item
    itemCount = itemCount + 1
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> GetItem(index <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
    GetItem = itemBuffer(index)
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> PopItem() <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
    PopItem = itemBuffer(itemCount - 1)
    DeleteItem itemCount - 1
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> GetNextQueueItem() <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
    GetNextQueueItem = itemBuffer(0)
    DeleteItem 0
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> ContainsItem(item <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Boolean</span>
    <span style="color: #000080;">Dim</span> i <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
    ContainsItem = <span style="color: #000080;">False</span>
&nbsp;
    <span style="color: #000080;">For</span> i = 0 <span style="color: #000080;">To</span> itemCount - 1
        <span style="color: #000080;">If</span> itemBuffer(i) = item <span style="color: #000080;">Then</span> ContainsItem = <span style="color: #000080;">True</span>
    <span style="color: #000080;">Next</span> i
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Sub</span> InsertItem(index <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>, item <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>)
    <span style="color: #000080;">Dim</span> i <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
&nbsp;
    CheckDimensions
    <span style="color: #000080;">For</span> i = itemCount - 1 <span style="color: #000080;">To</span> index <span style="color: #000080;">Step</span> -1
        itemBuffer(i + 1) = itemBuffer(i)
    <span style="color: #000080;">Next</span> i
    itemBuffer(index) = item
    itemCount = itemCount + 1
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Sub</span> DeleteItem(index <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>)
    <span style="color: #000080;">Dim</span> i <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
&nbsp;
    <span style="color: #000080;">For</span> i = index + 1 <span style="color: #000080;">To</span> itemCount - 1
        itemBuffer(i - 1) = itemBuffer(i)
    <span style="color: #000080;">Next</span> i
    itemCount = itemCount - 1
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> IsEmpty() <span style="color: #000080;">As</span> <span style="color: #000080;">Boolean</span>
    IsEmpty = itemCount &lt;= 0
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span></pre></td></tr></table></div>

<p>Now, it would be nice if we would be done. But, we&#8217;re not done yet, obviously, after all there&#8217;s plenty more code below this break. The reason for that is simple: In VBA, a Variant is not an Object, and an Object is not a Variant, consequently functions that take Objects don&#8217;t take Variants and vice versa (although you can technically store an Object in a Variant, this <em>will</em> lead to problems). Objects also happen to have &#8220;Set&#8221; mandatory in places where it isn&#8217;t allowed for Variants.</p>
<p>What this means is that there is no way to have the same Vector class for both your custom ADTs and the primitive data types. So basically, we have another class that has exactly the same functions and exactly the same algorithms, but takes Objects instead of Variants. I called mine &#8220;clsObjectVector&#8221;. Here is the source for the class module:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
</pre></td><td class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Option</span> Compare Database
<span style="color: #000080;">Option</span> <span style="color: #000080;">Explicit</span>
&nbsp;
<span style="color: #008000;">' Copyright 2007, 2008 by Promino AG
</span><span style="color: #008000;">' Author: Guido Gloor
</span><span style="color: #008000;">'
</span><span style="color: #008000;">' This program is free software: you can redistribute it and/or modify
</span><span style="color: #008000;">' it under the terms of the GNU Lesser General Public License as published by
</span><span style="color: #008000;">' the Free Software Foundation, either version 3 of the License, or
</span><span style="color: #008000;">' (at your option) any later version.
</span><span style="color: #008000;">'
</span><span style="color: #008000;">' This program is distributed in the hope that it will be useful,
</span><span style="color: #008000;">' but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style="color: #008000;">' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
</span><span style="color: #008000;">' GNU Lesser General Public License for more details.
</span><span style="color: #008000;">'
</span><span style="color: #008000;">' You should have received a copy of the GNU Lesser General Public License
</span><span style="color: #008000;">' along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.
</span>
<span style="color: #000080;">Private</span> itemCount <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
<span style="color: #000080;">Private</span> itemBufferSize <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
<span style="color: #000080;">Private</span> itemBuffer() <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>
&nbsp;
<span style="color: #000080;">Private</span> <span style="color: #000080;">Sub</span> Class_Initialize()
    itemCount = 0
    itemBufferSize = 100
    NewDimensions
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Private</span> <span style="color: #000080;">Sub</span> NewDimensions()
    <span style="color: #000080;">ReDim</span> <span style="color: #000080;">Preserve</span> itemBuffer(itemBufferSize) <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Private</span> <span style="color: #000080;">Sub</span> CheckDimensions()
    <span style="color: #000080;">If</span> itemCount &gt; itemBufferSize - 2 <span style="color: #000080;">Then</span>
        itemBufferSize = itemBufferSize * 2
        NewDimensions
    <span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Sub</span> ShrinkDimensions()
    itemCount = itemBufferSize + 10
    NewDimensions
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> GetSize() <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
    GetSize = itemCount
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Sub</span> AddItem(item <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>)
    CheckDimensions
    <span style="color: #000080;">Set</span> itemBuffer(itemCount) = item
    itemCount = itemCount + 1
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> GetItem(index <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>
    <span style="color: #000080;">Set</span> GetItem = itemBuffer(index)
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> PopItem() <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>
    <span style="color: #000080;">Set</span> PopItem = itemBuffer(itemCount - 1)
    DeleteItem itemCount - 1
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> GetNextQueueItem() <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>
    <span style="color: #000080;">Set</span> GetNextQueueItem = itemBuffer(0)
    DeleteItem 0
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> ContainsItem(item <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Boolean</span>
    <span style="color: #008000;">' The used ADTs need to have an Equals function for this to work
</span>    <span style="color: #000080;">Dim</span> i <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
    ContainsItem = <span style="color: #000080;">False</span>
&nbsp;
    <span style="color: #000080;">For</span> i = 0 <span style="color: #000080;">To</span> itemCount - 1
        <span style="color: #000080;">If</span> itemBuffer(i).Equals(item) <span style="color: #000080;">Then</span> ContainsItem = <span style="color: #000080;">True</span>
    <span style="color: #000080;">Next</span> i
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Sub</span> InsertItem(index <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>, item <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>)
    <span style="color: #000080;">Dim</span> i <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
&nbsp;
    CheckDimensions
    <span style="color: #000080;">For</span> i = itemCount - 1 <span style="color: #000080;">To</span> index <span style="color: #000080;">Step</span> -1
        <span style="color: #000080;">Set</span> itemBuffer(i + 1) = itemBuffer(i)
    <span style="color: #000080;">Next</span> i
    <span style="color: #000080;">Set</span> itemBuffer(index) = item
    itemCount = itemCount + 1
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Sub</span> DeleteItem(index <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>)
    <span style="color: #000080;">Dim</span> i <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>
&nbsp;
    <span style="color: #000080;">For</span> i = index + 1 <span style="color: #000080;">To</span> itemCount - 1
        <span style="color: #000080;">Set</span> itemBuffer(i - 1) = itemBuffer(i)
    <span style="color: #000080;">Next</span> i
    itemCount = itemCount - 1
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span>
&nbsp;
<span style="color: #000080;">Public</span> <span style="color: #000080;">Function</span> IsEmpty() <span style="color: #000080;">As</span> <span style="color: #000080;">Boolean</span>
    IsEmpty = itemCount &lt;= 0
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span></pre></td></tr></table></div>

<p>This is it, have fun <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' title="VBA Vector Classes" />  As much as you can have if you&#8217;re forced to work with VBA, that is.</p>
<p>Oh, and if you can use it &#8211; comments are appreciated <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' title="VBA Vector Classes" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.haslo.ch/blog/vba-vector-classes/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>John Searle&#8217;s Chinese Room</title>
		<link>http://www.haslo.ch/blog/john-searles-chinese-room/</link>
		<comments>http://www.haslo.ch/blog/john-searles-chinese-room/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 18:46:00 +0000</pubDate>
		<dc:creator>haslo</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[haslo]]></category>
		<category><![CDATA[papers]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[studies]]></category>
		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://www.haslo.ch/blog/?p=213</guid>
		<description><![CDATA[I attempted to show in a paper that my counter arguments to Searle's Chinese Room don’t prove that there can be such a thing as strong AI, but that at least they go to show that Searle’s attempt at proving there can’t be has failed, and as such the question whether strong AI can exist is as of yet still unresolved.]]></description>
			<content:encoded><![CDATA[<div id="attachment_245" class="wp-caption alignright" style="width: 160px"><a href="http://www.haslo.ch/blog/wp-content/uploads/2008/08/chineseroom.jpg"><img class="size-thumbnail wp-image-245" title="The Chinese Room" src="http://www.haslo.ch/blog/wp-content/uploads/2008/08/chineseroom-150x150.jpg" alt="The Chinese Room" width="150" height="150" /></a><p class="wp-caption-text">The Chinese Room</p></div>
<p>When I started preparing for my upcoming diploma thesis about consciousness, the possibility of AI and how it all fits together, I couldn&#8217;t help but stop at this thought experiment that the famous and bright philosopher <a href="http://en.wikipedia.org/wiki/John_Searle">John Searle</a> brought up in 1980.</p>
<p>Few papers are still so disputed after now 25 years (although, this being philosophy we&#8217;re talking about, all papers are still somewhat disputed after hundreds of years), and the subject matter is as or more current as it was then: The <a href="http://en.wikipedia.org/wiki/Chinese_room">Chinese Room</a>, brought up in the article <a href="http://www.bbsonline.org/Preprints/OldArchive/bbs.searle2.html">Minds, Brains and Programs</a> that was published in the journal <a href="http://www.bbsonline.org/">Behavioural and Brain Sciences</a>.</p>
<p>In short, the thought experiment that my paper (link further down) tries to shed a light on, goes as follows, synopsis mine and maybe a tad jovial for the subject:</p>
<blockquote><p>There is a thinking homunculus in a room who doesn&#8217;t understand Chinese, but has an elaborate set of rules gouverning his actions.</p>
<p>He receives pieces of paper from scientists on the outside, with Chinese symbols, processes them with his rules and paints other Chinese symbols that he returns to the outside &#8211; without understanding a thing.</p>
<p>Now the scientists outside cackle with glee, for they think they have crafted a machine that, by merely following rules, can understand Chinese.</p>
<p>However, so Searle argues, since the homunculus on the inside doesn&#8217;t understand Chinese, the whole machine can&#8217;t possibly understand Chinese (as there is no single part that does the understanding). From this and the similarity from this to any other machine, he follows that no machine can possibly have true understanding and as such, strong AI (that he defines as truly understanding) cannot exist.</p></blockquote>
<p>OK, so &#8230; is he right? Is (strong) AI research doomed?<br />
<!-- more --><span id="more-213"></span></p>
<p>There are of course several answers to this, quite different in both approach and consequences:</p>
<ul>
<li>Yes, he&#8217;s right. Now, that would be boring, and if I&#8217;d believe this I wouldn&#8217;t have written this blog post nor the paper it&#8217;s about.</li>
<li>We don&#8217;t even want strong AI research, what Searle deems &#8220;weak AI&#8221; is actually a huge feat and more than enough for all our wishes. Which Searle doesn&#8217;t deny by the way, he didn&#8217;t mean to diminish the value of &#8220;weak AI&#8221; by calling it &#8220;weak&#8221; (which I can&#8217;t help but find a tiny bit funny) and respects advances.</li>
<li>Searle seems to underestimate the complexity of the required rules, and believes that we can wrap our heads around a machine with millions of moving parts consisting of pipes and flows of water. While I do think that we can&#8217;t due to too limited mental capacity, I do believe that Searle is aware of that restriction of ours and, as he makes clear himself, believes in a matter of principle that doesn&#8217;t change with growing system complexity.</li>
<li>His argument is fundamentally flawed and looking for the smallest atomic bit of understanding (or, as he later specifies, the non-reproducible biological-causal properties of the human brain that a computer can&#8217;t have by matter of principle and material) is the wrong approach in the first place. Searle basically dismisses this because he finds it ridiculous and contradictory to common sense.</li>
</ul>
<p>Myself, I like to put myself into the last of those camps. Particularly because I don&#8217;t believe in such a thing as &#8220;common sense&#8221; being actually common, or even a guideline towards truth.</p>
<p>For all those approaches trying to disprove him, Searle thinks he showed they&#8217;re wrong &#8211; and with most of his rebuttals, I&#8217;ll have to admit that I agree with him wholeheartedly. However, there are a few points where I strongly disagree despite all due respect for one of the greatest thinkers of our time.</p>
<p><a href="http://www.haslo.ch/philosophy/ChineseChatroom.pdf"><img style="border: none; float: left;" src="/media/floppy.png" alt="floppy John Searles Chinese Room"  title="John Searles Chinese Room" /></a>And those points are where my paper regarding that subject comes into play:</p>
<p style="text-align: center;"><strong><a href="http://www.haslo.ch/philosophy/ChineseChatroom.pdf">The Chinese Chatroom</a></strong></p>
<p>I try and figure out which arguments can be found in which ones of the various answers that said article provoked already upon the time of its release (and in particular those that were printed in the same issue of the journal), research what the <a href="http://en.wikipedia.org/wiki/Turing_test">Turing Test</a> and (even more so) the <a href="http://en.wikipedia.org/wiki/Turing_machine">Turing Machine</a> are really about, and how the question and possibility of simulation versus replication of causal effects come into play.</p>
<p>I&#8217;m quite convinced that if what the current perception of the Turing Machine as &#8220;a machine to replicate all machines&#8221; is correct (which I know hasn&#8217;t been mathematically proven), there is no such thing as a fundamental problem with us eventually getting to the point where we do or at least can have strong AI, with machines that are very similar in functionality (albeit probably necessarily much more powerful) to today&#8217;s computers.</p>
<p>I&#8217;ll have to add that since I wrote this paper, I read quite a bit more about some subjects that appear in the paper, and meanwhile I could add more references to philosophers (in particular, <a href="http://en.wikipedia.org/wiki/Daniel_Dennett">Daniel Dennett</a>) who share views similar to mine and have developed them a lot further than I could so far.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.haslo.ch/blog/john-searles-chinese-room/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twilight Imperium Tech by Unit</title>
		<link>http://www.haslo.ch/blog/twilight-imperium-tech-by-unit-player-aid/</link>
		<comments>http://www.haslo.ch/blog/twilight-imperium-tech-by-unit-player-aid/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 22:29:27 +0000</pubDate>
		<dc:creator>haslo</dc:creator>
				<category><![CDATA[Games IRL]]></category>
		<category><![CDATA[board games]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[game rules]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[haslo]]></category>
		<category><![CDATA[real life]]></category>
		<category><![CDATA[ti3]]></category>

		<guid isPermaLink="false">http://www.haslo.ch/blog/?p=55</guid>
		<description><![CDATA[Skip the intro if you&#8217;re &#8220;just&#8221; interested in what this thing actually is And if all you&#8217;re really looking for is a tech tree, I suggest this one. Intro So I bought Twilight Imperium 3rd Edition last week nearly two weeks ago (gee&#8230;), and got to play some &#8230; well, solitaire test games with 1v1 [...]]]></description>
			<content:encoded><![CDATA[<p>Skip the intro if you&#8217;re &#8220;just&#8221; interested in what this thing actually is <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' title="Twilight Imperium Tech by Unit" />  And if all you&#8217;re really looking for is a <a href="http://www.boardgamegeek.com/file/info/21615">tech tree, I suggest this one</a>.</p>
<h2>Intro</h2>
<div id="attachment_56" class="wp-caption alignright" style="width: 160px"><a href="http://www.haslo.ch/blog/wp-content/uploads/2008/08/techbyunit.gif"><img class="size-thumbnail wp-image-56" title="Tech by Unit Screencap" src="http://www.haslo.ch/blog/wp-content/uploads/2008/08/techbyunit-150x150.gif" alt="Tech by Unit" width="150" height="150" /></a><p class="wp-caption-text">Tech by Unit</p></div>
<p>So I bought <a href="http://www.boardgamegeek.com/game/12493">Twilight Imperium 3rd Edition</a> <span style="text-decoration: line-through;">last week</span> nearly two weeks ago (gee&#8230;), and got to play some &#8230; well, solitaire test games with 1v1 players that pretended not to know each other&#8217;s hands. The game shines more with every added player I&#8217;m told, but one is a bit few either way.</p>
<p>With a little game coming up somewhat soon with a couple of friends (you know who you are), I was going through the available resources to help them get into the not that easy rules, and have already collected <a href="http://delicious.com/haslo/ti3">tons of links</a>, some of which are more or less the essentials:</p>
<ul>
<li>A nice graphical <a href="http://www.boardgamegeek.com/file/info/20135">Order of Play Overview</a>, very nice for at-a-glance knowledge of &#8220;what comes next now?&#8221;</li>
<li>A wonderful <a href="http://www.boardgamegeek.com/file/info/21615">Tech Tree</a>, with some more rules (that we won&#8217;t need for the first game) on the 2nd page</li>
<li>A <a href="http://www.boardgamegeek.com/file/info/10367">Rules Cheatsheet</a>, although I found this less useful for actual in-game reference</li>
</ul>
<h2>Tech by Unit Player Aid</h2>
<p><a href="http://www.haslo.ch/ti3/stuff/TI3_Tech_per_Unit_1.3.pdf"><img style="border: none; float: left" title="Tech by Unit" src="/media/floppy.png" alt="Tech by Unit" /></a>What I didn&#8217;t find however was a way to find out which units have what techs available. So I went ahead and created a little piece of reference paper of my own:</p>
<p style="text-align: center;">The <a href="http://www.haslo.ch/ti3/stuff/TI3_Tech_per_Unit_1.3.pdf">Tech by Unit Player Aid</a>, currently version 1.3</p>
<p><span id="more-55"></span>Also see the <a href="http://www.fantasyflightgames.com/ffgforums/posts/list/12905.page">FFG discussion thread</a>, and it&#8217;s <a href="http://www.boardgamegeek.com/file/info/34686">available on BoardGameGeek</a>, too. So what it includes is:</p>
<ul>
<li>A short description with strategic and tactical pointers for each unit, to help complete newbies understand the purpose of the units</li>
<li>Coordinates for <a href="http://www.boardgamegeek.com/file/info/21615">Nephilim&#8217;s Tech Tree</a> (the same as above), as without the actual tree it&#8217;s not that easy finding out what tech you have to research for obtaining which unit-specific upgrades</li>
<li>The number of prerequisite tech researches for the shortest path (starting from nothing) to each tech, to make it easier to see which ones are obtainable earlier and which later</li>
</ul>
<p>I hope this helps some people, old and new players alike <img src='http://www.haslo.ch/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' title="Twilight Imperium Tech by Unit" /> </p>
<h2>Version History</h2>
<ul>
<li>08-08-25 v<a href="http://www.haslo.ch/ti3/stuff/TI3_Tech_per_Unit_1.0.pdf">1.0</a> Initial Release</li>
<li>08-08-25 v<a href="http://www.haslo.ch/ti3/stuff/TI3_Tech_per_Unit_1.1.pdf">1.1</a> Some typos fixed, unit descriptions expanded</li>
<li>08-08-27 v<a href="http://www.haslo.ch/ti3/stuff/TI3_Tech_per_Unit_1.2.pdf">1.2</a> Further typos fixed, added some cost efficiency ratings, added one tech to GF</li>
<li>08-09-07 v<a href="http://www.haslo.ch/ti3/stuff/TI3_Tech_per_Unit_1.3.pdf">1.3</a> Added limits per unit, and copyright notice</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.haslo.ch/blog/twilight-imperium-tech-by-unit-player-aid/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

