<?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>John Bullitt / Earth Sound &#187; technical notes</title>
	<atom:link href="http://www.jtbullitt.com/projects/category/tech/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jtbullitt.com/projects</link>
	<description>Earth • Sound • Mind</description>
	<lastBuildDate>Wed, 05 May 2010 01:20:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP &amp; MySQL Quickies</title>
		<link>http://www.jtbullitt.com/projects/tech/php-mysql-quickies</link>
		<comments>http://www.jtbullitt.com/projects/tech/php-mysql-quickies#comments</comments>
		<pubDate>Sat, 15 Nov 2008 21:45:06 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Quickie]]></category>
		<category><![CDATA[Webdev]]></category>

		<guid isPermaLink="false">http://www.jtbullitt.com/projects/?p=443</guid>
		<description><![CDATA[<p>More stuff I tend to forget... </p>

Launch the MySQL daemon

% sudo /usr/local/bin/mysqld_safe
[type ^Z]
% bg


Stop the MySQL daemon

% mysqladmin shutdown -p
[type in the password when prompted]
% mysqld --skip-grant-tables



Change MySQL's root password

% mysqladmin -u root -p password NEW_PASSWORD
[type in the old password [...]]]></description>
			<content:encoded><![CDATA[<p>More stuff I tend to forget... </p>
<dl>
<dt>Launch the MySQL daemon</dt>
<dd>
<div class='code'>% sudo /usr/local/bin/mysqld_safe
[type ^Z]
% bg
</div>
</dd>
<dt>Stop the MySQL daemon</dt>
<dd>
<div class='code'>% mysqladmin shutdown -p
[type in the password when prompted]
% mysqld --skip-grant-tables
</div>
</dd>

<dt>Change MySQL's root password</dt>
<dd>
<div class='code'>% mysqladmin -u root -p password NEW_PASSWORD
[type in the old password when prompted]
</div>
</dd>

<dt>Backup a MySQL database</dt>
<dd>
<div class='code'>% mysqldump --opt -uUSERNAME -pPASSWORD -h HOSTNAME DBNAME > db.txt
% zip db.zip db.txt
</div>
If you can't remember USERNAME, PASSWORD, HOSTNAME, or DBNAME, you can find them in (for example) your WordPress <code>wp-config.php</code> file.
</dd>

<dt>During installation phpMyAdmin says "#2002 &mdash; The server is not responding (or the local MySQL server's socket is not correctly configured)":</dt> 
<dd>
<div class="framed">
<img src="/images/phpmyadmin-error-message.gif" alt="" title="phpmyadmin-error-message" width="500" height="120" />
</div>
I don't claim to understand this one at all.  But some combination of these seem to do the trick: 
<ol>
<li>
Log on as root and create the file <code>/etc/my.cnf</code>. Insert these lines into the file:
<div class='code'>[client]
socket=/var/mysql/mysql.sock
[mysqld]
socket=/var/mysql/mysql.sock

</div>
</li>

<li>Look at <code>/etc/php.ini</code> and find the line concerning "Default socket name for local MySQL connects". There should be nothing after the equals sign:
<div class='code'>
mysql.default_socket = 
</div>
</li>

<li>Execute phpinfo() and examine all the references to <code>mysql</code>. Look for any weirdnesses and inconsistencies there. Make sure the mysql socket names and directory paths all make sense with your php installation.</li>

</ol>
</dd>

 <dt>Check your PHP configuration</dt> 
<dd>Create a text file containing the following single line of code: 
<div class='code'>
&lt;?php  phpinfo() ?&gt;
</div>
Name the file something useful like <code>phpinfo.php</code> and load it into your browser.
</dd>


<dt>Handy references</dt>
<dd>
<ul>
<li><a class='offsite' href="http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/">Working with PHP 5 in Mac OS X 10.5 (Leopard)</a></li>
</ul>
</dd>

</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/php-mysql-quickies/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache web server not finding my &#8220;icons&#8221; directory</title>
		<link>http://www.jtbullitt.com/projects/tech/apache-not-finding-my-icons</link>
		<comments>http://www.jtbullitt.com/projects/tech/apache-not-finding-my-icons#comments</comments>
		<pubDate>Thu, 23 Oct 2008 15:57:21 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Webdev]]></category>

		<guid isPermaLink="false">http://www.jtbullitt.com/projects/?p=387</guid>
		<description><![CDATA[<p>I like to keep icons for a website in a top-level directory named icons. Trouble is, when the server tries to fetch anything from that dir, it either spews a "not found" error or, in the case of images, simply [...]]]></description>
			<content:encoded><![CDATA[<p>I like to keep icons for a website in a top-level directory named <code>icons</code>. Trouble is, when the server tries to fetch anything from that dir, it either spews a "not found" error or, in the case of images, simply doesn't display the image.</p>
<p><strong>Problem:</strong> The Apache web server isn't finding a website's top-level directory named <code>/icons</code>.</p>
<p><strong>Cause:</strong> By default, Mac OS X 10.5.5's Apache server has <code>/icons</code> aliased to <code> /usr/share/httpd/icons/</code>. The server will thus always look there, instead of in your <code>/icons</code> directory.</p>
<p><strong>Fix:</strong> Disable this alias. Launch Terminal,  edit the file <code>/etc/apache2/extra/httpd-autoindex.conf</code>, and change this line </p>
<p class='code'>Alias /icons/ "/usr/share/httpd/icons/"</p>

to this:

<p class='code'># Alias /icons/ "/usr/share/httpd/icons/"</p>
<p>(The '#' is Apache's "comment" character. Apache treats the rest of the line as a comment, and ignores it.) Now restart Apache (<code>apachectl graceful</code>). Your browser should now find your icons just fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/apache-not-finding-my-icons/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The best tutorial for installing GD into PHP on Leopard</title>
		<link>http://www.jtbullitt.com/projects/tech/installing-gd-library-into-php-on-leopard</link>
		<comments>http://www.jtbullitt.com/projects/tech/installing-gd-library-into-php-on-leopard#comments</comments>
		<pubDate>Mon, 20 Oct 2008 20:23:09 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Webdev]]></category>

		<guid isPermaLink="false">http://www.jtbullitt.com/projects/?p=305</guid>
		<description><![CDATA[<p>No, I didn't write it. It's "Adding GD library for Mac OS X Leopard" from the Mac OS help and tips website.</p>

<p>Let me explain. Mac OS X 10.5 (Leopard) ships with PHP 5.2 installed, but without the useful GD graphics [...]]]></description>
			<content:encoded><![CDATA[<p>No, I didn't write it. It's "<a href="http://macoshelp.blogspot.com/2008/02/adding-gd-library-for-mac-os-x-leopard.html" class='offsite'>Adding GD library for Mac OS X Leopard</a>" from the <a href="http://macoshelp.blogspot.com" class='offsite'>Mac OS help and tips</a> website.</p>

<p>Let me explain. Mac OS X 10.5 (Leopard) ships with PHP 5.2 installed, but without the useful GD graphics library. Most of the GD installation tutorials I found on the web involve an intimidating series of steps that require downloading a bunch of supporting libraries, compiling them, then re-compiling PHP. Although K&eacute;nior's tutorial <a href="http://www.kenior.com/macintosh/adding-gd-library-for-mac-os-x-leopard" class='offsite'>"Adding GD Library for Mac OS X Leopard"</a> seems to have worked for many people, it never quite worked for me; after many careful tries, I kept getting Apache errors (as seen in <code>/var/error/apache2/error_log</code>)  that prevented GD from successfully loading:</p>

<div class='code'>PHP Warning:  PHP Startup: Unable to load dynamic library 
&nbsp; &nbsp; '/usr/lib/php/extensions/no-debug-non-zts-20060613/gd.so' - 
&nbsp; &nbsp; (null) in Unknown on line 0
</div>

<p>So, after much hair-pulling, I finally found the wonderfully simple tutorial on <a href="http://macoshelp.blogspot.com" class='offsite'>Mac OS help and tips</a>: <a href="http://macoshelp.blogspot.com/2008/02/adding-gd-library-for-mac-os-x-leopard.html" class='offsite'>Adding GD library for Mac OS X Leopard</a>. It calls for simply (1) downloading a fresh PHP installation that has GD already compiled-in, and (2) using it to replace the existing PHP folder in <code>/usr/local</code>. I had PHP up and running with GD in about one minute.</p>

<p>What could be simpler?</p>

]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/installing-gd-library-into-php-on-leopard/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quickie: using SVN for website development</title>
		<link>http://www.jtbullitt.com/projects/tech/svn-for-website-development</link>
		<comments>http://www.jtbullitt.com/projects/tech/svn-for-website-development#comments</comments>
		<pubDate>Mon, 17 Mar 2008 11:08:52 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Quickie]]></category>
		<category><![CDATA[Webdev]]></category>

		<guid isPermaLink="false">http://tech.jtbullitt.com/?p=31</guid>
		<description><![CDATA[<p>It only took me about a decade, but I finally made the switch to using version control to manage the development of my websites. Looking back, I can only wonder what took me so long. Now I use Subversion. I [...]]]></description>
			<content:encoded><![CDATA[<p>It only took me about a decade, but I finally made the switch to using version control to manage the development of my websites. Looking back, I can only wonder what took me so long. Now I use <a href='http://subversion.tigris.org/' title='' class='offsite' target='offsite' >Subversion</a>. I am happy. Why? Here are some reasons:</p>

<ul>
<li>It provides a seamless way for several people to collaborate on the same project without stepping on each other's toes. (Have you ever had a collaborator delete one of your crucial files?)</li>
<li>You can easily document the changes you make to your code.</li>
<li>If you make a mistake, You can easily "roll back" to an earlier version.</li>
</ul>

<p>Making the switch to Subversion is well worth the modest effort required. (If <i>I</i> can do it, so can you.) This "Quickie" article will take you through (1) creating an online repository for your site; (2) creating a development site for doing live testing on your live server; and (3) using Subversion in routine development work. There are, doubtless, other, better, ways to accomplish all this, but this is what has worked for me.</p>

<h3>Assumptions in this article</h3>
<ul>
<li>You have a basic grasp of what Subversion is, what it's for, and (roughly) how to use it</li>
<li>Subversion is installed on your server and on your local computers</li>
<li>You have a site (we'll call it <code>www.example.com</code>) that's already up and running on your Apache server. I'll also assume your site lives in the server directory <code>~/example.com</code> (i.e., in your home directory)</li>
<li>You have login (shell) access to the server</li>
</ul>

<h3>Setup</h3>
<p>For starters, you'll need to create two new sub-domains. Follow your web host's instructions about how to do that:</p>
<ol>
<li>Create two new sub-domains: <code>svn.example.com</code> (for your svn repository) and <code>dev.example.com</code> (for your development site). [If you're using DreamHost, go to your webpanel and select <b>Domains &raquo; Manage Domains &raquo; Add New Domain/Sub-Domain</b>.] It's a good idea to password-protect your dev site, so that only you and your co-developers have  access to your not-quite-ready-for-prime-time version of the site.</li>
<li>Create a new Subversion project. We'll give it the id "myproject", and install it to the <code>svn.example.com</code> URL. (Don't forget the username and password you choose here!) [If you're using DreamHost, you can create a new Subversion project right from your webpanel:  select <b>Goodies &raquo; Subversion</b>.]</li>
</ol>

<p>The rest of the setup happens through the login shell on your server. So log on to your server and do the following:</p>
<ol start='3'>
<li>To hide the Subversion directories from web browsers, create (or edit) the <code>.htaccess</code> file in <code>~/dev.example.com</code>. Add the following line:
<p class='code'>RedirectMatch 403 /\.svn.*$
</p>
</li>
<li>Add this line also to the <code>.htaccess</code> file in <code>~/www.example.com</code>.</li>


<li>Create an empty trunk/branch/tag directory structure as the initial import into the project. (In the following, "YOURNAME" is your svn username.)
<p class='code'>% cd
% mkdir tmp
% cd tmp
% mkdir branches trunk tags
% svn import . --username YOURNAME -m "initial import" \

http://svn.example.com/myproject

Authentication realm: &lt;http://svn.example.com:80&gt; My Project
Password for 'YOURNAME': {enter password}
Adding         trunk
Adding         branches
Adding         tags
Committed revision 1.
% cd ..
% /bin/rm -fr tmp
</p>
</li>
<li>Now go ahead and import your current site (<code>www.example.com</code>) into the repository:
<p class='code'>% cd ~/www.example.com
% svn import . --username YOURNAME -m "importing website" \

http://svn.example.com/myproject/trunk

</p>
<p>If your site contains some dirs that you want to exclude from the development version (e.g., wordPress),  you might prefer to import the site on a directory-by-directory basis:</p>
<p class='code'>% cd ~/www.example.com
% svn import ./keep_me1 --username YOURNAME \
-m "importing keep_me1 directory" \

http://svn.example.com/myproject/trunk/keep_me1

% svn import ./keep_me2 --username YOURNAME \
-m "importing keep_me2 directory" \

http://svn.example.com/myproject/trunk/keep_me2

</p>
<p>Or, to be more efficient about it, you could run a little shell script like this:</p>
<p class='code'>#!/bin/tcsh -f
foreach d ( some_dir another_dir yet_another_dir  ) {
	svn import $d --username YOURNAME -m "importing $d directory" \

http://svn.example.com/myproject/trunk/${d}

}
</p>
</li>
<li>Checkout a working copy to the development site <code>(dev.example.com)</code>:
<p class='code'>% svn co http://svn.example.com/myproject/trunk ~/dev.example.com</p>
</li>
</ol>

<p>Your dev site <code>(dev.example.com)</code> now contains a full working copy of the latest revision of your site.</p>

<h3>Routine workflow</h3>

<ol>
<li>Checkout a working copy from the repository to your local machine. (I recommend the <a href='http://www.lachoseinteractive.net/en/community/subversion/svnx' title='' class='offsite' target='offsite' >svnX</a> GUI client for the Mac.)</li>
<li>Develop and test your code, etc., on your local machine.</li>
<li>At logical stages (say, when you fix a bug or finish writing a new function), commit your changes to the repository. Some good habits to practice: (1) <i>Always</i> <code>update</code> your working copy before each <code>commit</code>. Always jot down a meaningful comment with each <code>commit</code>. (Instead of saying "Fixed a bug", say "Fixed function Foo() in bar.php that had wrong mySQL query.")</li>
<li>Log on to your server and update the development site:
<p class='code'>% svn up ~/dev.example.com</p>
</li>
<li>View the dev site. You may discover bugs on the dev site that weren't apparent on your local machine. (They might be using different versions of Apache, PHP, mySQL, etc.) If there are bugs to be worked out, iron them out on  your local working copy (i.e., go back to Step 2).</li>
<li>If you're satisfied that your dev site is good to go, then either checkout a copy to your live deployment site:
<p class='code'>% svn co http://svn.example.com/myproject/trunk ~/www.example.com</p> 
or update the copy already in your deployment site:
<p class='code'>% svn up ~/www.example.com</p>
</li>
<li>Double-check that the deployment site (<code>http://www.example.com</code>) is working to your satisfaction. If it's not, go back to Step 2. If it is OK, you're  done!</li>
</ol>
<p>The development cycle is now much simpler and safer. If you go on the road, just checkout a working copy onto your laptop, make your changes, and commit them back to the repository when you get the chance. If you (or your collaborator) made a mistake 6 revisions ago, just tell <code>svn</code> to checkout or update to an earlier revision.</p>
<p>Nice!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/svn-for-website-development/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Quickie: mySQL &amp; PhpMyAdmin setup</title>
		<link>http://www.jtbullitt.com/projects/tech/quick-and-dirty-mysql-phpmyadmin-setup</link>
		<comments>http://www.jtbullitt.com/projects/tech/quick-and-dirty-mysql-phpmyadmin-setup#comments</comments>
		<pubDate>Fri, 29 Feb 2008 22:32:58 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Quickie]]></category>
		<category><![CDATA[Webdev]]></category>

		<guid isPermaLink="false">http://tech.jtbullitt.com/?p=32</guid>
		<description><![CDATA[<p class='notebox'>
Note: For a much simpler, clearer, better tutorial on all this, please see "Working with PHP 5 in Mac OS X 10.5 (Leopard)".</p>

<p>These notes are based on my experience installing and configuring mySQL and phpMyAdmin on my Mac (Dual [...]]]></description>
			<content:encoded><![CDATA[<p class='notebox'>
<span style='font-weight:bold;'>Note:</span> For a much simpler, clearer, better tutorial on all this, please see "<a href='http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105' title='' class='offsite' target='offsite' >Working with PHP 5 in Mac OS X 10.5 (Leopard)</a>".</p>

<p>These notes are based on my experience installing and configuring <a href='http://www.mysql.com/' title='' class='offsite' target='offsite' >mySQL</a> and <a href='http://www.phpmyadmin.net' title='' class='offsite' target='offsite' >phpMyAdmin</a> on my Mac (Dual PowerPC G5 / OS X 10.4.11). Maybe they'll also be helpful to you. They are no substitute for the "official" installation instructions. They are strictly "as-is". Use at your own risk. Mileage may vary, etc.</p>

<dl>


<dt>Preliminaries:</dt>

<dd>

<ol>
<li>Make sure your local web server is turned on. (Open the "Sharing" panel in your System Preferences, and make sure the "Personal Web Sharing" item is checked. Note: this is where you can also change your computer's name.)</li>

<li>Point your browser to <a href='http://localhost'>http://localhost</a> . If you haven't already configured a local website, you'll get the default Apache web page (<code>~/Sites/index.html</code>).</li>
</ol>
</dd>


<dt>Installing mySQL</dt>

<dd>
<ol>
<li><a class='offsite' href='http://www.mysql.com/'>Get the latest version</a>.</li>

<li>Double-click the <code>.dmg</code> file to mount the mySQL disk image</li>

<li>There are two mySQL packages in the disk image file. Double-click the one named <code>mysql-foo.pkg</code>, where <code>foo</code> contains this mySQL version number and your OS.</li>

<li>Follow the installer instructions. This installs mySQL in <code>/usr/local/mysql</code></li>

<li>Add <code>/usr/local/mysql/bin</code> to your shell's search path (if you don't know how to do this, see the <code>ReadMe.txt</code> file).</li>

<li>In Terminal:
<p class="code">% sudo /usr/local/mysql/bin/mysqld_safe  # (enter password, if asked)
% ^Z   # suspend the daemon
% bg   # resume daemon as a background task
</p>
</li>

<li>Create mysql's "root" user. In Terminal:
<p class="code">% sudo mysqladmin -u root password somePassword</p>
<p>Here "somePassword" is a password for mysql's "root" user. This "root" is <i>not</i> the same as the system's "root" user. Go figure. Read <a class='offsite' href='http://developer.apple.com/internet/opensource/osdb.html'>Apple's docs</a> for more details.</p>
</li>

<li>Test the installation. In Terminal:
<p class="code">% mysql -u root somePassword  	# test mysql</p>
<p>This should spit out a list of mysql options and variable settings. If not, you'll have to find some more in-depth docs. (Start with the <code>ReadMe.txt</code>.) Sorry.</p>
</li>
</ol>
</dd>


<dt>Installing PhpMyAdmin</dt>

<dd>
<ol>
<li><a class='offsite' href='http://www.phpmyadmin.net'>Get the latest version</a>.</li>

<li>Unzip the file into <code>~/Sites</code> .</li>

<li>This creates a directory with a long and hard-to-remember name. Rename it <code>phpMyAdmin</code>.</li>

<li>In Terminal:
<p class="code">% cd ~/Sites/phpMyAdmin
% mkdir config		# create directory for saving
% chmod o+rw config	# give it world writable permissions
</p>
</li>

<li>Point your browser to <a href='http://localhost/~YOURUSERNAME/phpMyAdmin'>http://localhost/~YOURUSERNAME/phpMyAdmin</a> </li>

<li>You should see a "Welcome to phpMyAdmin" page. It will probably contain an "Access denied" error message because you haven't created a config file. Click on the link to the "setup script".</li>

<li>In the "Servers" row, click the "Add" button. To avoid having to enter a password each time you run phpMyAdmin, enter the mySQL "root" password in the "Password for config auth" field. You can accept all the other defaults. Click the green "Add" button.</li>

<li>Click the "Save" button in the "Configuration" row.</li>

<li>In terminal:
<p class='code'>
% cd ~/Sites/phpMyAdmin
% mv config/config.inc.php .
</p>
<p>The phpMyAdmin docs go further, and ask you to do this:</p>
<p class='code'>
% chmod o-rw config.inc.php	# remove world read and write permissions
</p>
<p>But when I do that, phpMyAdmin is denied access. Since I'm hiding behind a firewall I'm not going to worry about those permissions right now....</p>
</li>
</ol>
<p>If you point your browser to <a href='http://localhost/~YOURUSERNAME/phpMyAdmin'>http://localhost/~YOURUSERNAME/phpMyAdmin</a> you might get this error message:</p>
<p class='code'>
MySQL said:
#2002 - The server is not responding
(or the local MySQL server's socket is not correctly configured)
</p>
<p>If so, do the following (courtesy of <a href='http://bvanscoter.blogspot.com/2007/10/pip-my-sequel-trouble.html' title='' class='offsite' target='offsite' >Ben VanScoter</a>):</p>
<p class='code'>
% sudo mkdir /var/mysql
% sudo ln /tmp/mysql.sock /var/mysql/mysql.sock
% sudo apachectl graceful
/usr/sbin/apachectl graceful: httpd gracefully restarted
%
</p>
<p>Works for me.</p>
</dd>

</dl>

<p>Now you'll be able to create and manage mySQL databases using phpMyAdmin, to your heart's content.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/quick-and-dirty-mysql-phpmyadmin-setup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quickie: virtual host setup</title>
		<link>http://www.jtbullitt.com/projects/tech/quickie-virtual-host-setup</link>
		<comments>http://www.jtbullitt.com/projects/tech/quickie-virtual-host-setup#comments</comments>
		<pubDate>Wed, 27 Feb 2008 03:05:15 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Quickie]]></category>
		<category><![CDATA[Webdev]]></category>

		<guid isPermaLink="false">http://tech.jtbullitt.com/2008/02/26/quickie-virtual-host-setup/</guid>
		<description><![CDATA[<p>The Mac is a great platform for website development. You keep each site that you're working on in a separate folder in your ~/Sites folder. You edit and debug them locally and then, when everything's good to go, you just [...]]]></description>
			<content:encoded><![CDATA[<p>The Mac is a great platform for website development. You keep each site that you're working on in a separate folder in your <code>~/Sites</code> folder. You edit and debug them locally and then, when everything's good to go, you just ftp the files up to your live server, or commit your changes to your svn repository. Easy.</p>
<p>But eventually you may want to use server-side includes (SSI) to generate standard headers or footers on your pages. SSI are probably readily available on your webhost's server, but to get them working on your Mac requires one small step: you have to configure Apache to activate a virtual server for each of your sites. Don't panic; it's easy to do.</p>
<p>Let's say you have a site installed at <code>~yourname/Sites/project1</code>. And let's say the site's pages have a standard footer, which is contained in the file <code>~yourname/Sites/project1/includes/footer.html</code>. You'd like to be able to put the following SSI line in every file on your site:</p>
<p class='code'>&lt;!--#include virtual="/includes/footer.html" --&gt;
</p>
<p>Trouble is, the server interprets that path as relative to the DocumentRoot setting in your Apache configuration. On the Mac, the default setting (in <code>/etc/httpd.conf</code>) is</p>
<p class='code'>DocumentRoot "/Library/WebServer/Documents"</p>
<p>So when you load a page from the site, the server looks for your footer in <code>/Library/WebServer/Documents/includes/footer.html</code>. Since that's not where your footer lives, you'll probably just get this unhelpful error:</p>
<p class='code'>[an error occurred while processing this directive]</p>
<p>You <i>could</i> move your includes into <code>/Library/WebServer/Documents</code>, but that's a supremely bad idea; you'll soon go crazy keeping track of all your files scattered across the filesystem. Instead, take 2 minutes to do things properly, by setting up a virtual host on your Mac. This will allow you to set the <code>DocumentRoot</code> for each of your web projects. Here's how:</p>
<ol>
<li>Open Terminal and type: <code>cd /etc/httpd/users</code>.
You should see a file in there with a name like <code>yourname.conf</code> where "yourname" is your Mac user name.</li>

<li>Type <code>sudo vi yourname.conf</code> and enter your password, if asked.</li>

<li>Insert the following lines at the end of the file
<p class='code'>NameVirtualHost 127.0.0.1:80
&lt;VirtualHost project1&gt;
	ServerName project1
	DocumentRoot /Users/yourname/Sites/project1
&lt;/VirtualHost&gt;
</p>
<p>(If you have more sites, just add more &lt;VirtualHost&gt; blocks.)</p>
<li>Save and quit (type <code>:wq</code>)</li>

<li>Restart Apache: <code>sudo apachectl graceful</code></li>

<li>Finally, edit your hosts file (<code>sudo vi /etc/hosts</code>) and insert the following lines at the end:
<p class='code'>127.0.0.1       project1
</p>
<p>(If you have more sites, just add more lines in that format. For example, <code>127.0.0.1       project2</code>, etc.)</p>

</li>

<li>Now  point your browser to <a href='http://project1'>http://project1</a> and your SSI include files will be correctly displayed.</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/quickie-virtual-host-setup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alesis ADAT HD24: ProTools WAV file transfer via ftp</title>
		<link>http://www.jtbullitt.com/projects/tech/alesis-adat-hd24-transferring-protools-wav-files-via-ftp</link>
		<comments>http://www.jtbullitt.com/projects/tech/alesis-adat-hd24-transferring-protools-wav-files-via-ftp#comments</comments>
		<pubDate>Sat, 10 Nov 2007 12:54:25 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://tech.jtbullitt.com/?p=56</guid>
		<description><![CDATA[<p>After many wrong turns and much hair-pulling, here&#8217;s how I managed to upload ProTools sound files from my Mac to the Alesis ADAT HD24. Here are some notes to spare me (and possibly you?) future grief.</p>

Bounce desired audio from ProTools [...]]]></description>
			<content:encoded><![CDATA[<p>After many wrong turns and much hair-pulling, here&#8217;s how I managed to upload ProTools sound files from my Mac to the <a href='http://www.alesis.com/hd24' title='' class='offsite' target='offsite' >Alesis ADAT HD24</a>. Here are some notes to spare me (and possibly you?) future grief.</p>
<ul>
<li>Bounce desired audio from ProTools to WAV files. [I haven't tried this with AIFF.]</li>
<li>For each file: import it into <a href='http://audacity.sourceforge.net' title='' class='offsite' target='offsite' >Audacity</a> and export it as a WAV file. [For some reason, the ADAT HD24 doesn't recognize WAV files created by ProTools &mdash; the ftp client hangs after a few hundred bytes into the upload.]</li>
<li>Rename the files as described in the HD24 manual (&#8220;TrackXX.wav&#8221; &mdash; refer to p.86 of the manual). [The ADAT HD24 doesn't recognize WAV files created by ProTools &mdash; I can't even upload them.]</li>
<li>Connect the HD24 to the Mac via an ethernet hub. [I simply could <i>not</i> establish a direct ethernet connection, with either a direct or a crossover cable.]</li>
<li>Use <a href='http://audacity.fetchsoftworks.com' title='' class='offsite' target='offsite' >Fetch</a>  to upload files to the appropriate directory. [<a href='http://cyberduck.ch' title='' class='offsite' target='offsite' >Cyberduck</a> connects with the HD24 OK, but it displays each folder in the HD24 as empty!]</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/alesis-adat-hd24-transferring-protools-wav-files-via-ftp/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Alesis ADAT HD24: How to loop playback of two songs</title>
		<link>http://www.jtbullitt.com/projects/tech/alesis-adat-hd24-how-to-loop-playback-of-two-songs</link>
		<comments>http://www.jtbullitt.com/projects/tech/alesis-adat-hd24-how-to-loop-playback-of-two-songs#comments</comments>
		<pubDate>Sat, 10 Nov 2007 12:53:04 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Audio]]></category>

		<guid isPermaLink="false">http://tech.jtbullitt.com/?p=55</guid>
		<description><![CDATA[<p>Although the Alesis ADAT HD24 lets you loop the playback of a single song (or a region therein), it doesn&#8217;t let you loop several songs in a row. The solution is conceptually simple, if a bit cumbersome in practice: merge [...]]]></description>
			<content:encoded><![CDATA[<p>Although the <a href='http://www.alesis.com/hd24' title='' class='offsite' target='offsite' >Alesis ADAT HD24</a> lets you loop the playback of a single song (or a region therein), it doesn&#8217;t let you loop several songs in a row. The solution is conceptually simple, if a bit cumbersome in practice: merge (i.e., concatenate) the two songs into new song, and loop that one.</p>
<p>Here&#8217;s how to concatenate two songs. We&#8217;ll assume that Drive1 contains &#8220;Song1&#8243; and &#8220;Song2&#8243;, and that Drive2 has enough free space for one copy of Song1 and <i>two</i> copies of Song2.</p>
<ol>
<li>Select Drive1 and copy Song1 and Song2 to Drive2. [see p. 54 in the manual]</li>
<li>Select Drive2. (From here on we&#8217;ll only need Drive2)</li>
<li>Select song &#8220;Song1&#8243; and rename it to &#8220;Merge&#8221; [p. 33]</li>
<li>Select song &#8220;Song2&#8243; and write-protect it</li>
<li>Set the <b>Edit Start</b> and <b>Edit End</b> points to each end of &#8220;Song2&#8243; [p. 56]</li>
<li>Select a track (or group of tracks) to copy.</li>
<li><b>Copy</b></li>
<li>Select song &#8220;Merge&#8221;</li>
<li>Set <b>Edit Start</b> to the <i>end</i> of &#8220;Merge&#8221;.</li>
<li>Select the track(s) to paste (must be the same as the track(s) you selected in step 6!).</li>
<li><b>Paste</b></li>
</ol>
<p>(If your songs are long, your HD24&#8217;s copy/paste buffer may not be large enough to copy and paste all your tracks at once, and you&#8217;ll get an error message. If this occurs, try copying/pasting fewer tracks at once.)</p>
<p>You&#8217;ve now appended a copy of one (or more) track(s) from &#8220;Song2&#8243; to the corresponding track(s) from &#8220;Song1&#8243;. If your songs contain additional tracks, repeat the following steps as needed:</p>
<ol>
<li>Select song &#8220;Song2&#8243;</li>
<li>Select the next track (or group of tracks) to copy</li>
<li><b>Copy</b></li>
<li>Select song &#8220;Merge&#8221;</li>
<li>Select the track(s) to paste (must be the same as the track(s) you selected in step 2!).</li>
<li><b>Paste</b></li>
</ol>
<p>Now you can create a loop for your merged song, as described on pp. 45-46 of the manual. And don&#8217;t forget to write-protect your merged song!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/alesis-adat-hd24-how-to-loop-playback-of-two-songs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ProTools: PT LE error -6093</title>
		<link>http://www.jtbullitt.com/projects/tech/protools-pt-le-error-6093</link>
		<comments>http://www.jtbullitt.com/projects/tech/protools-pt-le-error-6093#comments</comments>
		<pubDate>Sat, 23 Jun 2007 12:57:33 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[ProTools]]></category>

		<guid isPermaLink="false">http://tech.jtbullitt.com/?p=57</guid>
		<description><![CDATA[<p>While bouncing to disk, I get this error:</p>
<p class="code">The Operating System held off interrupts for too long.
If this occurs frequently, try increasing the "H/W Buffer Size"
in the Playback Engine panel. (-6093)
</p>
<p>The Digidesign website and suggests several workarounds, including:</p>

Reduce CPU Usage [...]]]></description>
			<content:encoded><![CDATA[<p>While bouncing to disk, I get this error:</p>
<p class="code">The Operating System held off interrupts for too long.
If this occurs frequently, try increasing the "H/W Buffer Size"
in the Playback Engine panel. (-6093)
</p>
<p>The Digidesign website and suggests several workarounds, including:</p>
<ul>
<li>Reduce CPU Usage to "below 95%"</li>
<li>Connect Digi 002 to FireWire port on Mac G5's <i>front panel</i></li>
<li>Reduce number of active plugins</li>
</ul>
<p>What works for me:</p>
<ul>
<li>Quit ProTools, re-launch, and try again (works <i>sometimes</i>)</li>
<li>Connect Digi 002 to FireWire port on Mac G5's front panel</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/protools-pt-le-error-6093/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Earthsound technical notes</title>
		<link>http://www.jtbullitt.com/projects/tech/earthsound-technical-notes</link>
		<comments>http://www.jtbullitt.com/projects/tech/earthsound-technical-notes#comments</comments>
		<pubDate>Fri, 01 Jun 2007 20:59:36 +0000</pubDate>
		<dc:creator>John Bullitt</dc:creator>
				<category><![CDATA[technical notes]]></category>
		<category><![CDATA[Earth tech]]></category>

		<guid isPermaLink="false">http://jtb/projects/?p=94</guid>
		<description><![CDATA[<p>An assortment of technicalia concerning the sounds of Earth.</p>

A handy toolkit





IRIS website



IDA station map




Earthquake news





IDA station worksheet



Azimuthal planning map




panQuake





Obtaining seismic data (an abbreviated HOWTO):


Review seismic event catalog
Review IRIS data holdings by station
Place breq_fast request
Check order status
Download  order





Handy calculators
<p></p>
<p></p>





	Convert from [...]]]></description>
			<content:encoded><![CDATA[<p>An assortment of technicalia concerning the sounds of Earth.</p>

<h2>A handy toolkit</h2>
<div style="text-align:center">
<table cellpadding="5" cellspacing="5">
<tr>
<td>
<a class="imglink" href="http://www.iris.edu/" title="Visit the IRIS website!"><img src="/images/iris-site.jpg" alt="image of the IRIS website" width="144" height="108" /></a><br />
<a href='http://www.iris.edu' title='' class='offsite' target='offsite' >IRIS website</a>
</td>
<td>
<a class="imglink" href="http://ida.ucsd.edu/IDANetwork/index.html" title="Visit the IDA website!"><img src="/images/ida-map.jpg" alt="illegible map of IDA stations" width="144" height="81" /></a><br />
<a href='http://ida.ucsd.edu/IDANetwork/index.html' title='' class='offsite' target='offsite' >IDA station map</a>
</td>
<td>
<a class="imglink" href="http://www.iris.edu/quakes/quakes.htm" title="Visit the Seismic Monitor!"><img src="/images/seismon.jpg" alt="squished image of Seismic Monitor" width="144" height="84" /></a><br />

<a href='http://www.iris.edu/quakes/quakes.htm' title='' class='offsite' target='offsite' >Earthquake news</a>
</td>
</tr>
<tr>
<td>
<a class="imglink" href="/tech/earth-sound/tools/iistations.html" title="See the map!"><img src="/images/iistations_t.gif" alt="squished image of station worksheet" width="144" height="128" /></a><br />
<a href="/tech/earth-sound/tools/iistations.html" title="See the worksheet!">IDA station worksheet</a>
</td>
<td>
<a class="imglink" href="/tech/earth-sound/tools/ii_azimuth.gif" title="See the map!"><img src="/images/ii_azimuth_t.gif" alt="squished image of azimuthal planning map" width="144" height="151" /></a><br />
<a href="/images/ii_azimuth.gif" title="See the map!">Azimuthal planning map</a>
</td>
<td>
<a class="imglink" href="/tech/panQuake.php?col=0&amp;az=0&amp;tilt=0" title="See the calculator!"><img src="/images/panQuake_t.jpg" alt="squished image of panQuake" width="144" height="128" /></a><br />

<a href="/tech/earth-sound/tools/panQuake.php?col=0&amp;az=0&amp;tilt=0" title="See the calculator!">panQuake</a>
</td>
</tr>
</table>
</div>
<dl>
<dt>Obtaining seismic data (an abbreviated HOWTO):</dt>
<dd>
<ol>
<li><a href='http://www.iris.edu/quakes/eventsrch.htm' title='See what happened where and when!' class='offsite' target='offsite' >Review seismic event catalog</a></li>
<li><a href='http://www.iris.edu/SeismiQuery/day_f.html' title='See what data are available!' class='offsite' target='offsite' >Review IRIS data holdings by station</a></li>
<li><a href='mailto:breq_fast@iris.washington.edu' title='Submit your order!' class='offsite' target='offsite' >Place breq_fast request</a></li>
<li><a href='http://www.iris.edu/data/data.htm' title='Check your order status!' class='offsite' target='offsite' >Check order status</a></li>
<li><a href='ftp://ftp.iris.washington.edu/pub/userdata' title='Download your order!' class='offsite' target='offsite' >Download  order</a></li>

</ol>
</dd>
</dl>

<h2>Handy calculators</h2>
<p><a id="julian" name="julian"></a></p>
<p><script type="text/javascript" src="/js/tech/julian.js"></script></p>



<div class='notebox'>
<form class='controlPanel' action='#julian' id='julian' name='julian'>
	<h1>Convert from calendar date to Julian day</h1>
		<div class='dataInput'>
			<fieldset>
				<legend>Enter calendar date</legend>
				<table>
					<tr>
						<td class='txt'><label for='date'>DD/MM/YYYY : </label> </td>
						<td><input class='txt' type="text" name="nmonth" value="11" size="3" /> / <input class='txt' type="text" name="nday" value="10" size="3" /> / <input class='txt' type="text" name="nyear" value="2001" size="5" /> <input type="hidden" class="hidden" name="nhour" value="0" /> <input type="hidden" class="hidden" name="nminute" value="0" /> <input type="hidden" class="hidden" name="nsecond" value="0" /></td>
					</tr>
					<tr>
						<td class='txt'><label for='today'><i>or</i> click for today's date:</label></td>
						<td><input type="button" class='btn' value="Today" onclick="gettodayandnow(this.form)" /></td>
					</tr>
					</table>
			</fieldset>
			
		</div> <!-- close .dataInput -->
		<div class='dataAction'>
			<fieldset>
				<table>

					<tr>
						<td><label for='submitform'></label><input type="button" class='btn' value="Calculate!" onclick="date_to_jday(this.form)" onmouseover="this.className='btn btnhov'" onmouseout="this.className='btn'" /></td>
					</tr>
				</table>
		</fieldset>
		</div> <!-- close .dataAction -->

	<div class='dataOutput'>
				<table>
				<tr>
						<td>Julian day number: <input type="text" name="result" size="4" /></td>
				</tr>
				</table>
		</div> <!-- close .dataOutput -->

	<p style='text-align:right'><img src='/icon/arrow_right.png' alt='' height='16' width='16' /> <a href="/js/tech/julian.js">Javascript source</a>.</p>
	
	</form>
</div>




<div class='notebox'>
<form class='controlPanel' action='#julian' id='julian' name='julian'>
	<h1>Convert from Julian day to calendar date</h1>
		<div class='dataInput'>
			<fieldset>
				<legend>Enter Julian Day</legend>
				<table>
					<tr>
						<td class='txt'><label for='date'>DDD/YYYY:</label> </td>
						<td><input type="text" name="jday" value="123" size="4" /> / <input type="text" name="nyear" value="2005" size="5" /></td>
					</tr>
				</table>
			</fieldset>
		</div> <!-- close .dataInput -->

		<div class='dataAction'>
			<fieldset>
				<table>
					<tr>
						<td><label for='submitform'></label><input type="button" class='btn' value="Calculate!" onclick="jday_to_date(this.form)" onmouseover="this.className='btn btnhov'" onmouseout="this.className='btn'" /></td>
					</tr>
				</table>
			</fieldset>
		</div> <!-- close .dataAction -->

	<div class='dataOutput'>
				<table>
				<tr>
						<td>Calendar date: <input type="text" name="result" size="12" /></td>
				</tr>
				</table>
		</div> <!-- close .dataOutput -->

		
	<p style='text-align:right'><img src='/icon/arrow_right.png' alt='' height='16' width='16' /> <a href="/js/tech/julian.js">Javascript source</a>.</p>
	
	</form>
</div>



<script type="text/javascript" src="/js/tech/scaling.js"></script>
<div class='notebox'>
	<form class='controlPanel' action='#julian' id='julian' name='julian'>
		<h1>Estimate time-scaling conversions</h1>
			<div class='dataInput'>
				<fieldset>
					<legend>Enter</legend>
					<table>
					<tr>
						<td class='txt'><label for='input_val'>Original time:</label></td>
						<td><input type="text" name="input_val" value="20" size="8" /></td>
					</tr>
					<tr>
						<td class='txt'><label for='units'>units:</label></td>
						<td>
							<input type="radio" name="units" value="Hz" />Hz</p>
							<input type="radio" name="units" value="secs" checked="checked" />secs</p>
							<input type="radio" name="units" value="mins" />mins</p>
							<input type="radio" name="units" value="hours" />hrs</p>
							<input type="radio" name="units" value="days" />days</p>
							<input type="radio" name="units" value="weeks" />weeks</p>
							<input type="radio" name="units" value="months" />months</p>
							<input type="radio" name="units" value="years" />years
						</td>
					</tr>
					<tr><td colspan='2'>&nbsp;</td></tr>
					<tr>
						<td class='txt'><label for='scale_factor'>Scaling factor:</label></td>
						<td><input type="text" name="scale_factor" value="10000" size="8" /></td>
					</tr>
					<tr>
						<td class='txt'><label for='a_or_d'>Direction:</td>
						<td>
							<input type="radio" name="a_or_d" value="accel" checked="checked" />accelerate 
							<input type="radio" name="a_or_d" value="decel" />decelerate
						</td>
					</tr>
					</table>
				</fieldset>
			</div> <!-- close .dataInput -->
	
			<div class='dataAction'>
				<fieldset>
					<table>
						<tr>
							<td><label for='submitform'></label><input type="button" class='btn' value="Calculate!" onclick="DoScaling(this.form)" onmouseover="this.className='btn btnhov'" onmouseout="this.className='btn'" /></td>
							<td><label for='reset'></label> <input class='btn' type='reset' name='myReset' value='Reset Form' size='8' onmouseover="this.className='btn btnhov'" onmouseout="this.className='btn'" /></td>
						</tr>
					</table>
				</fieldset>
			</div> <!-- close .dataAction -->
	
		<div class='dataOutput'>

				<fieldset>
					<p style='margin-left:2em;'>The time you entered will scale to any one of these equivalent units (<i>approximately</i> ~ roundoff error galore!):</p>
					<table style='margin-left:100px;'>
						<tr>
							<td><input type="text" name="Hz" size="8" /> Hz</td>
						</tr>
						<tr>
							<td><input type="text" name="secs" size="8" /> secs</td>
						</tr>
						<tr>
							<td><input type="text" name="mins" size="8" /> mins</td>
						</tr>
						<tr>
							<td><input type="text" name="hours" size="8" /> hrs</td>
						</tr>
						<tr>
							<td><input type="text" name="days" size="8" /> days</td>
						</tr>
						<tr>
							<td><input type="text" name="weeks" size="8" /> weeks</td>
						</tr>
						<tr>
							<td><input type="text" name="months" size="8" /> months</td>
						</tr>
						<tr>
							<td><input type="text" name="years" size="8" /> yrs</td>
						</tr>
					</table>
				</fieldset>
			</div> <!-- close .dataOutput -->
	
			
		<p style='text-align:right'><img src='/icon/arrow_right.png' alt='' height='16' width='16' /> <a href="/js/tech/scaling.js">Javascript source</a>.</p>
	
	</form>
</div>



<h2>Notes and emerging documentation</h2>
<ul>
<li><a href="earth-sound/deep-earth-dome"><i>Deep Earth Dome</i></a> ~ a sound installation of the seismic sounds of Earth</li>
<li><a href="earth-sound/howto"><i>Turning Earth Noise into Sound: Notes for a Future "How-to"</i></a> ~ my jottings, slowly taking shape</li>
<li><a href="earth-sound/crustal-sounds-from-turkmenistan"><i>Trucks in Turkmenistan? Forensic Seismology Brings Sound Art Down to Earth</i></a> (060817) ~ my reflections on misidentifying some mysterious "crustal chirps" from Turkmenistan</li>
<li><a href="earth-sound/sound-file-protocols-notes-to-self">Sound file protocols (notes to self)</a></li>
<li><a href="tech/speaker-placement-spherical">Determining speaker placement in a spherical model space</a></li>
<li><a href="tech/n2-speaker-geometry">Modeling a spherical space using "N+2" loudspeaker geometry</a></li></ul>

<h2>Useful references</h2>
<p>(For links to Earth sounds and sound art, see my <a href='info-about/links-of-note'>Links of Note</a>.)</p>

<ul>
<li><a href='http://www.rachelhaferkamp.de/htm/dombois/text2.htm' title='' class='offsite' target='offsite' >Auditory Seismology</a> ~ Dr. Florian Dombois's explorations with audification of seismic data</li>
<li><a href='http://desertdomes.com/domecalc.html' title='' class='offsite' target='offsite' >Dome Calculator</a> (Desert Domes) ~ a handy online JavaScript calculator for designing geodesic domes</li>
<li><a href='http://www.iris.iris.edu/sumatra/FirstPage.htm' title='' class='offsite' target='offsite' >The Great Sumatra earthquake of December 2004</a> ~ geophysical synopsis of this catastrophic event</li>
<li><a href='http://www.iris.edu/' title='' class='offsite' target='offsite' >IRIS</a> (Incorporated Research Institutions for Seismology) ~ <i>"a university research consortium dedicated to exploring the Earth's interior through the collection and distribution of seismographic data"</i></li>
<li><a href='http://www.me.umn.edu/education/courses/me5221/Tutorials/Scaling/scaling.html' title='' class='offsite' target='offsite' >"Model-Size to Full-Size Scaling"</a> by Barney E. Klamecki ~ notes for a mechanical engineering class;  applicable to acoustic Earth time- and space-scaling issues.</li>
<li><a href='http://www.okgeosurvey1.gov/level2/nuke.cat.html' title='' class='offsite' target='offsite' ><i>Oklahoma Geological Survey Observatory Catalog of Nuclear Explosions</i></a></li>
<li><a href='http://ida.ucsd.edu/AboutIDA/index.html' title='' class='offsite' target='offsite' >Project IDA</a> ~ the global broadband seismic network</li>
<li><a href='http://www.llnl.gov/sac/' title='' class='offsite' target='offsite' >SAC</a> (Seismic Analysis Code) ~ a big, powerful, and cumbersome program designed for the study of timeseries data, like seismograms. Although I don't use SAC in my earth sound work, many of the data files I work with arrive in SAC format.</li>

<li>  <a href='http://maps.google.com/maps?f=q&amp;hl=en&amp;q=mercury,+nevada&amp;ie=UTF8&amp;om=1&amp;z=13&amp;ll=37.129666,-116.065063&amp;spn=0.094571,0.169258&amp;t=h&amp;iwloc=A' title='' class='offsite imglink' target='offsite' ><img src='/icon/google.jpg' width='16' height='16' border='0' alt='[Google icon]' /> Yucca Valley</a> at the Nevada Test Site ~ (what's left of it, that is, after more than a half-century of nuclear explosions)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.jtbullitt.com/projects/tech/earthsound-technical-notes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
