<?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>BibleTech Blog &#187; code.logos.com</title>
	<atom:link href="http://blog.bibletechconference.com/category/code-logos-com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bibletechconference.com</link>
	<description>Discussing the Intersection of the Bible and Technology</description>
	<lastBuildDate>Wed, 16 Nov 2011 19:27:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to Apply for an Internship at Logos</title>
		<link>http://blog.bibletechconference.com/how-to-apply-for-an-internship-at-logos/</link>
		<comments>http://blog.bibletechconference.com/how-to-apply-for-an-internship-at-logos/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 21:28:46 +0000</pubDate>
		<dc:creator>Jayson Bradley</dc:creator>
				<category><![CDATA[code.logos.com]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://www.bibletechconference.com/blog/how-to-apply-for-an-internship-at-logos/</guid>
		<description><![CDATA[ Sometimes, when promoting internships at Logos, I’m asked what kind of questions we ask on the interview. Or I’ll get an email from a candidate we rejected, asking how they could have done better. ]]></description>
			<content:encoded><![CDATA[<p>Sometimes, when promoting internships at Logos, I’m asked what kind of questions we ask on the interview. Or I’ll get an email from a candidate we rejected, asking how they could have done better. I’m not going to give out our list of interview questions, but I will give advice on how to really stand out when applying.</p>
<p>We don’t require a checklist of skills (“3 years experience with .NET 4”), nor are we impressed with a dense list of acronyms on a résumé. We’re looking for coders who are passionate about programming and who have the talent to tackle any huge problem we will throw at them. Here are some qualities we want to see in a potential hire.</p>
<p><strong>CompSci Basics.</strong> Understand algorithms, data structures, computational complexity. Know the basics of hardware (e.g., order these by speed: HDD, LAN, L1, RAM, L2, Internet, DVD), bits &amp; bytes (e.g., the “interesting” powers of 2), and software (operating systems, compilers, Internet protocols). Become familiar with technologies relevant to our field (Unicode, cloud computing, information retrieval, etc.).</p>
<p><strong>Know the Company. </strong>Browse our websites, find out what we do &amp; who we are, watch our videos, read our blog, use our products. If you go to church, maybe your pastor owns a copy of our software and could show it to you. (If they don’t own it, <em>why not?</em> Get <em>them</em> to watch the videos.)</p>
<p><strong>Show Passion. </strong>Do something outside of school. Find an open source project and contribute to it. Learn what’s new in C++0x, C# 4, Java 7, or HTML5. Write a blog. Enter a programming competition. Download Python/Ruby/Haskell and work through an online tutorial. Write an online tutorial. Start a user group interested in some technology. Read a book that isn’t part of your CS curriculum.</p>
<p>For further reading, I recommend a three-part series posted by Tyler Hicks-Wright: <a href="http://hicks-wright.net/blog/how-to-get-a-job-at-fog-creek-part-1/">How to Get a Job at Fog Creek (and Other Selective Software Companies), Part 1</a>; <a title="How to Get a Job at Fog Creek (and Other Selective Software Companies), Part 2" href="http://hicks-wright.net/blog/how-to-get-a-job-at-fog-creek-part-2/">Part 2</a>; <a title="How to Get a Job at Fog Creek (and Other Selective Software Companies), Part 3" href="http://hicks-wright.net/blog/how-to-get-a-job-at-fog-creek-part-3/">Part 3</a>. </p>
<p>    <img src="http://feeds.feedburner.com/~r/LogosBibleSoftwareCodeBlog/~4/_GF02Gq13KA" height="1" width="1" /></p>
<p style="font-style:italic;font-size:10px;padding-top:15px">This post originally appeared on <a href="http://code.logos.com/blog/2010/04/how_to_apply_for_an_internship_at_logos.html">code.logos.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bibletechconference.com/how-to-apply-for-an-internship-at-logos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A truly lazy OrderBy in LINQ</title>
		<link>http://blog.bibletechconference.com/a-truly-lazy-orderby-in-linq/</link>
		<comments>http://blog.bibletechconference.com/a-truly-lazy-orderby-in-linq/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 00:36:50 +0000</pubDate>
		<dc:creator>Jayson Bradley</dc:creator>
				<category><![CDATA[code.logos.com]]></category>

		<guid isPermaLink="false">http://www.bibletechconference.com/blog/a-truly-lazy-orderby-in-linq/</guid>
		<description><![CDATA[ Jon Skeet recently discussed what it means to be "lazy" (in the context of LINQ to Objects). He introduced some new definitions based on how the operator processes the source sequence. Another aspect (which Jon didn't cover) is how lazily the operator produces output when its results are enumerated. ]]></description>
			<content:encoded><![CDATA[<p>Jon Skeet recently <a title="Just how lazy are you? (Jon Skeet: Coding Blog)" href="http://msmvps.com/blogs/jon_skeet/archive/2010/03/25/just-how-lazy-are-you.aspx">discussed what it means to be &#8220;lazy&#8221;</a> (in the context of LINQ to Objects). He introduced some new definitions based on how the operator processes the source sequence. Another aspect (which Jon didn&#8217;t cover) is how lazily the operator produces output when its results are enumerated.</p>
<p>Let&#8217;s take a concrete example: what&#8217;s the difference in running time between these two statements?</p>
<div>
]]></content:encoded>
			<wfw:commentRss>http://blog.bibletechconference.com/a-truly-lazy-orderby-in-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Visitor Pattern and dynamic in C# 4</title>
		<link>http://blog.bibletechconference.com/the-visitor-pattern-and-dynamic-in-c-4/</link>
		<comments>http://blog.bibletechconference.com/the-visitor-pattern-and-dynamic-in-c-4/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 01:01:41 +0000</pubDate>
		<dc:creator>Jayson Bradley</dc:creator>
				<category><![CDATA[code.logos.com]]></category>

		<guid isPermaLink="false">http://www.bibletechconference.com/blog/the-visitor-pattern-and-dynamic-in-c-4/</guid>
		<description><![CDATA[ Introduction The Visitor Pattern allows new functionality to be added to a class hierarchy without modifying the hierarchy. It accomplishes this by having one (virtual) "accept" method that can call back many different visitor implementations. The Visitor Pattern is a way of implementing double dispatch in languages (like C#) that don't support it natively; as a result, many have argued ( 1 , 2 , 3 ) that the existence of this pattern is an indication of a missing language feature. ]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>The <a title="Visitor Pattern (Wikipedia)" href="http://en.wikipedia.org/wiki/Visitor_pattern">Visitor Pattern</a> allows new functionality to be added to a class hierarchy without modifying the hierarchy. It accomplishes this by having one (virtual) &#8220;accept&#8221; method that can call back many different visitor implementations.</p>
<p>The Visitor Pattern is a way of implementing <a title="Double dispatch (Wikipedia)" href="http://en.wikipedia.org/wiki/Double_dispatch">double dispatch</a> in languages (like C#) that don&#8217;t support it natively; as a result, many have argued (<a title="Are Design Patterns Missing Language Features (C2 wiki)" href="http://c2.com/cgi/wiki?AreDesignPatternsMissingLanguageFeatures">1</a>, <a title="Workarounds for missing language features (Wikipedia on Design Patterns)" href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)#Workarounds_for_missing_language_features">2</a>, <a title="Why I don't like the visitor pattern (AlBlue's Weblog)" href="http://alblue.blogspot.com/2009/07/why-i-don-like-visitor-pattern.html">3</a>) that the existence of this pattern is an indication of a missing language feature.</p>
<p>C# 4 addresses this limitation with the addition of the <a title="dynamic (C# Reference)" href="http://msdn.microsoft.com/en-us/library/dd264741(VS.100).aspx">dynamic</a> keyword, which allows method calls to be dispatched dynamically at runtime based on the runtime types of the objects involved. This can be used to <a title="Implementing the Visitor pattern with the 'dynamic' feature of C# 4.0" href="http://blogs.msdn.com/laurionb/archive/2009/05/29/implementing-the-visitor-pattern-with-the-dynamic-feature-of-c-4-0.aspx">implement the visitor pattern</a> more simply.</p>
<h3>Example</h3>
<p>Consider a typical pedagogical class hierarchy:</p>
<p><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="Animal Class Diagram" src="http://blog.bibletechconference.com/files/2010/08/a7116dd0a0gram_3.png.png" width="673" height="378" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bibletechconference.com/the-visitor-pattern-and-dynamic-in-c-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Makes Good Code Good?</title>
		<link>http://blog.bibletechconference.com/what-makes-good-code-good/</link>
		<comments>http://blog.bibletechconference.com/what-makes-good-code-good/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 00:02:33 +0000</pubDate>
		<dc:creator>Jayson Bradley</dc:creator>
				<category><![CDATA[code.logos.com]]></category>

		<guid isPermaLink="false">http://www.bibletechconference.com/blog/what-makes-good-code-good/</guid>
		<description><![CDATA[ The Logos software development team has a large set of coding guidelines that have evolved over the years. We record them all on an internal wiki, each in its own article. The scope of each guideline varies widely; some guidelines give broad advice, and others indicate a particular coding style for a particular language]]></description>
			<content:encoded><![CDATA[<p>The Logos software development team has a large set of coding guidelines that have evolved over the years. We record them all on an internal wiki, each in its own article. The scope of each guideline varies widely; some guidelines give broad advice, and others indicate a particular coding style for a particular language. </p>
<p>Why do we have coding guidelines? To encourage the writing of good code. But what is good code? My favorite description of good code can be found in an MSDN Magazine article by the late <a href="http://en.wikipedia.org/wiki/Paul_Dilascia">Paul DiLascia</a>. In his End Bracket article titled <a href="http://msdn.microsoft.com/en-us/magazine/cc163962.aspx">“What Makes Good Code Good?”</a> he explains that</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bibletechconference.com/what-makes-good-code-good/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cannot find property named &#8216;StringFormat&#8217;</title>
		<link>http://blog.bibletechconference.com/cannot-find-property-named-stringformat/</link>
		<comments>http://blog.bibletechconference.com/cannot-find-property-named-stringformat/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 20:51:56 +0000</pubDate>
		<dc:creator>Jayson Bradley</dc:creator>
				<category><![CDATA[code.logos.com]]></category>

		<guid isPermaLink="false">http://www.bibletechconference.com/blog/cannot-find-property-named-stringformat/</guid>
		<description><![CDATA[ A few of our users have had Logos 4 crash on startup with the following exception: System.Windows.Markup.XamlParseException: 'pack://application:Name.xaml' value cannot be assigned to property 'Source' of object 'System.Windows.ResourceDictionary'. Cannot find DependencyProperty or PropertyInfo for property named 'StringFormat'. Property names are case sensitive.]]></description>
			<content:encoded><![CDATA[<p>A few of our users have had Logos 4 crash on startup with the following exception:</p>
<pre>System.Windows.Markup.XamlParseException: 'pack://application:Name.xaml'<br />
  value cannot be assigned to property 'Source' of object 'System.Windows.ResourceDictionary'.<br />
  Cannot find DependencyProperty or PropertyInfo for property named 'StringFormat'.<br />
  Property names are case sensitive.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bibletechconference.com/cannot-find-property-named-stringformat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating hash codes</title>
		<link>http://blog.bibletechconference.com/creating-hash-codes/</link>
		<comments>http://blog.bibletechconference.com/creating-hash-codes/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 16:43:08 +0000</pubDate>
		<dc:creator>Jayson Bradley</dc:creator>
				<category><![CDATA[code.logos.com]]></category>

		<guid isPermaLink="false">http://www.bibletechconference.com/blog/creating-hash-codes/</guid>
		<description><![CDATA[ In order for a hashtable to perform well, there should be few collisions when inserting objects into the hashtable. A good way to accomplish this is to have an implementation of GetHashCode that returns uniformly-distributed hash codes (especially for non-uniformly-distributed input)]]></description>
			<content:encoded><![CDATA[<p>In order for a hashtable to perform well, there should be few collisions when inserting objects into the hashtable. A good way to accomplish this is to have an implementation of GetHashCode that returns uniformly-distributed hash codes (especially for non-uniformly-distributed input). Bob Jenkins wrote a Dr Dobb’s <a title="A Hash Function For Hash Table Lookup" href="http://www.burtleburtle.net/bob/hash/doobs.html">article</a> that covers the basics of a good hash function, as well as providing his own <a href="http://burtleburtle.net/bob/c/lookup3.c">implementation</a> that is a “<a href="http://burtleburtle.net/bob/hash/index.html#lookup">generally good, fast hash function</a>”.</p>
<p>His code is in the public domain; since it’s useful for implementing <a title="Object.GetHashCode Method (MSDN)" href="http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx">Object.GetHashCode</a> for <a title="Creating equatable objects (Logos Code Blog)" href="http://code.logos.com/blog/2010/02/creating_equatable_objects.html">custom equatable types</a>, I ported it to C#. It’s available as <a title="HashCodeUtility.cs (from LogosBible/Utility)" href="http://github.com/LogosBible/Logos.Utility/blob/master/src/Logos.Utility/HashCodeUtility.cs">HashCodeUtility.cs</a>.</p>
<p>The main method, CombineHashCodes, should be used to combine a series of integers into a good hash code. These integers could either be the values of your type’s fields (e.g., X and Y coordinates), or the results of calling GetHashCode on the non-integral fields that comprise the type. A sample use would be:</p>
<div>
<p><span>struct</span> <span>Point</span></p>
<p>{</p>
<p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bibletechconference.com/creating-hash-codes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

