<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.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>Noemi Millman &#124; Triopter</title>
	<link>http://triopter.com</link>
	<description>Hello.  My name is Noemi Millman.  I handcraft beautiful, dynamic websites.</description>
	<pubDate>Fri, 26 Sep 2008 16:27:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>Announcing NKMImageField - A Custom Image Field Plugin for Wordpress</title>
		<link>http://triopter.com/archive/announcing-nkmimagefield-a-custom-image-field-plugin-for-wordpress/</link>
		<comments>http://triopter.com/archive/announcing-nkmimagefield-a-custom-image-field-plugin-for-wordpress/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 21:24:05 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

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

		<guid isPermaLink="false">http://triopter.com/archive/announcing-nkmimagefield-a-custom-image-field-plugin-for-wordpress/</guid>
		<description><![CDATA[Have you ever wanted to add a custom field to a Wordpress post or page that contained an image URL &#8212; for instance, to use in a template?
You&#8217;ve probably noticed that it&#8217;s a real pain in the rear: you have to find the URL for the image and then copy and paste it into a [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to add a custom field to a Wordpress post or page that contained an image URL &#8212; for instance, to use in a template?</p>
<p>You&#8217;ve probably noticed that it&#8217;s a real pain in the rear: you have to find the URL for the image and then copy and paste it into a field.  If you have non-technical users managing the site, chances are they have a lot of trouble with this process.</p>
<p>You&#8217;re not the only one who&#8217;s been frustrated.</p>
<p>Well, good news.  I&#8217;ve just released a plugin that allows you to use the Wordpress 2.5 media gallery to build custom image fields with a friendly graphic interface.  It&#8217;s now <a href="http://triopter.com/downloads/nkm-imagefield.0.2.3.zip">available for download</a>, and should be hosted on the Wordpress site shortly.</p>
<p><strong>Important Update 9/26/08</strong>: Versions prior to 0.2.3 have an installation bug that causes any attempt to create a new field to fail.  Please download and install <a href="http://triopter.com/downloads/nkm-imagefield.0.2.3.zip">version 0.2.3</a> instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/announcing-nkmimagefield-a-custom-image-field-plugin-for-wordpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Introducing &#8220;Flowers&#8221; Wordpress Theme</title>
		<link>http://triopter.com/archive/introducting-flowers-wordpress-theme/</link>
		<comments>http://triopter.com/archive/introducting-flowers-wordpress-theme/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 16:39:42 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

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

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

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

		<guid isPermaLink="false">http://triopter.com/archive/introducting-flowers-wordpress-theme/</guid>
		<description><![CDATA[The sun finally came out today in Queens, and we have real spring weather!  What better time to introduce Flowers, a spring-y floral Wordpress theme.  See Flowers theme in action.
The Flowers theme is free to use and distribute, as long as you retain the design and photography credits in the footer.  Please [...]]]></description>
			<content:encoded><![CDATA[<p>The sun finally came out today in Queens, and we have real spring weather!  What better time to introduce <em>Flowers</em>, a spring-y floral Wordpress theme.  <a href="http://flowers.projects.triopter.com/">See Flowers theme in action</a>.</p>
<p>The Flowers theme is free to use and distribute, as long as you retain the design and photography credits in the footer.  Please do not distribute any modifications to the design.</p>
<p>Flowers has been tested in Wordpress 2.3 and 2.5, and may also work with earlier versions.  Please report any problems you run into in the comments on this post.<br />
<a href="http://triopter.com/downloads/nkm-flowers.1.0.zip"><br />
Download Flowers here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/introducting-flowers-wordpress-theme/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Site Launch: Eleanor Schimmel</title>
		<link>http://triopter.com/archive/site-launch-eleanor-schimmel/</link>
		<comments>http://triopter.com/archive/site-launch-eleanor-schimmel/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 00:20:39 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

		<category><![CDATA[site launch]]></category>

		<guid isPermaLink="false">http://triopter.com/archive/site-launch-eleanor-schimmel/</guid>
		<description><![CDATA[I am delighted to announce the launch of Eleanor Schimmel&#8217;s portfolio website.  
Eleanor is an immensely talented artist who works in encaustic, a wax-based paint that gives her work a remarkable texture and depth.  I heartily encourage anyone to visit her site for a look at her paintings.
]]></description>
			<content:encoded><![CDATA[<p>I am delighted to announce the launch of <a href="http://www.eleanorschimmel.com">Eleanor Schimmel&#8217;s portfolio website</a>.  </p>
<p>Eleanor is an immensely talented artist who works in <a href="http://www.eleanorschimmel.com/encaustic-paint">encaustic</a>, a wax-based paint that gives her work a remarkable texture and depth.  I heartily encourage anyone to visit her site for a look at her paintings.</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/site-launch-eleanor-schimmel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Fresh Design for Triopter</title>
		<link>http://triopter.com/archive/a-fresh-design-for-triopter/</link>
		<comments>http://triopter.com/archive/a-fresh-design-for-triopter/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 17:00:00 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

		<category><![CDATA[triopter.com]]></category>

		<guid isPermaLink="false">http://triopter.com/archive/a-fresh-design-for-triopter/</guid>
		<description><![CDATA[Welcome to the new and improved Triopter!  It&#8217;s been in the works for a while, and I&#8217;m so excited about it that I finally decided to launch even though the copy isn&#8217;t done for all the pages I have planned.
I&#8217;ve tested everything in Firefox, IE 6 and 7, and Safari, but please let me [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the new and improved Triopter!  It&#8217;s been in the works for a while, and I&#8217;m so excited about it that I finally decided to launch even though the copy isn&#8217;t done for all the pages I have planned.</p>
<p>I&#8217;ve tested everything in Firefox, IE 6 and 7, and Safari, but please <a href="/contact">let me know</a> if you run into any problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/a-fresh-design-for-triopter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Freelancer&#8217;s Web Host</title>
		<link>http://triopter.com/archive/a-freelancers-web-host/</link>
		<comments>http://triopter.com/archive/a-freelancers-web-host/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 18:48:02 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

		<category><![CDATA[Web Hosting]]></category>

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

		<guid isPermaLink="false">http://triopter.com/archive/a-freelancers-web-host/</guid>
		<description><![CDATA[One thing every freelance web developer needs is a good web host.  But there are two sides to this requirement: one needs a reliable and speedy host for one&#8217;s own web presence, and at the same time one needs a great deal of space and flexibility in order to set up staging environments for [...]]]></description>
			<content:encoded><![CDATA[<p>One thing every freelance web developer needs is a good web host.  But there are two sides to this requirement: one needs a reliable and speedy host for one&#8217;s own web presence, and at the same time one needs a great deal of space and flexibility in order to set up staging environments for clients to review in-progress projects.  I&#8217;d additionally like my development host to provide a centralized location for version control, as well as a few other functions.  Since it&#8217;s not easy to find an inexpensive host that covers all of these bases, I&#8217;ve decided to separate these two functions out.</p>
<p> <a href="http://triopter.com/archive/a-freelancers-web-host/#more-22" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/a-freelancers-web-host/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Going Freelance</title>
		<link>http://triopter.com/archive/going-freelance/</link>
		<comments>http://triopter.com/archive/going-freelance/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 20:11:54 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[freelancing]]></category>

		<guid isPermaLink="false">http://triopter.com/archive/going-freelance/</guid>
		<description><![CDATA[I know it&#8217;s been a long time since I&#8217;ve updated (ah, the eternal lament of the blogger), but I finally have something to write about.  
I very recently left my job at Sanky Communications to pursue a career as a freelance web developer.  
I have to say that I learned a lot in [...]]]></description>
			<content:encoded><![CDATA[<p>I know it&#8217;s been a long time since I&#8217;ve updated (ah, the eternal lament of the blogger), but I finally have something to write about.  </p>
<p>I very recently left my job at <a href="http://www.sankynet.com">Sanky Communications</a> to pursue a career as a freelance web developer.  </p>
<p>I have to say that I learned a lot in my time at Sanky, and I already miss the people there.  The organization does a lot of great projects for some really wonderful non-profit clients, and I&#8217;m especially proud of some of the projects we launched towards the end of my time there (I&#8217;m not certain whether Sanky&#8217;s agreements with the clients allow me to mention them specifically &#8212; something to ask them about, I suppose).  In the end, I was simply ready for a new challenge &#8212; working more hands-on and on a greater variety of projects.</p>
<p>In any case, I&#8217;m really looking forward to this as a brave new adventure and a chance to work on some different types of projects, develop new skills, and maybe work a bit more on the cutting edge of web development.  I&#8217;m also going to try to set aside some time for some fun side projects.  Oh, and maybe even slap a real design on this blog!</p>
<p>I&#8217;m taking a couple weeks off to relax a bit and pull everything together.  There&#8217;s going to be a lot of annoying administrative details to take care of before I really get going.  It&#8217;s surprising in a way that there&#8217;s no good central resource out ther for freelancers who need things like contract templates, time tracking and invoicing software, contact management and financial solutions, etc.  I&#8217;ll probably end up writing about a few of those in this blog.  In the meantime, any suggestions are appreciated!</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/going-freelance/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Updating DarwinPorts / MacPorts</title>
		<link>http://triopter.com/archive/updating-darwinports-macports/</link>
		<comments>http://triopter.com/archive/updating-darwinports-macports/#comments</comments>
		<pubDate>Sun, 15 Apr 2007 19:36:58 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

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

		<guid isPermaLink="false">http://triopter.com/archive/updating-darwinports-macports/</guid>
		<description><![CDATA[OK, updating your DarwinPorts is pretty simple, but there are a couple of gotchas I thought I&#8217;d mention, since I came across them today.

Start with a selfupdate: $ sudo port selfupdate to get the latest version of DarwinPorts itself and the latest installable software list.
Do not, and I repeat do not, run $ sudo port [...]]]></description>
			<content:encoded><![CDATA[<p>OK, updating your DarwinPorts is pretty simple, but there are a couple of gotchas I thought I&#8217;d mention, since I came across them today.</p>
<ol>
<li>Start with a selfupdate: <code>$ sudo port selfupdate</code> to get the latest version of DarwinPorts itself and the latest installable software list.</li>
<li>Do not, and I repeat <strong>do not</strong>, run <code>$ sudo port upgrade all</code>.  It will try to install every port that exists.  Which could take months.</li>
<li><strong>Do</strong>run <code>$ sudo port upgrade outdated</code>, which will find all your installed ports that have new versions, and upgrade them.</li>
<li>Most of the upgrades insgtall pretty quickly, but <code>gcc</code> takes forever to compile.  Hours upon hours (4 hours for me on a dual G5 with lots of RAM) .  Use Activity Monitor to check CPU usage see whether it&#8217;s still actually working or has hung &#8212; a couple of the other ports hung for me &#8212; I had to cancel the process and start over (thankfully, if you run <code>upgrade oudated</code> it will skip the ones that already installed successfully).</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/updating-darwinports-macports/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installing Payflow Pro on Mac OS X</title>
		<link>http://triopter.com/archive/installing-payflow-pro-on-mac-os-x/</link>
		<comments>http://triopter.com/archive/installing-payflow-pro-on-mac-os-x/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 01:44:03 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

		<category><![CDATA[os x]]></category>

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

		<category><![CDATA[web dev]]></category>

		<guid isPermaLink="false">http://triopter.com/archive/installing-payflow-pro-on-mac-os-x/</guid>
		<description><![CDATA[If you&#8217;ve done more than a little web development, you&#8217;ve probably encountered Payflow Pro, PayPal&#8217;s (previously Verisign&#8217;s) credit card processing solution.
It&#8217;s not supported on OS X.
But OS X is UNIX-y!  There&#8217;s a version for Linux!  Why won&#8217;t it work on OS X?  Can&#8217;t you google for installation instructions?
Well, no.  Perhaps my [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve done more than a little web development, you&#8217;ve probably encountered Payflow Pro, PayPal&#8217;s (previously Verisign&#8217;s) credit card processing solution.</p>
<p>It&#8217;s not supported on OS X.</p>
<p>But OS X is UNIX-y!  There&#8217;s a version for Linux!  Why won&#8217;t it work on OS X?  Can&#8217;t you google for installation instructions?</p>
<p>Well, no.  Perhaps my google-fu is weak, but I could find no information whatsoever about how to get it working.</p>
<p>In fact, if these guys hadn&#8217;t <a href="http://blog.duncandavidson.com/2005/05/ruby_java_and_p.html">pointed out</a> that <a href="http://www.clarkware.com/cgi/blosxom/2005/05/17#PayflowPro">it was possible</a>, I would have given up then and there.</p>
<p>But I got it installed.  And you can, too.  Here&#8217;s how:</p>
<ol>
<li>Make sure you have the Apple Developer Tools installed.</li>
<li>Download the Payflow Pro Java SDK (you have to log into a Payflow Pro account to get the download), and unzip it to your hard drive (it doesn&#8217;t matter where, as long as it&#8217;s a place where the user your web server runs as can get to it).</li>
<li><code>cd</code> into the <code>java</code> directory.</li>
<li>Set your paths.  I had trouble getting these to stick, so I&#8217;d love any suggestions anyone might have on that aspect:
<p><code>$ CLASSPATH=${CLASSPATH:-}:Verisign.jar:.;export CLASSPATH</code></p>
<p><code>$ libpath=.:../jni:../lib</code></p>
<p><code>$ LD_LIBRARY_PATH=$libpath:${LD_LIBRARY_PATH:-};export LD_LIBRARY_PATH</code></li>
<li>Compile the java code:
<p><code>$ javac PFProJava.java</code></li>
<li>Run a test transaction:
<p><code>$ java PFProJava test-payflow.verisign.com 443 "USER=YourUserName&#038;VENDOR=YourVendorName&#038;PARTNER=YourPartnerName&#038;PWD=YourPassword&#038;TRXTYPE=S&#038;TENDER=C&#038;ACCT=5105105105105100&#038;EXPDATE=1209&#038;AMT=1.23&#038;ZIP=12345&#038;comment1=Test JNI Transactions" 30</code></p>
<p>Don&#8217;t forget to insert the correct user/vendor/partner/password.</p>
<p>Oh, and when I tried it with an account that didn&#8217;t have a username (which is possible in payflow pro), it wouldn&#8217;t accept the transaction until I set the <code>USER</code> to be the same as the <code>VENDOR</code>.</li>
<li>I ran into another problem, which was that I kept getting a  <code>NoClassDefFoundError</code> even after following the above steps.  I fixed this by adding the absolute path to <code>Verisign.jar</code> to my CLASSPATH:
<p><code>$ CLASSPATH=${CLASSPATH:-}:/path/to/directory/Verisign.jar:.;export CLASSPATH</code></li>
<li>As I mentioned, I had a lot of trouble getting the CLASPATH to stick.  I couldn&#8217;t even run the binary from another directory - even if I speicified the full path to it.  In the end, the following sequence was the most reliable means of running a successful transaction:
<p><code>$ cd /path/to/binary/</code></p>
<p><code>$ CLASSPATH=${CLASSPATH:-}:Verisign.jar:/path/to/directory/Verisign.jar:.;export CLASSPATH</code></p>
<p><code>$ java PFProJava test-payflow.verisign.com 443 "USER=YourUserName&#038;VENDOR=YourVendorName&#038;PARTNER=YourPartnerName&#038;PWD=YourPassword&#038;TRXTYPE=S&#038;TENDER=C&#038;ACCT=5105105105105100&#038;EXPDATE=1209&#038;AMT=1.23&#038;ZIP=12345&#038;comment1=Test JNI Transactions" 30</code></p>
<p>Again, I&#8217;d gladly welcome suggestions as to how to make this work more fluidly.</li>
</ol>
<p>That&#8217;s that.  You&#8217;ve got it installed.  The following code will suffice to call it from PHP:</p>
<p><code>$pfpro_path = '/path/to/directory';</code></p>
<p><code>$pfpro_server = 'test-payflow.verisign.com'; // for test transactions.  Change this for live transactions.</code></p>
<p><code>$vars = '?your=values&#038;to=submit&#038;to=verisign'; // build this string appropriately from your variables according to the payflow documentation, and don't forget to run escapeshellcmd() on each one, since we'll be passing this to exec().</code></p>
<p><code>$cmd = 'cd "' . $pfpro_path . '; "; CLASSPATH=${CLASSPATH:-}:"' . $pfpro_path . '}Verisign.jar":.; export CLASSPATH; cd "' . $pfpro_path . '"; java PFProJava ' . $pfpro_server . ' 443 "' . $vars . '"'</code></p>
<p><code>$result_code = exec($cmd, $result_string);</code></p>
<p>Phew!</p>
<p>Good luck&#8230;. and if you happen to figure out that whole path issue, drop me a line!</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/installing-payflow-pro-on-mac-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Subversion on OS X, Part 2: Your First Project</title>
		<link>http://triopter.com/archive/subversion-on-os-x-part-2-your-first-project/</link>
		<comments>http://triopter.com/archive/subversion-on-os-x-part-2-your-first-project/#comments</comments>
		<pubDate>Fri, 29 Dec 2006 20:45:55 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[os x]]></category>

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

		<guid isPermaLink="false">http://triopter.com/archive/subversion-on-os-x-part-2-your-first-project/</guid>
		<description><![CDATA[I ran into some permissions problems trying to actually get a project into the repository, so I thought I&#8217;d walk through how to get things working in just one try instead of twenty:

Do Not put your repository under your Apache web root, or any virtual host web root.  Just don&#8217;t.  It won&#8217;t work.
Apache [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into some permissions problems trying to actually get a project into the repository, so I thought I&#8217;d walk through how to get things working in just one try instead of twenty:</p>
<ol>
<li><strong>Do Not</strong> put your repository under your Apache web root, or any virtual host web root.  Just don&#8217;t.  It won&#8217;t work.</li>
<li>Apache needs read and write permissions on your Subversion directory.  The simplest but perhaps not the most secure way to do this is, after you create the repository, to change the owner of the repository directory and all its contents to the user that Apache runs as (in my case, <code>www</code>).
<p>If you want to still be able to write directly to it (for instance, to set up the configuration) without sudo-ing, you can change the group permissions to allow a group that you&#8217;re a member of to write to it.  (Like I said, this is probably not the most secure way to do things, but it&#8217;s the easiest, and probably fine for something that&#8217;s carefully limited to your own machine.  I hate dealing with file permissions, so I set it up the lazy way.)</p>
<p>You can do all of this with OS X&#8217;s &#8220;Get Info&#8221;, or on the command line with <code>chown -R</code> and <code>chgrp -R</code></li>
<li>In your repository, find <code>conf/svnserve.conf</code>, and uncomment the following lines:
<p><code>anon-access = read<br />
auth-access = write<br />
password-db = passwd</code></li>
<li>Now open conf/passwd and add a line to the bottom with the format:
<p><code>username = password</code></p>
<p>subtituting, of course, the username and password that you want to use to access your repository.  You can add additional lines for additional users.</li>
<li>The SVNbook recommends creating <code>trunk</code>, <code>branches</code>, and <code>tags</code> subdirectories for each project in your repository, although this is by no means required.  I don&#8217;t ancipate doing a huge amount of branching, but I figured it couldn&#8217;t hurt.
<p>The easiest way to get this set up, if you have already started your project somewhere and can&#8217;t change its location without breaking things because of absolute path configurations, is as follows:</p>
<ol type="a">
<li>Create a <code>tmp</code> directory on your desktop.</li>
<li>Inside <code>tmp</code>, create a directory with the name of your project.  You&#8217;ll be happiest if this is short and doesn&#8217;t include any spaces.</li>
<li>Inside the project directory, create <code>trunk</code>, <code>branches</code>, and <code>tags</code> directories.</li>
<li><code>svn import . --username YOURUSERNAME --password YOURPASSWORD  http://localhost:81/svn -m "repository layout for PROJECTNAME"</code>, substituting the appropriate username, password, and projectname.  If you&#8217;re using a different URL for your repository, substitute that too, of course.</li>
</ol>
</li>
<li>You may want Subversion to ignore particular types of files.  For instance, with Django, I&#8217;m working with Python, which creates a compiled bytecode file for each script, with the extension <code>.pyc</code>.  These don&#8217;t need to be versioned because each one is recreated automatically from the script every time you change it and run it.
<p>Different languages and project types will have different files to ignore.  There are also OS metadata files like OS X&#8217;s <code>.DS_Store</code> and Windows&#8217; <code>Thumbs.db</code> that you probably don&#8217;t want to carry around either.</p>
<p>This is set up on the client side, and you&#8217;ll probably want to take care of it before importing or adding anything beyond that skeletal directory structure.</p>
<p>Open <code>~/.subversion/config</code>, and locate the <code>[miscellany]</code> section.  In there is a line, possibly commented out, that looks something like this:</p>
<p><code># global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store</code></p>
<p>Uncomment the line if it&#8217;s commented out, and add <code>.DS_Store</code> (if it&#8217;s not already there) and <code>*.pyc</code> to the end, so it looks something like this:</p>
<p><code>global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.pyc</code></p>
<p>While you&#8217;ve got the file open, you might want to scroll up to the <code>[helpers]</code> section, and uncomment the <code>editor-cmd</code> line, and set it to use your editor of choice.</li>
<li>OK, we need to import our project now.
<p>First, <code>cd</code> into the parent directory of your project directory, and check out the trunk of the project (since the trunk is empty, this will do nothing except create a <code>.svn</code> directory in the project directory, so subversion can handle it properly as a &#8220;working copy.):</p>
<p><code>svn checkout http://localhost:81/svn/PROJECTNAME/trunk PROJECTDIR</code></p>
<p>Then, <code>cd</code> into the project directory and tell Subversion to add everything from your project to the repository.  For each subdirectory of the project that you want under version control (Subversion will recursively add directory contents):</p>
<p><code>svn add SUBDIRNAME</code></p>
<p>Then add the files that live in the root in the project directory that you want versioned.  I had a couple files I wanted to ignore (such as my sqlite database), so I just added the Python scripts:</p>
<p><code>svn add *.pyc</code></p>
<p>Then commit everything:</p>
<p><code>svn commit -m "Adding initial project files"</code></p>
<p>And you&#8217;re done!
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/subversion-on-os-x-part-2-your-first-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Six Steps to a Subversion Server on OS X with Darwinports</title>
		<link>http://triopter.com/archive/six-steps-to-a-subversion-server-on-os-x-with-darwinports/</link>
		<comments>http://triopter.com/archive/six-steps-to-a-subversion-server-on-os-x-with-darwinports/#comments</comments>
		<pubDate>Fri, 29 Dec 2006 06:32:32 +0000</pubDate>
		<dc:creator>Noemi Millman</dc:creator>
		
		<category><![CDATA[darwinports]]></category>

		<category><![CDATA[os x]]></category>

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

		<guid isPermaLink="false">http://triopter.com/archive/six-steps-to-a-subversion-server-on-os-x-with-darwinports/</guid>
		<description><![CDATA[I&#8217;ve tried on at least three separate occasions to set up a CVS repository on my computer, but each time I&#8217;ve completely given up, mostly because getting the darn thing configured properly just seems to be beyond my abilities.
But besides that, CVS is really obsolete at this point, and Subversion has really taken over its [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve tried on at least three separate occasions to set up a CVS repository on my computer, but each time I&#8217;ve completely given up, mostly because getting the darn thing configured properly just seems to be beyond my abilities.</p>
<p>But besides that, CVS is really obsolete at this point, and Subversion has really taken over its status as the de facto standard for free, open-source revision control software.</p>
<p>Installation was yet another project that turned out to be super-easy with a little help from Darwinports.</p>
<p>Here&#8217;s the full set of steps to install:</p>
<ol>
<li>
<p><a href="http://triopter.com/archive/adventures-in-darwinports-installing-apache2-php5-mysql-41-postgresql-and-django/">Grab Apache 2 off Darwinports</a> and get it running separately from the default OS X Apache 1.3 installation (PHP, MySQL, et al entirely optional).  Darwinports&#8217; Apache automatically includes <code>mod_dav</code>, which you&#8217;ll need.</p>
</li>
<li>
<p>Install Subversion and Apache&#8217;s dav_svn_module:</p>
<p><code>sudo port install subversion +mod_dav_svn</code></p>
<p>Darwinports&#8217; Subversion conveniently includes both server and client.  Spiffy.</p>
</li>
<li>
<p>Decide where your repository is going to live.  I set up a directory under my user directory, with the full path <code>/Users/myusername/svn</code></p>
</li>
<li>
<p>Configure Apache to work with Subversion.  First, add the following to the bottom of the list of <code>LoadModule</code> directives in <code>httpd.conf:</code></p>
<p><code>LoadModule dav_svn_module     modules/mod_dav_svn.so</code></p>
<p>Then add the following to the end of <code>httpd.conf:</code></p>
<p><code>&lt;Location /svn &gt;# I think you can change "/svn" to whatever you want the path to be on your server.<br />
DAV svn<br />
SVNPath /Users/myusername/svn/ # Change this to the path you chose in Step 3, of course<br />
&lt;/Location&gt;</code></p>
<p>If you want to keep your repository private &#8212; i.e. only accessible from the machine it&#8217;s hosted on, you can add a few lines, like so:</p>
<p><code>&lt;Location /svn &gt;# I think you can change "/svn" to whatever you want the path to be on your server.<br />
DAV svn<br />
SVNPath /Users/myusername/svn/ # Change this to the path you chose in Step 3, of course</p>
<p>Order Deny,Allow<br />
Deny from all<br />
Allow from 127.0.0.1<br />
&lt;/Location&gt;</code></p>
</li>
<li>
<p>Create your repository:</p>
<p><code>svnadmin create --fs-type fsfs /Users/myusername/svn</code></p>
</li>
<li>
<p>Restart Apache</p>
</li>
</ol>
<p>Whee, that was easy.</p>
<p>Browse to <code>http://localhost:81/svn</code> (substitute the appropriate port, of course, if you configured Apache differently) &#8212; and if you get something that looks like a really simple webpage, you&#8217;re set.</p>
<p>I&#8217;m kind of in love with Darwinports right now, in case you haven&#8217;t noticed.  Next challenge: actually configuring a Subversion repository.  I&#8217;m seriously crossing my fingers that this is easier than CVS.</p>
]]></content:encoded>
			<wfw:commentRss>http://triopter.com/archive/six-steps-to-a-subversion-server-on-os-x-with-darwinports/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
