<?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>Jacob Repp</title>
	<atom:link href="http://jrepp.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jrepp.com</link>
	<description>Game programming, music and life</description>
	<lastBuildDate>Tue, 08 Jun 2010 10:54:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Juno 106</title>
		<link>http://jrepp.com/2010/06/08/juno-106/</link>
		<comments>http://jrepp.com/2010/06/08/juno-106/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 10:54:22 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[juno music electronics]]></category>

		<guid isPermaLink="false">http://jrepp.com/2010/06/08/juno-106/</guid>
		<description><![CDATA[The old juno finally lost some of it&#8217;s voice.. the second wave generator is out. This happened around the time I modified the power plug so I probably did something to it. She&#8217;s all beat up already with broken faders &#8230; <a href="http://jrepp.com/2010/06/08/juno-106/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The old juno finally lost some of it&#8217;s voice.. the second wave generator is out. This happened around the time I modified the power plug so I probably did something  to it. She&#8217;s all beat up already with broken faders and what not from traveling all over with me and enduring plenty of use. I&#8217;m using it now as a project platform since it&#8217;s pretty easy to work on. I&#8217;ll post some pics tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2010/06/08/juno-106/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog Going Away Soon</title>
		<link>http://jrepp.com/2010/03/19/blog-going-away-soon/</link>
		<comments>http://jrepp.com/2010/03/19/blog-going-away-soon/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 04:51:22 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://jrepp.com/2010/03/19/blog-going-away-soon/</guid>
		<description><![CDATA[To be replaced by something else.. not sure what, tbd]]></description>
			<content:encoded><![CDATA[<p>To be replaced by something else.. not sure what, tbd</p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2010/03/19/blog-going-away-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Crazy things People Say</title>
		<link>http://jrepp.com/2009/12/23/the-crazy-things-people-say/</link>
		<comments>http://jrepp.com/2009/12/23/the-crazy-things-people-say/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 08:43:14 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://jrepp.com/2009/12/23/the-crazy-things-people-say/</guid>
		<description><![CDATA[GameDaily compares TR to WoW. We did it for the lulz. (Thanks wayback machine)]]></description>
			<content:encoded><![CDATA[<p><a href="http://web.archive.org/web/20071115213925/http://www.gamedaily.com/games/world-of-warcraft-wrath-of-the-lich-king/pc/game-features/tabula-rasa--better-than-world-of-warcraft/6573/71155/">GameDaily compares TR to WoW</a>. We did it for the lulz.</p>

<p>(Thanks wayback machine)</p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2009/12/23/the-crazy-things-people-say/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Database Linkage / Research Material</title>
		<link>http://jrepp.com/2009/12/23/more-database-linkage-research-material/</link>
		<comments>http://jrepp.com/2009/12/23/more-database-linkage-research-material/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 08:39:58 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[algorithms]]></category>
		<category><![CDATA[db]]></category>

		<guid isPermaLink="false">http://jrepp.com/2009/12/23/more-database-linkage-research-material/</guid>
		<description><![CDATA[Papers: Weaving Relations for Cache Performance C-Store a Column oriented DBMS Terms: Online Transaction Processing OLTP Online Analytic Processing OLAP Batch Processing Publish Subscribe Bitmap Indexes Strict Weak Ordering DB Normalization People: Ted Codd And his 12 rules Christopher Date &#8230; <a href="http://jrepp.com/2009/12/23/more-database-linkage-research-material/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Papers:</p>

<p><a href="http://www.cs.cmu.edu/~natassa/aapubs/conference/pax.pdf">Weaving Relations for Cache Performance</a></p>

<p><a href="http://db.csail.mit.edu/projects/cstore/vldb.pdf">C-Store a Column oriented DBMS</a></p>

<p>Terms:</p>

<p><a href="http://en.wikipedia.org/wiki/OLTP">Online Transaction Processing OLTP</a></p>

<p><a href="http://en.wikipedia.org/wiki/OLAP">Online Analytic Processing OLAP</a></p>

<p><a href="http://en.wikipedia.org/wiki/Batch_Processing">Batch Processing</a></p>

<p><a href="http://en.wikipedia.org/wiki/Publish_subscribe">Publish Subscribe</a></p>

<p><a href="http://en.wikipedia.org/wiki/Bitmap_index">Bitmap Indexes</a></p>

<p><a href="http://www.sgi.com/tech/stl/StrictWeakOrdering.html">Strict Weak Ordering</a></p>

<p><a href="http://en.wikipedia.org/wiki/Database_normalization">DB Normalization</a></p>

<p>People:</p>

<p><a href="http://en.wikipedia.org/wiki/Ted_Codd">Ted Codd</a>  <a href="http://en.wikipedia.org/wiki/Codd's_12_rules">And his 12 rules</a></p>

<p><a href="http://en.wikipedia.org/wiki/Christopher_J._Date">Christopher Date</a></p>

<p>If you have more feel free to leave comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2009/12/23/more-database-linkage-research-material/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google C++ Style Guide</title>
		<link>http://jrepp.com/2009/08/03/google-c-style-guide/</link>
		<comments>http://jrepp.com/2009/08/03/google-c-style-guide/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 17:38:30 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[c++]]></category>

		<guid isPermaLink="false">http://jrepp.com/2009/08/03/google-c-style-guide/</guid>
		<description><![CDATA[This is a nice comprehensive guide without the rhetoric you usually get in a C++ style guide. I&#8217;m still working through it Google C++ Style Guide]]></description>
			<content:encoded><![CDATA[<p>This is a nice comprehensive guide without the rhetoric you usually get in a C++ style guide. I&#8217;m still working through it</p>

<p><a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">Google C++ Style Guide</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2009/08/03/google-c-style-guide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Select a Single Item in a List View Control</title>
		<link>http://jrepp.com/2009/07/31/select-a-single-item-in-a-list-view-control/</link>
		<comments>http://jrepp.com/2009/07/31/select-a-single-item-in-a-list-view-control/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 18:43:20 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://jrepp.com/2009/07/31/select-a-single-item-in-a-list-view-control/</guid>
		<description><![CDATA[This simple operation took me longer to figure out than I would like, the answer wasn&#8217;t obvious on msdn or in any of the searches I did so I figure I should just put it up here for anyone else &#8230; <a href="http://jrepp.com/2009/07/31/select-a-single-item-in-a-list-view-control/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This simple operation took me longer to figure out than I would like, the answer wasn&#8217;t obvious on msdn or in any of the searches I did so I figure I should just put it up here for anyone else who might look for it:</p>

<p>To select an item in a list view create an LVITEM structure, change a few of it&#8217;s fields and pass it to LVM_SETITEMSTATE:</p>

<pre><code>// Select current item in the list
LVITEM item = {0};
item.mask = LVIF_STATE;
item.state = item.stateMask = LVIS_SELECTED;
SendMessage(mhProductList, LVM_SETITEMSTATE, mCurrentSettings, (LPARAM)&amp;item);
</code></pre>

<p>Oh and if you&#8217;re trying to turn on whole line section you&#8217;ll need to use the extended styles:</p>

<pre><code>// Set extended styles
SendMessage(hWndListView, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2009/07/31/select-a-single-item-in-a-list-view-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tracking down Circular Dependencies in Static Libraries</title>
		<link>http://jrepp.com/2009/06/26/tracking-down-circular-dependencies-in-static-libraries/</link>
		<comments>http://jrepp.com/2009/06/26/tracking-down-circular-dependencies-in-static-libraries/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 23:18:51 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[linking]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://jrepp.com/2009/06/26/tracking-down-circular-dependencies-in-static-libraries/</guid>
		<description><![CDATA[The GNU linker has some trouble when you present it with multiple library archives that depend upon each other. Libraries with symbols resolved in other libraries must be presented earlier on the command line. You can work around this with &#8230; <a href="http://jrepp.com/2009/06/26/tracking-down-circular-dependencies-in-static-libraries/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The GNU linker has some trouble when you present it with multiple library archives that depend upon each other. Libraries with symbols resolved in other libraries must be presented earlier on the command line. You can work around this with a command line argument:</p>

<pre><code>"--start-group", "--end-group", aternatively "-(" "-)"
</code></pre>

<p><a href="http://linux.die.net/man/1/ld">See the man page for LD for more info</a></p>

<p>Unfortunately this argument comes with the following little warning:</p>

<blockquote>
  <p>Using this option has a significant performance cost. It is best to use it only when there are unavoidable circular references between two or more archives. </p>
</blockquote>

<p>The particular case I was dealing with was the havok version 6 libraries on linux. I was advised that there may be way to link them but hadn&#8217;t been worked out. In order to test this theory I hacked together a little bit of ruby to show library dependencies. I feel this may be of some use to someone else so I present it here:</p>

<pre><code>require 'find'

$symbs = {}
$archives = []

class Archive
    attr_reader :name, :symbs, :depends, :undef
    def initialize name
        @name = name
        @symbs = {}
        @undef = {}
        @depends = Hash.new(0)
    end

    def add_definition loc, name
        @symbs[name] = loc
        $symbs[name] = self
    end

    def add_undefined name
    @undef[name] = 0
    end

    def resolve_undefined
        @undef.each do |k,v|
            archive = $symbs[k]
           if not archive or archive == self then
                next
            end
            @undef[k] = archive
            @depends[archive] = @depends[archive] + 1
        end
    end
end

Find.find('.') do |path|
    next if not /.a$/.match(path)

    io = IO.popen("nm #{path}")
    archive = Archive.new(path)
    $archives &lt;&lt; archive
    while (str = io.gets) do
        case str
        when /\w+\.a/
            archive = Archive.new(str)
            puts "archive: #{str}"
        when /[A-F0-9]+ [A-Za-z] \w+/
            parts = str.split
            archive.add_definition parts[0], parts[2]
        when /\s+U\s+\w+/
            archive.add_undefined str.split[1]
        end
   end
   puts "processed #{path}, #{archive.symbs.count} defined, #{archive.undef.count} undefined"
end

$archives.each do |archive|
    archive.resolve_undefined
end

$archives.sort! {|a,b| a.depends.count &lt;=&gt; b.depends.count }

puts "dependency list:"
$archives.each do |archive|
    puts "#{archive.name}: #{archive.depends.count}"
    archive.depends.each do |depend,count|
        puts "    #{depend.name}: #{count}"
    end
end
</code></pre>

<p>The final solution was to simply remove the object files from the static libraries and put them into a single combined library:</p>

<pre><code>rm *.o
find . -name \*.a -exec ar x {} \;
ar rcs libHavok.a *.o
ranlib libHavok.a
rm *.o
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2009/06/26/tracking-down-circular-dependencies-in-static-libraries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Overview of the Z-machine</title>
		<link>http://jrepp.com/2009/06/26/overview-of-the-z-machine/</link>
		<comments>http://jrepp.com/2009/06/26/overview-of-the-z-machine/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 23:01:25 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[game programming]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[history]]></category>

		<guid isPermaLink="false">http://jrepp.com/2009/06/26/overview-of-the-z-machine/</guid>
		<description><![CDATA[Here is a good article outlining the Z-machine. This is the machine that runs all of the Infocom text adventures including Zork for which the virtual machine is named. This is some really interesting engineering and you can still see &#8230; <a href="http://jrepp.com/2009/06/26/overview-of-the-z-machine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here is a <a href="http://www.csd.uwo.ca/Infocom/Articles/small.html">good article</a> outlining the Z-machine. This is the machine that runs all of the Infocom text adventures including Zork for which the virtual machine is named. This is some really interesting engineering and you can still see the modern fruits of this online in the <a href="http://parchment.toolness.com/">Parchment project</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2009/06/26/overview-of-the-z-machine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Is CVS dying?</title>
		<link>http://jrepp.com/2009/06/06/is-cvs-dying/</link>
		<comments>http://jrepp.com/2009/06/06/is-cvs-dying/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 02:54:29 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[cmake]]></category>
		<category><![CDATA[version-control]]></category>

		<guid isPermaLink="false">http://jrepp.com/2009/06/06/is-cvs-dying/</guid>
		<description><![CDATA[I&#8217;m sure people are still using it but just tonight I was searching for a CVS command line client for windows and had some trouble finding something usable. If you&#8217;re going to use CVS you should probably just use SVN &#8230; <a href="http://jrepp.com/2009/06/06/is-cvs-dying/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure people are still using it but just tonight I was searching for a CVS command line client for windows and had some trouble finding something usable. If you&#8217;re going to use CVS you should probably just use SVN or if you&#8217;re feeling adventurous you could try a DVS. Anyways this is all so I can make modifications against trunk <a href="http://cmake.org">cmake</a> and see how well it works for our build environment at work.</p>

<p>I did end up finding a <a href="http://ftp.gnu.org/non-gnu/cvs/binary/stable/x86-woe/">command line windows CVS client</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2009/06/06/is-cvs-dying/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook, twitter and blogging</title>
		<link>http://jrepp.com/2009/06/06/facebook-twitter-and-blogging/</link>
		<comments>http://jrepp.com/2009/06/06/facebook-twitter-and-blogging/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 02:49:40 +0000</pubDate>
		<dc:creator>proj</dc:creator>
				<category><![CDATA[blogging]]></category>

		<guid isPermaLink="false">http://jrepp.com/2009/06/06/facebook-twitter-and-blogging/</guid>
		<description><![CDATA[Seems like over the past year or more twitter and facebook have taken over my status updates. This has led to me paying less attention to my blog which is really not a direction I meant to go in. It &#8230; <a href="http://jrepp.com/2009/06/06/facebook-twitter-and-blogging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Seems like over the past year or more <a href="http://twitter.com/jacobrepp">twitter</a> and facebook have taken over my status updates. This has led to me paying less attention to my blog which is really not a direction I meant to go in. It just sort of happens that it&#8217;s often easier to capture a thought on twitter than to go through the effort of writing a blog post. Well.. that has to stop. I actually have a lot of cool things to write about, I just need to sit down and spend some time writing about them.</p>

<p>I think what I would like to do is split my blog into micro-blog/status updates and actual blog posts. It would be ideal if I could use one interface to post to the both and have the micro-blog funnel to twitter/facebook. We&#8217;ll see if that makes sense. In the meantime I&#8217;ll just use a tag for the status updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrepp.com/2009/06/06/facebook-twitter-and-blogging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
