<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2" -->
<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/"
	>

<channel>
	<title>newthink.net/blog</title>
	<link>http://newthink.net/blog</link>
	<description>newthink.net/blog</description>
	<pubDate>Mon, 14 Jul 2008 17:20:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2</generator>
	<language>en</language>
			<item>
		<title>PostRank Python API</title>
		<link>http://newthink.net/blog/2008/07/14/postrank-python-api/</link>
		<comments>http://newthink.net/blog/2008/07/14/postrank-python-api/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 16:22:00 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2008/07/14/postrank-python-api/</guid>
		<description><![CDATA[What is PostRank?
PostRank is a scoring system developed by AideRSS to rank any kind of online content, such as RSS feed items, blog posts, articles, or news stories. PostRank is based on social engagement, which refers to how interesting or relevant people have found an item or category to be.
Public-facing RESTful API&#8217;s are becoming more [...]]]></description>
			<content:encoded><![CDATA[<h3>What is PostRank?</h3>
<blockquote><p>PostRank is a scoring system developed by AideRSS to rank any kind of online content, such as RSS feed items, blog posts, articles, or news stories. PostRank is based on social engagement, which refers to how interesting or relevant people have found an item or category to be.</p></blockquote>
<p>Public-facing <a href="http://en.wikipedia.org/wiki/RESTful">RESTful</a> API&#8217;s are becoming more popular as a way to allow access to services by third-parties. <a href="http://www.aiderss.com">AideRSS</a> recently decoupled their PostRank service and offered it as a stand-alone service allowing any developer to use <a href="http://www.postrank.com">PostRank</a> within their application. I am in the process of updating this website/blog and I am planning to make use of the PostRank service not only as a tool to measure my engagement with the public, but increase the usefulness of my posts.</p>
<h3>What is PostRank Python API and what does it do?</h3>
<p>This is an api accessor for python that allows a developer to quickly access all of the services offered by PostRank. It is loosely modeled after <a href="http://mike.verdone.ca/twitter/">Mike Verdone&#8217;s Python Twitter Tools</a> in that it is simple to use, and it uses the same arguments as those documented on the <a href="http://postrank.com/developers.html">PostRank API</a> page.</p>
<h3>What are the requirements?</h3>
<ul>
<li>Python 2.5 <em>(haven&#8217;t tested with &lt;2.4)</em></li>
<li>simplejson python library <em>(if using json output)</em></li>
</ul>
<h3>How do I use it?</h3>
<p>Using the PostRank Python API is very easy. The first step should be to look at the API documentation provided by the PostRank website.</p>
<p><img src='http://newthink.net/blog/wp-content/uploads/2008/07/feed_id_api_doc1.png' alt='feed_id API Doc' /></p>
<p>We can see what options the api needs in order to satisfy the request. We just need to specify the resource that we want to use, then we can add all the arguments we want passed along to PostRank.</p>
<p><img src='http://newthink.net/blog/wp-content/uploads/2008/07/feed_id_usage_example.png' alt='feed_id usage example.' /></p>
<p>If you have selected JSON as your format, the api will return to you a simplejson object which can be accessed just like a multi-dimensional array. When using JSON, it is extremely simple to get at the information provided by PostRank.</p>
<p><img src='http://newthink.net/blog/wp-content/uploads/2008/07/using_json_object.png' alt='Using the json object.' /></p>
<p>There is a bit of a trick when using the &#8216;<a href="http://postrank.com/api/postrank.html">postrank</a>&#8216; resource but it certainly isn&#8217;t difficult to use.</p>
<p>It works the exact same way - the PostRank API says it wants an array of urls (url[]) so we will pass in an array of urls as an argument (same thing for the feed_id[]).</p>
<p><img src='http://newthink.net/blog/wp-content/uploads/2008/07/post_rank_api_doc.png' alt='post_rank API Doc' /></p>
<p>Following the same pattern as before, we just pass in the resource we want to use and the API arguments.</p>
<p><img src='http://newthink.net/blog/wp-content/uploads/2008/07/postrank_usage_example.png' alt='postrank usage example.' /></p>
<p>There really isn&#8217;t much more to it.</p>
<p>For now, you can find the python library here: <a href="http://newthink.net/~ash/software/postrankapi/">http://newthink.net/~ash/software/postrankapi/</a></p>
<p>When my new website is done, I plan to find a more permanent place for this (and future software).</p>
<p>Next step, creating an egg and integrating with ez_install.</p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2008/07/14/postrank-python-api/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Recent Changes</title>
		<link>http://newthink.net/blog/2008/05/23/recent-changes/</link>
		<comments>http://newthink.net/blog/2008/05/23/recent-changes/#comments</comments>
		<pubDate>Sat, 24 May 2008 04:44:12 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Employment]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2008/05/23/recent-changes/</guid>
		<description><![CDATA[Working at Manulife Financial was not a good fit for me. I tried to make it work, but it just wasn&#8217;t meant to be. In March, I decided to tender my resignation and move on. 
I accepted a job in Toronto doing software development for GAP Adventures. They offered a much more agile development environment [...]]]></description>
			<content:encoded><![CDATA[<p>Working at Manulife Financial was not a good fit for me. I tried to make it work, but it just wasn&#8217;t meant to be. In March, I decided to tender my resignation and move on. </p>
<p>I accepted a job in Toronto doing software development for <a href="http://www.gapadventures.com">GAP Adventures</a>. They offered a much more agile development environment where I can use my skills and take the time to learn new skills. Already I have had a chance to look at technologies like Pylucene (for full-text search) and PHPTal (for PHP templating, which I would never recommend to even my worst enemy). </p>
<p><a href="http://www.flickr.com/photos/ashchristopher/2517113117/" title="Medical Arts building in Hamilton. by ash.christopher, on Flickr"><img src="http://farm3.static.flickr.com/2036/2517113117_399b2cebf3.jpg" width="321" height="500" alt="Medical Arts building in Hamilton." /></a></p>
<p>With the change in job also comes a move back to Hamilton. Our new apartment is a 2 minute walk to the train station (I can see the train from our kitchen window) which is really convenient. Although my commute on the Go-train is just over an hour long, I am able to effectively use the time instead of concentrating on driving. I have been able to catch up on some television shows (Prison Break and Torchwood) and have had time to tinker around with some project/development ideas. I have some new ideas which I am exploring which I think might have startup potential but I dont want to get ahead of myself. I have also been able to work on updates to <a href="http://r4nt.com">R4NT Magazine</a> which has helped me brush up on my Ruby on Rails. </p>
<p><a href="http://www.flickr.com/photos/ashchristopher/2517933414/" title="View of downtown Hamilton from our apartment. by ash.christopher, on Flickr"><img src="http://farm3.static.flickr.com/2418/2517933414_825a1fb42d.jpg" width="333" height="500" alt="View of downtown Hamilton from our apartment." /></a></p>
<p>We are still unpacking the new apartment (and by we, I mean Jenna. I finished mine already - I have a lot less stuff, and haven&#8217;t been as busy as her) and we have just a few more things to grab from the old one. I am really looking forward to getting settled. I have felt like I have been on the go since Christmas (with the Google interviews, and other interviews). It will be nice just to take a day (or two), bum around on the couch (or near the couch - I just bought a Wii), and just relax.</p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2008/05/23/recent-changes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>fcgi and mod_fcgid on CentOS4</title>
		<link>http://newthink.net/blog/2008/03/09/fcgi-and-mod_fcgid-on-centos4/</link>
		<comments>http://newthink.net/blog/2008/03/09/fcgi-and-mod_fcgid-on-centos4/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 01:27:25 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2008/03/09/fcgi-and-mod_fcgid-on-centos4/</guid>
		<description><![CDATA[I decided recently that I wanted to be able to run Ruby on Rails applications from my webserver. For those who don&#8217;t know me, RPM database integrity is a huge issue for me (I do not just install from source on my server!).
Since I had some time this weekend, I decided it was about time [...]]]></description>
			<content:encoded><![CDATA[<p>I decided recently that I wanted to be able to run Ruby on Rails applications from my webserver. For those who don&#8217;t know me, RPM database integrity is a huge issue for me (I do not just install from source on my server!).</p>
<p>Since I had some time this weekend, I decided it was about time I rolled some RPM&#8217;s so I could run Rails. Of course, it being over two years since I was last rolling RPM&#8217;s for work at Pason, it took me a bit to get back in the swing of things.</p>
<p>I followed the <a href="http://wiki.rubyonrails.org/rails/pages/Rails+on+CentOS+4.6+with+Apache+and+FastCGI+Simply">guide</a> found via the Ruby on Rails wiki, and modified it a bit for my server. The two main pieces of software that needed RPM&#8217;s were fastCGI and mod_fcgid (slightly different than mod_fastcgid).</p>
<p>Below you can download the RPM&#8217;s and the SRPM&#8217;s though I will be the first to acknowledge that I cheated a bit. I should have modified the Makefile on each of these programs to make use of an install_dir directive, but since I was building on a clean CentOS4.6 vmware OS, I decided not to go through the hassle. If someone really wants to do it properly, have at it - thats why I included the SRPMS.</p>
<p><strong>RPMS:</strong><br />
<a href="http://www.newthink.net/files/mod_fcgid-1.09-1.i386.rpm">mod_fcgid-1.09-1.i386.rpm</a><br />
<a href="http://www.newthink.net/files/fcgi-2.4.0-1.i386.rpm">fcgi-2.4.0-1.i386.rpm</a></p>
<p><strong>SRPMS:</strong><br />
<a href="http://www.newthink.net/files/mod_fcgid-1.09-1.src.rpm">mod_fcgid-1.09-1.src.rpm</a><br />
<a href="http://www.newthink.net/files/fcgi-2.4.0-1.src.rpm">fcgi-2.4.0-1.src.rpm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2008/03/09/fcgi-and-mod_fcgid-on-centos4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Photo Friday: Art</title>
		<link>http://newthink.net/blog/2008/02/25/photo-friday-art/</link>
		<comments>http://newthink.net/blog/2008/02/25/photo-friday-art/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 04:13:29 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Photo Friday]]></category>

		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2008/02/25/photo-friday-art/</guid>
		<description><![CDATA[
I&#8217;ve been meaning to submit my photos to PhotoFriday for a while, but my gallery hasn&#8217;t been diverse enough to fulfull the recent challenges&#8230; until this week.
Camera: Canon EOS 40D
Exposure: 0.2 sec (1/5)
Aperture: f/5.6
Focal Length: 85 mm
ISO Speed: 400
Exposure Bias: -1/3 EV
Flash: Flash did not fire 
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/ashchristopher/2293212512/" title="Faux Flower by ash.christopher, on Flickr"><img src="http://farm4.static.flickr.com/3022/2293212512_45907b59ef.jpg" width="500" height="333" alt="Faux Flower" /></a></p>
<p>I&#8217;ve been meaning to submit my photos to <a href="http://photofriday.com/">PhotoFriday</a> for a while, but my gallery hasn&#8217;t been diverse enough to fulfull the recent challenges&#8230; until this week.</p>
<p>Camera: Canon EOS 40D<br />
Exposure: 0.2 sec (1/5)<br />
Aperture: f/5.6<br />
Focal Length: 85 mm<br />
ISO Speed: 400<br />
Exposure Bias: -1/3 EV<br />
Flash: Flash did not fire </p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2008/02/25/photo-friday-art/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Interviews Have Kept Me Busy</title>
		<link>http://newthink.net/blog/2008/02/18/google-interviews-have-kept-me-busy/</link>
		<comments>http://newthink.net/blog/2008/02/18/google-interviews-have-kept-me-busy/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 04:01:21 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Employment]]></category>

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2008/02/18/google-interviews-have-kept-me-busy/</guid>
		<description><![CDATA[
First of all, I&#8217;ll spare you the suspense. I did NOT get offered a job at Google&#8230; but I did have a lot of fun!
I was first contacted back in December by a Google talent recruiter. Mike had been in the middle of his Google interviews, so it was an exciting time. 
Was I interested? [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://newthink.net/blog/wp-content/uploads/2008/02/google_logo_sm.jpg' alt='Google' /></p>
<p>First of all, I&#8217;ll spare you the suspense. I did <strong>NOT</strong> get offered a job at Google&#8230; but I did have a lot of fun!</p>
<p>I was first contacted back in December by a Google talent recruiter. <a href="http://mike.verdone.ca/blog">Mike</a> had been in the middle of his Google interviews, so it was an exciting time. </p>
<p>Was I interested? Definitely! There are few in the software industry that wouldn&#8217;t jump at a chance to work for Google - one might call them the Mecca of the software industry (but only if it doesn&#8217;t offend anyone; if it does, let&#8217;s just call it a pretty neat place to work).</p>
<p>I first received an email from the recruiter asking if I was interested, and where I wanted to look for a position. She told me that she thought there was a good fit for me for a Java position in Mountain View, but I asked her about looking for a job in Waterloo. Was it a mistake? Maybe, but she did mention that I could look into a position in Mountain View if the Waterloo position didn&#8217;t work out. </p>
<p>Over the Christmas holidays, the recruited emailed me to let me know that the Waterloo position was a C++ position, and that perhaps I would have a better chance finding interest in Mountain View, but the next day she emailed me back to let me know that the Waterloo offices were interested. </p>
<p>I was excited. One of my goals, new years resolutions if you will, was to step out of my comfort zone with regards to software development. It seems that every script I needed to write was being written in Perl and Bash script and every piece of software I was writing professionally was in Java. I wanted get out of the habbit of relying on Java/Perl/Bash. This seemed like a good opportunity as C++ is one of many languages I wanted to work on this year.</p>
<p>Well, I guess what you really want to know is what sorts of things I was asked on my interviews. Well, before that, there are a lot of things that need to be reviewed; first and foremost, <strong>asymptotic notation and complexity</strong>. The interview questions consisted of asking me to come up with a semi-high level algorithm and then to explain the asymptotic complexity of each part as I went along, and then what the final complexity of the algorithm would be. </p>
<p>The next thing that should be reviewed is your basic sorting algorithms and their respective complexities. I made sure to know heap sort, bubble sort, selection sort, binary sort, merge sort, quick sort and insertion sort. Also important, you should know the memory requirements that each algorithm uses to run (in big-O notation). I was asked in my first interview to not only minimize the runtime, but also the memory footprint (ie. insertion sort although is O(n^2) in runtime, it is O(1) with regards to memory).</p>
<p>The next thing I reviewed was memory structures. Hash&#8217;s, binary trees, n-tier trees, etc and the properties that each one possesses. If the interviewer asks you about a binary tree, make sure you know the properties that make a binary tree special so that you can leverage it in your solution. </p>
<p>Now, on to the interviews. </p>
<p>The first interview started with a quick introduction from Steve about where he worked within Google (Google NYC) and what he worked on there (Google maps). Then it was right down to business. The first questions (from my memory, so don&#8217;t blame me if it isn&#8217;t 100% correct) was as follows:</p>
<p><strong><em>Given a binary tree, and two leaves, can you find the lowest common node of those leaves?</em></strong></p>
<p>I won&#8217;t give you the answer here. I&#8217;ll let you work it out for a bit and perhaps if there is enough discussion in the comments, I&#8217;ll leave the answer there. When giving my answer to the interviewer, I think I could have been a lot clearer. I was nervous; very nervous. I really didn&#8217;t know what to expect, even though Mike prepared me the night before. The answer I gave was right (as far as a solution and its complexity) however, about 10 minutes after completing my interview, I figured out a way to better leverage the binary tree structure which would have also given a much clearer answer. Also, I was asked to minimize both the runtime and memory usage in my solution.</p>
<p>The next interview I had was about 2 weeks later and it was with Chris (also from the Google NYC offices) but he worked for Google&#8217;s blog search. This one started a little different; he asked about what I had worked on at my previous companies and more specifically what I felt the coolest project was. I had so many to choose from at Pason, but I went with the biggest and more complex, the DataStream project. After that, he asked me my ideal problem to solve was if I could leverage all that is Google. This really caught me off guard. I should have known it was going to come; I even read about someone who was asked a similar questions. I spent so much time preparing for the technical part of the interview, I forgot about the lighter part. I wish I could have done it over. My answer was a lame scheduling mash-up for Google maps. I really needed to think bigger&#8230; hell, my friends and I have talked for years about cool stuff that we could do if only we had a company that was as big as Google. </p>
<p>I felt like an idiot, but what can you do. No sense dwelling on that. There were two technical questions that comprised this part of the interview. The first was:</p>
<p><strong><em>If you were designing the Vector class in Java, how would you code the add(Object) method?</em></strong></p>
<p>Deceptive; not hard per se, but there are a few things that need to be worried about when solving this question.</p>
<p>The next question was the algorithm question:</p>
<p><strong><em>If you were given an unordered set of plane tickets which represented legs in a trip, can you figure out the order in which to use the tickets?</em></strong></p>
<p>This was a really fun problem to work on, and again, I&#8217;ll save the answer for the comments. Remember that they want you to come up with the lowest runtime algorithm that you can.</p>
<p>Three days after I completed this interview, I got my letter letting me know that they were not going to be offering me a position. Was I disappointed? Sure. I have to admit that I thought about how neat it would be to work at Google, but it wasn&#8217;t all bad. It helped me fulfill another one of my new years resolutions - to get back into studying the &#8220;science&#8221; of computer science, and although stressful, the whole experience was a lot of fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2008/02/18/google-interviews-have-kept-me-busy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I Finally Have A Picture Gallery!</title>
		<link>http://newthink.net/blog/2008/01/24/finally-have-a-picture-gallery/</link>
		<comments>http://newthink.net/blog/2008/01/24/finally-have-a-picture-gallery/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 15:52:13 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Photography]]></category>

		<category><![CDATA[newthink.net Website]]></category>

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2008/01/24/finally-have-a-picture-gallery/</guid>
		<description><![CDATA[It only took 7 months, but I finally got around to getting a picture gallery working on my website. If you remember my old website, I created a gallery from scratch that could be embedded into any webpage. You would upload your pictures to a folder on your webserver, then in your website code, you [...]]]></description>
			<content:encoded><![CDATA[<p>It only took 7 months, but I finally got around to getting a picture gallery working on my website. If you remember my old website, I created a gallery from scratch that could be embedded into any webpage. You would upload your pictures to a folder on your webserver, then in your website code, you would embed a gallery, telling the software where to find your pictures.</p>
<p>When the website is accessed, it scans the folder and automatically creates all the thumbnail and preview images needed for the gallery using Imagemagick. One of the main issues I had with this implementation is that it was table based (as was a lot of web layouts back in the day). This meant you needed to be aware of the total size of the website that you were embedding the gallery in.</p>
<p>For my new implementation, I took a different approach. I decided not to reinvent the wheel. There is a service out there called <a href="http://www.flickr.com">flickr</a> (unless you have been living under a rock, you already know what flickr is) which allows you to upload photos to an online gallery. The nice thing about flickr is that they offer an extensive  <a href="http://www.flickr.com/services/api/">api</a> which can be used to get information about pictures that have been uploaded. I decided to leverage this service, and its ability to provide me with information about my gallery and used it to create a gallery for my personal website. I let flickr do what it does best; manage my photos and then I created my software to display it to the world the way I want it. </p>
<p>This time around, I used &lt;div /&gt; tags and CSS to develop the layout for the gallery which allows it to be embedded in all sorts of locations, and it will adapt to its container. It is definitely a lot slicker of a setup than my last gallery.  </p>
<p>My gallery is in the early stages right now, but as soon as it is done I will release my source code. Right now it just displays the photos, but using flickr&#8217;s api, I can get neat information such as EXIF data which might be interesting to have on my gallery.</p>
<p><a href="http://newthink.net/gallery">Check out my gallery!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2008/01/24/finally-have-a-picture-gallery/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Camera Fun - Canon 40D</title>
		<link>http://newthink.net/blog/2008/01/16/new-camera-fun-canon-40d/</link>
		<comments>http://newthink.net/blog/2008/01/16/new-camera-fun-canon-40d/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 22:56:09 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2008/01/16/new-camera-fun-canon-40d/</guid>
		<description><![CDATA[
Over the Christmas break, I decided to take advantage of Boxing Week prices, and the lack of PST in Alberta, and purchased a Canon 40D SLR camera. 
I spent the first few days reading through the manual, and familiarizing myself with it&#8217;s features, and now I am beginning to get a good understanding of the [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://newthink.net/blog/wp-content/uploads/2008/01/n632526021_275101_2213.jpg' alt='n632526021_275101_2213.jpg' /></p>
<p>Over the Christmas break, I decided to take advantage of Boxing Week prices, and the lack of PST in Alberta, and purchased a <a href="http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&#038;fcategoryid=139&#038;modelid=15653">Canon 40D</a> SLR camera. </p>
<p>I spent the first few days reading through the manual, and familiarizing myself with it&#8217;s features, and now I am beginning to get a good understanding of the theory behind photography. That&#8217;s not to say that all my pictures are turning out great, but I can see the pictures getting better. The composition is definitely getting better and better as I go.</p>
<p>The picture below is one of my better pictures I think, though the lighting could have been a bit better.</p>
<p><img src='http://newthink.net/blog/wp-content/uploads/2008/01/n517960170_2057592_227.jpg' alt='n517960170_2057592_227.jpg' /></p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2008/01/16/new-camera-fun-canon-40d/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Running Subversion From xinetd</title>
		<link>http://newthink.net/blog/2007/11/29/running-subversion-from-xinetd/</link>
		<comments>http://newthink.net/blog/2007/11/29/running-subversion-from-xinetd/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 22:45:34 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2007/11/29/running-subversion-from-xinetd/</guid>
		<description><![CDATA[Now that we have Subversion installed on our server, we really need some way to have it always available. We could run subversion in daemon mode but we would have to write init.d scripts which can get rather complex (especially if you are writing one properly, and not just hacking one together).
Instead, we will add [...]]]></description>
			<content:encoded><![CDATA[<p>Now that we have Subversion installed on our server, we really need some way to have it always available. We could run subversion in daemon mode but we would have to write init.d scripts which can get rather complex (especially if you are writing one properly, and not just hacking one together).</p>
<p>Instead, we will add subversion to xinetd. The benefit of this is that subversion is only running when we need access to the repository rather than running all the time. By default, subversion is not set up in xinetd, so the following is how I set it up:</p>
<p>First make sure that xinetd is installed.<br />
<code><br />
# yum install xinetd<br />
</code><br />
Next we want to add the following to our /etc/xinetd.d/svnserve<br />
<code><br />
# default: off<br />
# description: svnserve is the server part of Subversion.<br />
service svn<br />
{<br />
&nbsp;&nbsp;disable	= no<br />
&nbsp;&nbsp;port	= 3690<br />
&nbsp;&nbsp;socket_type   = stream<br />
&nbsp;&nbsp;protocol      = tcp<br />
&nbsp;&nbsp;wait          = no<br />
&nbsp;&nbsp;user          = root<br />
&nbsp;&nbsp;server        = /usr/bin/svnserve<br />
&nbsp;&nbsp;server_args   = -i -r /svn<br />
}<br />
</code><br />
Finally, lets restart xinetd:<br />
<code><br />
/etc/init.d/xinetd restart<br />
</code><br />
Now xinetd will start the subversion repository server every time a subversion request is made.</p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2007/11/29/running-subversion-from-xinetd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting Up Subversion On Fedora 8</title>
		<link>http://newthink.net/blog/2007/11/28/setting-up-subversion-on-fedora-8/</link>
		<comments>http://newthink.net/blog/2007/11/28/setting-up-subversion-on-fedora-8/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 23:14:59 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2007/11/28/setting-up-subversion-on-fedora-8/</guid>
		<description><![CDATA[After fighting with the corporate firewall (ssh tunnels were not successfully able to navigate to a SVN repo on a shared host) I decided I should set subversion up on my home server. Since I am a little paranoid about throwing caution to the wind with regard to server changes, I decided to set it [...]]]></description>
			<content:encoded><![CDATA[<p>After fighting with the corporate firewall (ssh tunnels were not successfully able to navigate to a SVN repo on a shared host) I decided I should set subversion up on my home server. Since I am a little paranoid about throwing caution to the wind with regard to server changes, I decided to set it up on my Fedora 8 vmware partition. </p>
<p>Here was my process.<br />
<code><br />
# yum install subversion<br />
</code><br />
Ok, that was pretty easy. I now have subversion installed on my system; both from a client and user&#8217;s perspective. Next I need to create a subversion repository location on my disk (/svn can be replaced with any location on your server).<br />
<code><br />
# svnadmin create /svn<br />
</code><br />
In /svn/conf/passwd add the following (it is in plaintext, but I am sure there is an encrypted solution):<br />
<code><br />
[users]<br />
achristopher = <em>some secret, yet plaintext password</em><br />
</code><br />
In the /svn/conf/svnserve.conf, you should set the following:<br />
<code><br />
[general]<br />
anon-access = read<br />
auth-access = write</p>
<p>password-db = passwd</p>
<p>realm = Test Repo<br />
</code><br />
There, our subversion repository has been set up. Now all we have to do is start the subversion daemon.<br />
<code><br />
# subserv -r /svn -d<br />
</code><br />
We can test the subversion repo:<br />
<code><br />
# mkdir /tmp/test</p>
<p># svn import /tmp/test svn://localhost/svn/test -m "Initial creation."<br />
Committed revision 1.</p>
<p># svnlook tree /svn<br />
/<br />
 svn/<br />
  test/<br />
</code><br />
We have just added a directory to our subversion repository. Now lets checkout this project, and get to work:<br />
<code><br />
# rm -Rf /tmp/test<br />
# svn checkout svn://localhost/svn/test<br />
Checked out revision 1.<br />
</code></p>
<p>I cheated a little there, because I had entered my password before I created this posting, so you can expect to see something like the following:<br />
<code><br />
Authentication realm: <svn ://localhost:3690> Test Repo<br />
Password for &#8216;achristopher&#8217;:<br />
</svn></code><br />
Just enter your password (the one entered in plain text above) and continue working.</p>
<p><strong>To follow: How to set subversion to work with xinetd (it isnt that exciting, but definitely new post worthy).</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2007/11/28/setting-up-subversion-on-fedora-8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Chuck Norris Approved!</title>
		<link>http://newthink.net/blog/2007/11/19/chuck-norris-approved/</link>
		<comments>http://newthink.net/blog/2007/11/19/chuck-norris-approved/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 16:32:38 +0000</pubDate>
		<dc:creator>Ash Christopher</dc:creator>
		
		<category><![CDATA[Humour]]></category>

		<guid isPermaLink="false">http://newthink.net/blog/2007/11/19/chuck-norris-approved/</guid>
		<description><![CDATA[


The Chuck Norris meme is of my favorite memes. If you have been living under a rock, it&#8217;s time to get out and enjoy! 
I really like that the US political candidates are embracing the Internet medium (or at least trying), and even more so that they are using vehicles such as YouTube. Now we [...]]]></description>
			<content:encoded><![CDATA[<p><center><object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/PjQs6Bn3ZVM&#038;rel=1"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/PjQs6Bn3ZVM&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></center></p>
<p>The Chuck Norris meme is of my favorite memes. If you have been living under a rock, it&#8217;s time to get out and enjoy! </p>
<p>I really like that the US political candidates are embracing the Internet medium (or at least trying), and even more so that they are using vehicles such as YouTube. Now we just have to wait and see if it actually leads to an increase in voter turnout for this generation in the next election.</p>
]]></content:encoded>
			<wfw:commentRss>http://newthink.net/blog/2007/11/19/chuck-norris-approved/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
