<?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>Deployment Zone &#187; Uncategorized</title>
	<atom:link href="http://www.deploymentzone.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.deploymentzone.com</link>
	<description>&#34;I write C#&#34;.gsub(/C#/, &#039;Ruby&#039;)</description>
	<lastBuildDate>Tue, 24 Jan 2012 06:30:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Manning Hadoop in Action Chapter 1 Example</title>
		<link>http://www.deploymentzone.com/2012/01/11/manning-hadoop-in-action-chapter-1-example/</link>
		<comments>http://www.deploymentzone.com/2012/01/11/manning-hadoop-in-action-chapter-1-example/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 03:30:15 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[manning]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/?p=312</guid>
		<description><![CDATA[Manning's Hadoop in Action chapter 1 baseline example source code.]]></description>
			<content:encoded><![CDATA[<p>It took me a little while of digging to get to the baseline source code for the <a href="http://www.amazon.com/gp/product/1935182196/ref=as_li_ss_tl?ie=UTF8&tag=deplozone-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=1935182196">Manning Hadoop in Action</a> (2010) chapter 1 source code.</p>
<p>You can find the <tt>WordCount.java</tt> <a href="http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/WordCount.java">here</a>.  Here's the 1.0.0 version I used:</p>
<pre class="brush:java;">/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.hadoop.examples;

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {

  public static class TokenizerMapper
       extends Mapper<Object, Text, Text, IntWritable>{

    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(Object key, Text value, Context context
                    ) throws IOException, InterruptedException {
      StringTokenizer itr = new StringTokenizer(value.toString(), " \t\n\r\f,.:;?![]'*");
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken().toLowerCase());
        context.write(word, one);
      }
    }
  }

  public static class IntSumReducer
       extends Reducer<Text,IntWritable,Text,IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values,
                       Context context
                       ) throws IOException, InterruptedException {
      int sum = 0;
      for (IntWritable val : values) {
        sum += val.get();
      }
      if (sum > 4) {
		  context.write(key, result);
	      result.set(sum);
	  }
    }
  }

  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
    if (otherArgs.length != 2) {
      System.err.println("Usage: wordcount <in> <out>");
      System.exit(2);
    }
    Job job = new Job(conf, "word count");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(TokenizerMapper.class);
    job.setCombinerClass(IntSumReducer.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
    FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}
</pre>
<p>Compilation with Java 6 (1.6) is a bit more involved.  I wrote a simple shell script, the important thing here is to get the classpath flag correct.  Java veterans will of course have no problem with this, but it took me a few minutes to sort out.</p>
<pre class="brush:bash;">#!/bin/bash
rm -rf output/
javac -classpath "../share/hadoop/lib/commons-cli-1.2.jar:../share/hadoop/hadoop-core-1.0.0.jar" -d classes src/WordCount.java
jar -cvf wordcount.jar -C classes/ .
../bin/hadoop jar wordcount.jar org.apache.hadoop.examples.WordCount input output</pre>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2012/01/11/manning-hadoop-in-action-chapter-1-example/&via=cfeduke&text=Manning Hadoop in Action Chapter 1 Example&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2012/01/11/manning-hadoop-in-action-chapter-1-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC 2 Areas and Spark View Engine</title>
		<link>http://www.deploymentzone.com/2010/11/18/asp-net-mvc-2-areas-and-spark-view-engine/</link>
		<comments>http://www.deploymentzone.com/2010/11/18/asp-net-mvc-2-areas-and-spark-view-engine/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 15:08:39 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/2010/11/18/asp-net-mvc-2-areas-and-spark-view-engine/</guid>
		<description><![CDATA[I did a little looking around at alternative view engines for ASP.NET MVC 2 and gave Spark a go.&#160; My biggest problem is that its not Haml.&#160; I was moving some *.aspx views over to *.spark and pretty much its an exercise in replacing &#60;% with { with some XMLish &#60;if&#62; blocks thrown in.&#160; (Didn’t [...]]]></description>
			<content:encoded><![CDATA[<p>I did a little looking around at alternative view engines for ASP.NET MVC 2 and gave Spark a go.&#160; My biggest problem is that its not Haml.&#160; I was moving some *.aspx views over to *.spark and pretty much its an exercise in replacing &lt;% with { with some XMLish &lt;if&gt; blocks thrown in.&#160; (Didn’t we already determine that XML if’s are bad?)</p>
<p>Anyway decided not to use it but I did sort out a problem with 1.1.0.0 (as of November 2010) where ASP.NET MVC 2 Areas simply did not work with the view engine.&#160; I suspect this is also the same reason why NHaml doesn’t work with Areas as well.</p>
<p>In the <a href="http://sparkviewengine.codeplex.com/releases/view/27601">source for Spark</a> in the Spark.Web.Mvc assembly within the DefaultDescriptorBuilder class around line 183 I’ve replaced the methods PotentialViewLocations, PotentialMasterLocations and PotentialDefaultMasterLocations with the following code:</p>
<p>&#160;</p>
<pre class="brush: csharp;">protected virtual IEnumerable&lt;string&gt; PotentialViewLocations(string controllerName, string viewName, IDictionary&lt;string,object&gt; extra)
{
    if (extra.ContainsKey(&quot;area&quot;))
    {
        return ApplyFilters(new[]
        {
        controllerName + &quot;\\&quot; + viewName + &quot;.spark&quot;,
        &quot;Shared\\&quot; + viewName + &quot;.spark&quot;,
        &quot;~\\Areas\\&quot; + extra[&quot;area&quot;] + &quot;\\Views\\Shared\\&quot; + viewName + &quot;.spark&quot;,
        &quot;~\\Areas\\&quot; + extra[&quot;area&quot;] + &quot;\\Views\\&quot; + controllerName+ &quot;\\&quot; + viewName + &quot;.spark&quot;
        }, extra);
    }

    return ApplyFilters(new[]
    {
        controllerName + &quot;\\&quot; + viewName + &quot;.spark&quot;,
        &quot;Shared\\&quot; + viewName + &quot;.spark&quot;,
    }, extra);
}

protected virtual IEnumerable&lt;string&gt; PotentialMasterLocations(string masterName, IDictionary&lt;string, object&gt; extra)
{
    if (extra.ContainsKey(&quot;area&quot;))
    {
        return ApplyFilters(new[]
        {
            &quot;~\\Areas\\&quot; + extra[&quot;area&quot;] + &quot;\\Views\\Layouts\\&quot; + masterName + &quot;.spark&quot;,
            &quot;~\\Areas\\&quot; + extra[&quot;area&quot;] + &quot;\\Views\\Shared\\&quot; + masterName + &quot;.spark&quot;,
            &quot;Layouts\\&quot; + masterName + &quot;.spark&quot;,
            &quot;Shared\\&quot; + masterName + &quot;.spark&quot;
        }, extra);
    }

    return ApplyFilters(new[]
    {
        &quot;Layouts\\&quot; + masterName + &quot;.spark&quot;,
        &quot;Shared\\&quot; + masterName + &quot;.spark&quot;
    }, extra);
}

protected virtual IEnumerable&lt;string&gt; PotentialDefaultMasterLocations(string controllerName, IDictionary&lt;string, object&gt; extra)
{
    if (extra.ContainsKey(&quot;area&quot;))
    {
        return ApplyFilters(new[]
        {
            &quot;~\\Areas\\&quot; + extra[&quot;area&quot;] + &quot;\\Views\\Layouts\\&quot; + controllerName + &quot;.spark&quot;,
            &quot;~\\Areas\\&quot; + extra[&quot;area&quot;] + &quot;\\Views\\Shared\\&quot; + controllerName + &quot;.spark&quot;,
            &quot;Layouts\\Application.spark&quot;,
            &quot;Shared\\Application.spark&quot;
        }, extra);
    }

    return ApplyFilters(new[]
    {
        &quot;Layouts\\&quot; + controllerName + &quot;.spark&quot;,
        &quot;Shared\\&quot; + controllerName + &quot;.spark&quot;,
        &quot;Layouts\\Application.spark&quot;,
        &quot;Shared\\Application.spark&quot;
    }, extra);
}</pre>
<p>&#160;</p>
<p>This doesn’t work with Hanselman’s <a href="http://www.hanselman.com/blog/ABetterASPNETMVCMobileDeviceCapabilitiesViewEngine.aspx">Mobile Device Capabilities ViewEngine</a> out of the box, you’ll have to do more work for that.</p>
<p>If you don’t want to go through the legwork of patching Spark 1.1.0.0 I’ve zipped up a <a href="http://www.deploymentzone.com/resources/spark-1.1.0.0-patched-for-areas.zip">Release build of the relevant files from my patch</a>.</p>
<p>I had to <a href="// http://webcache.googleusercontent.com/search?q=cache:44jSsoQeh24J:www.silverxu.com/making-spark-view-engine-to-work-with-asp-net-mvc-2-areas/+spark+with+areas&amp;cd=1&amp;hl=en&amp;ct=clnk&amp;gl=us">dig pretty deep for the original solution</a>.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2010/11/18/asp-net-mvc-2-areas-and-spark-view-engine/&via=cfeduke&text=ASP.NET MVC 2 Areas and Spark View Engine&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2010/11/18/asp-net-mvc-2-areas-and-spark-view-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Successful Lisp: How to Understand and Use Common Lisp</title>
		<link>http://www.deploymentzone.com/2010/11/05/successful-lisp-how-to-understand-and-use-common-lisp/</link>
		<comments>http://www.deploymentzone.com/2010/11/05/successful-lisp-how-to-understand-and-use-common-lisp/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 18:10:23 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/2010/11/05/successful-lisp-how-to-understand-and-use-common-lisp/</guid>
		<description><![CDATA[Just discovered this little gem while on a hunt for the Lisp code that is responsible for FORMAT’s ~R.&#160; I am over halfway through Practical Common Lisp now – Successful Lisp looks like a good compliment to it.&#160; (And I have been reading Paul Graham’s ANSI Common LISP in parallel.)
Tweet]]></description>
			<content:encoded><![CDATA[<p>Just discovered <a href="http://www.psg.com/~dlamkins/sl/cover.html">this little gem</a> while on a hunt for the Lisp code that is <a href="http://www.skorks.com/2010/11/converting-integers-to-words-bringing-order-to-english-through-code/">responsible for FORMAT’s ~R</a>.&#160; I am over halfway through <a href="http://www.amazon.com/gp/product/1590592395?ie=UTF8&amp;tag=deplozone-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1590592395">Practical Common Lisp</a><img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=deplozone-20&amp;l=as2&amp;o=1&amp;a=1590592395" width="1" height="1" /> now – Successful Lisp looks like a good compliment to it.&#160; (And I have been reading Paul Graham’s <a href="http://www.amazon.com/gp/product/0133708756?ie=UTF8&amp;tag=deplozone-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0133708756">ANSI Common LISP</a><img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=deplozone-20&amp;l=as2&amp;o=1&amp;a=0133708756" width="1" height="1" /> in parallel.)</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2010/11/05/successful-lisp-how-to-understand-and-use-common-lisp/&via=cfeduke&text=Successful Lisp: How to Understand and Use Common Lisp&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2010/11/05/successful-lisp-how-to-understand-and-use-common-lisp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Its 2010. I shouldn&#8217;t have to write code like this.</title>
		<link>http://www.deploymentzone.com/2010/11/01/its-2010-i-shouldnt-have-to-write-code-like-this/</link>
		<comments>http://www.deploymentzone.com/2010/11/01/its-2010-i-shouldnt-have-to-write-code-like-this/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 14:46:48 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/2010/11/01/its-2010-i-shouldnt-have-to-write-code-like-this/</guid>
		<description><![CDATA[_webRequest is a HttpWebRequest instance, _headers is a WebHeaderCollection from the original HttpWebRequest.&#160; I am relaying headers from one request to another, as required by a third party application.&#160; Why do I have to write such terrible code?
foreach (var key in _headers.AllKeys)
{
    // of course MS would have to fuck this up [...]]]></description>
			<content:encoded><![CDATA[<p>_webRequest is a HttpWebRequest instance, _headers is a WebHeaderCollection from the original HttpWebRequest.&#160; I am relaying headers from one request to another, as required by a third party application.&#160; Why do I have to write such terrible code?</p>
<pre class="brush: csharp;">foreach (var key in _headers.AllKeys)
{
    // of course MS would have to fuck this up somehow
    var value = _headers[key];
    Log.Debug(key + &quot;: &quot; + value);
    switch (key.ToUpper())
    {
        case &quot;ACCEPT&quot;: _webRequest.Accept = value; break;
        case &quot;REFERER&quot;: _webRequest.Referer = value; break;
        case &quot;USER-AGENT&quot;: _webRequest.UserAgent = value; break;
        case &quot;TRANSFER-ENCODING&quot;: _webRequest.UserAgent = value; break;
        case &quot;DATE&quot;:
            if (DateTime.TryParse(value, out dt))
                _webRequest.Date = dt;
            break;
        case &quot;IF-MODIFIED-SINCE&quot;:
            if (DateTime.TryParse(value, out dt))
                _webRequest.IfModifiedSince = dt;
            break;
        case &quot;CONTENT-LENGTH&quot;:
            int cl;
            if (Int32.TryParse(value, out cl))
                _webRequest.ContentLength = cl;
            break;
        default:
            _webRequest.Headers.Add(key, _headers[key]);
            break;
    }
}</pre>
<p>It should be what I originally tried:</p>
<pre class="brush: csharp;">//_webRequest.Headers.Add(_headers);</pre>
<p>This is precisely the sort of code that creates a great dissatisfaction within me when working with the .NET Framework.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2010/11/01/its-2010-i-shouldnt-have-to-write-code-like-this/&via=cfeduke&text=Its 2010. I shouldn&rsquo;t have to write code like this.&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2010/11/01/its-2010-i-shouldnt-have-to-write-code-like-this/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UTF-8 and char 65279 (byte order mark)</title>
		<link>http://www.deploymentzone.com/2010/10/21/utf-8-and-char-65279-byte-order-mark/</link>
		<comments>http://www.deploymentzone.com/2010/10/21/utf-8-and-char-65279-byte-order-mark/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 20:00:09 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/2010/10/21/utf-8-and-char-65279-byte-order-mark/</guid>
		<description><![CDATA[Should you find yourself catting files together to make a megafile (like turning many individual sproc files into a single file fit for execution) and you end up with your program (let’s say SQL Management Studio) saying there’s a problem with the file its because a Unicode BOM (byte order mark or char value 65279) [...]]]></description>
			<content:encoded><![CDATA[<p>Should you find yourself catting files together to make a megafile (like turning many individual sproc files into a single file fit for execution) and you end up with your program (let’s say SQL Management Studio) saying there’s a problem with the file its because a Unicode BOM (byte order mark or char value 65279) that appeared at the start of one of the concatenated files made it into your megafile.&#160; We solved this by opening the offending file in Visual Studio and Save As… overwriting itself as a Unicode Codepage 1200 instead of UTF-8.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2010/10/21/utf-8-and-char-65279-byte-order-mark/&via=cfeduke&text=UTF-8 and char 65279 (byte order mark)&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2010/10/21/utf-8-and-char-65279-byte-order-mark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F# Survival Guide</title>
		<link>http://www.deploymentzone.com/2010/07/29/f-survival-guide/</link>
		<comments>http://www.deploymentzone.com/2010/07/29/f-survival-guide/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 19:28:15 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/2010/07/29/f-survival-guide/</guid>
		<description><![CDATA[While doing some research on what options are available to eliminate deeply nested branching, I stumbled across this:
http://www.ctocorner.com/fsharp/book/default.aspx
I’ve been reading it when I have a moment here and there and so far its been great.&#160; 
Tweet]]></description>
			<content:encoded><![CDATA[<p>While doing some research on what options are available to eliminate deeply nested branching, I stumbled across this:</p>
<p><a href="http://www.ctocorner.com/fsharp/book/default.aspx">http://www.ctocorner.com/fsharp/book/default.aspx</a></p>
<p>I’ve been reading it when I have a moment here and there and so far its been great.&#160; </p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2010/07/29/f-survival-guide/&via=cfeduke&text=F# Survival Guide&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2010/07/29/f-survival-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon Kindle for eBooks on a Jailbroken iPhone</title>
		<link>http://www.deploymentzone.com/2009/11/19/amazon-kindle-for-ebooks-on-a-jailbroken-iphone/</link>
		<comments>http://www.deploymentzone.com/2009/11/19/amazon-kindle-for-ebooks-on-a-jailbroken-iphone/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 15:44:53 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/2009/11/19/amazon-kindle-for-ebooks-on-a-jailbroken-iphone/</guid>
		<description><![CDATA[Until November 25th Pragmatic Press is offering 40% off all their existing print and upcoming print books.&#160; I took advantage of this and picked up a few print books, but one of the books I wanted was eBook only.&#160; No problem, except… no Kindle.&#160; So:
&#160;

Jailbreak iPhone if you haven’t done so already.&#160; Very important to [...]]]></description>
			<content:encoded><![CDATA[<p>Until November 25th <a href="http://www.pragprog.com/news/40-off-thanksgiving-pragsale-now-through-1125?900443">Pragmatic Press is offering 40% off</a> all their existing print and upcoming print books.&#160; I took advantage of this and picked up a few print books, but one of the books I wanted was eBook only.&#160; No problem, except… no Kindle.&#160; So:</p>
<p>&#160;</p>
<ol>
<li>Jailbreak iPhone if you haven’t done so already.&#160; Very important to change your root and mobile user passwords – root’s password by default is `alpine’ - either by installing Cydia’s Terminal application or sshing into your phone.&#160; (Jailbreaking is a time consuming process and I feel guilty about putting it as a single step.) </li>
<ol>
<li>You will need to install OpenSSH so you can copy files to the phone; you will probably also want to install Terminal.&#160; Both of these applications are available for free within Cydia, just search for them and install.&#160; It will take a long time for your very first ssh connection to your phone to connect as its generating encryption keys.</li>
</ol>
<li>Install the free Kindle app on the iPhone from the iTunes store.
<ol>
<li>The Kindle stores its books in an `eBooks’ folder buried in the `/var/mobile/Applications/…/Documents/eBooks’ where the `…’ is a GUID identifying the application. </li>
</ol>
</li>
<li>SSH (preferably a client where you can copy and paste) or Terminal.      <br /> 
<pre class="brush: bash;">find -type d /var/mobile/Applications -name 'eBooks'</pre>
<ol>
<li>a. Copy the GUID, and you’ll want to end up with the path in 2.1, above, but where the `…’ is replaced by the GUID.&#160; (On my device the GUID was <font size="2" face="conso">127DF7F1-9B49-423B-9FA9-77AB87775E24</font> but I don’t know if this is the same across devices; probably not.) </li>
</ol>
</li>
<li>This is purely for convenience, mainly because I want to use <a href="http://winscp.net/eng/index.php">WinSCP</a> to copy files from my Windows 7 PC to my iPhone and I don’t want to remember the GUID for the Amazon application every time I want to do this.&#160; (You can also use command line scp, but you’ll likely still want to create a symlink.) (You may also want to use `/private/var/root/Media/eBooks’ if you prefer a better organizational hierarchy.)
<p></p>
<pre class="brush: bash;">ln -s /var/mobile/Applications/YOUR_GUID/Documents/eBooks \
/private/var/root/eBooks</pre>
</li>
<li>Now you can use WinSCP or scp to copy *.mobi files directly into your device’s `/private/var/root/eBooks’ directory; books you copy here will be available in the Amazon Kindle iPhone app next time you launch it. </li>
</ol>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2009/11/19/amazon-kindle-for-ebooks-on-a-jailbroken-iphone/&via=cfeduke&text=Amazon Kindle for eBooks on a Jailbroken iPhone&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2009/11/19/amazon-kindle-for-ebooks-on-a-jailbroken-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Khorne Berzerkers</title>
		<link>http://www.deploymentzone.com/2009/06/04/khorne-berzerkers/</link>
		<comments>http://www.deploymentzone.com/2009/06/04/khorne-berzerkers/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 06:16:12 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/?p=126</guid>
		<description><![CDATA[Some Khorne Berzerkers I finished up after having them assembled and sitting in a box for over six years.  Also trying out my new camera and figuring out how to take pictures.
 
 
Tweet]]></description>
			<content:encoded><![CDATA[<p>Some Khorne Berzerkers I finished up after having them assembled and sitting in a box for over six years.  Also trying out my new camera and figuring out how to take pictures.</p>
<p> <br />
<a class="tt-flickr tt-flickr tt-flickr-Small" title="Khorne Berzerkers" href="http://farm4.static.flickr.com/3662/3593413231_cac5728bd6_b.jpg"><img src="http://farm4.static.flickr.com/3662/3593413231_cac5728bd6_m.jpg" border="0" alt="Khorne Berzerkers" width="240" height="180" /></a> <a class="tt-flickr tt-flickr tt-flickr-Small" title="Khorne Berzerkers (All)" href="http://farm4.static.flickr.com/3097/3593413419_a2fba133b4_b.jpg"><img src="http://farm4.static.flickr.com/3097/3593413419_a2fba133b4_m.jpg" border="0" alt="Khorne Berzerkers (All)" width="240" height="180" /></a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2009/06/04/khorne-berzerkers/&via=cfeduke&text=Khorne Berzerkers&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2009/06/04/khorne-berzerkers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eight Cores!</title>
		<link>http://www.deploymentzone.com/2009/04/22/eight-cores/</link>
		<comments>http://www.deploymentzone.com/2009/04/22/eight-cores/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 04:31:20 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.deploymentzone.com/2009/04/22/eight-cores/</guid>
		<description><![CDATA[I've had this machine, dubbed &#34;The BEAST&#34; to the outside world (aka my friends) since last August with literally nothing to do.&#160; Its a monster, eight cores, HyperV with several VMs running, 8 GBs of RAM and Server 2008 64-bit.&#160; I just wish I had some useful task to put it towards!

Tweet]]></description>
			<content:encoded><![CDATA[<p>I've had this machine, dubbed &quot;The BEAST&quot; to the outside world (aka my friends) since last August with literally nothing to do.&#160; Its a monster, eight cores, HyperV with several VMs running, 8 GBs of RAM and Server 2008 64-bit.&#160; I just wish I had some useful task to put it towards!</p>
<p><a href="http://www.deploymentzone.com/wp-content/uploads/2009/04/image2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="Look ma, eight cores!" src="http://www.deploymentzone.com/wp-content/uploads/2009/04/image-thumb2.png" width="439" border="0" /></a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.deploymentzone.com/2009/04/22/eight-cores/&via=cfeduke&text=Eight Cores!&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.deploymentzone.com/2009/04/22/eight-cores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

