<?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>rtraction - London, Ontario - Web Design, Web Development and Strategic Consulting &#187; Noah</title>
	<atom:link href="http://www.rtraction.com/blog/author/noah/feed" rel="self" type="application/rss+xml" />
	<link>http://www.rtraction.com/blog</link>
	<description>rtraction blog - Web Design, Web Development and Strategic Consulting</description>
	<lastBuildDate>Fri, 25 Nov 2011 15:08:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DemoCampGuelph</title>
		<link>http://www.rtraction.com/blog/ourtraction/democampguelph.html</link>
		<comments>http://www.rtraction.com/blog/ourtraction/democampguelph.html#comments</comments>
		<pubDate>Fri, 29 Jan 2010 18:48:51 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[OurTraction]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/?p=1506</guid>
		<description><![CDATA[On Wednesday, Gavin and I had the pleasure of attending DemoCampGuelph at The eBar in downtown Guelph. This was the first time either of us had been to this type of event, which was of the BarCamp variety. A BarCamp is an informal gathering in a public space, usually a bar, where demos, discussion and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://democampguelph.com/" target="_blank"><img class="alignright size-full wp-image-1555" title="DemoCampGuelph" src="http://www.rtraction.com/blog/wp-content/uploads/2010/01/democamp.png" alt="DemoCampGuelph" width="289" height="163" align="right"/></a>On Wednesday, <a href="http://www.rtraction.com/about-us/team-bios.htm#gavin">Gavin</a> and I had the pleasure of attending <a href="http://democampguelph.com/" target="_blank">DemoCampGuelph</a> at The eBar in downtown Guelph. This was the first time either of us had been to this type of event, which was of the <a href="http://barcamp.org/" target="_blank">BarCamp</a> variety. A BarCamp is an informal gathering in a public space, usually a bar, where demos, discussion and general socializing take place.</p>
<p>The event in Guelph is organized primarily by <strong><a href="http://shiftmode.com/" target="_blank">Brydon Gilliss</a></strong> (twitter: <a href="http://twitter.com/Brydon" target="_blank">@Brydon</a>). There were a limited number of presenters and we were among the privileged few who were chosen to show off what we&#8217;ve been working on. There was a variety in the types of projects: some, like ours, were pure software and others combined software and hardware.</p>
<p><strong><a style="margin: 0 10px 10px 0;" href="http://www.horsepigcow.com/" target="_blank">Tara Hunt</a></strong> (twitter: <a href="http://twitter.com/missrogue" target="_blank">@missrogue</a>)<br />
<a style="margin: 0 10px 10px 0;" href="http://www.horsepigcow.com/" target="_blank"><img align="left" class="alignleft size-full wp-image-1561" title="Tara Hunt" src="http://www.rtraction.com/blog/wp-content/uploads/2010/01/tara_hunt.jpg" alt="" width="120" height="120" style="padding-right: 10px;"  /></a>First up was the special guest speaker, Tara Hunt. Tara is the author of <a href="http://www.amazon.ca/gp/product/0307409503?ie=UTF8&amp;tag=rtraction08-20&amp;linkCode=as2&amp;camp=15121&amp;creative=390961&amp;creativeASIN=0307409503" target="_blank">The Whuffie Factor</a>, and had many interesting things to say about social media as it applies to individuals and companies. Regarding individuals branding themselves, she said &#8220;Who needs a personal brand? Get a personality!&#8221; To business, the comment was simpler but along the same line &#8220;Stop being robots&#8221;. Basically what she was saying to everyone is to be authentic. Whether we work for a small company, large corporation or are self-employed, we are still human beings with our own interests, passions and even flaws. She used the example of <a href="http://www.whuffaoke.com/" target="_blank">karaoke</a> and how it allows people to relate to her better. Social media does more than just connect people, it embraces the human factor in everything we do.</p>
<p><strong><a href="http://tinyhippos.com/" target="_blank">Tiny Hippos</a></strong> (twitter: <a href="http://twitter.com/tinyHippos" target="_blank">@tinyHippos</a>)<br />
This group built a browser plugin for mobile website and widget developers to aid in the laborious process of testing with multiple devices. This saves the time and effort of running multiple emulators. This project was still in its early stages and we were among some of the first to see it in action.</p>
<p><strong><a href="http://www.berryblab.com/BlackBerry.aspx" target="_blank">BerryBlab</a></strong> (twitter: <a href="http://twitter.com/berryblab" target="_blank">@berryblab</a>)<br />
BerryBlab is a clean easy-to-use BlackBerry application to read <a href="http://www.vbulletin.com/" target="_blank">vBulletin</a> forums. This program has a clear purpose and achieves it well.</p>
<p><strong><a href="http://www.compo.st" target="_blank">Compost</a></strong> (twitter: <a href="http://www.twitter.com/compostr" target="_blank">@compostr</a>)<br />
This was our presentation of our new opensource web design feedback tool. The hardest part was demoing in under 15 minutes, including setup and questions. After taking a quick tour through the demo website, we fielded several questions from the audience.<br />
My two favourite questions were (paraphrasing a bit):<br />
<strong>Q:</strong> What distinguishes Compost from similar software, such as ConceptShare or others?<br />
<strong>A:</strong> Ours is free.<br />
<strong>Q:</strong> How do you plan to make money off this product?<br />
<strong>A:</strong> We don&#8217;t. The time savings of using the program translate to money indirectly, but the code itself is opensource under GPL3 and free for anyone to use.</p>
<p><strong><a href="http://www.jaxcore.com/" target="_blank">JaxCore</a></strong> (twitter: <a href="http://twitter.com/jaxcore" target="_blank">@jaxcore</a>)<br />
JaxCore is looking to change the way web development is done by introducing a new language. The biggest challenge we can see is getting programmers to let go of their favourite programming languages.</p>
<p><strong><a href="http://snapsort.com/" target="_blank">SnapSort</a></strong> (twitter: <a href="http://twitter.com/snapsort" target="_blank">@snapsort</a>)<br />
This is a camera comparison website with a bit different spin than many others. The application looks at the specs and compares them weighted by what&#8217;s actually important to consumers. If you&#8217;ve ever tried to compare cameras online, you&#8217;ve experienced the frustration of trying to figure out what any of the stats actually mean. This site might help me in finally deciding which digital SLR to buy.</p>
<p><strong><a href="http://www.tony.thompson.name/2010/01/little-robots-hardware/" target="_blank">Little Robots</a></strong> (twitter: <a href="http://twitter.com/tonious" target="_blank">@tonious</a>)<br />
<a href="http://www.tony.thompson.name/2010/01/little-robots-hardware/" target="_blank"><img class="alignleft size-full wp-image-1562" align="left" title="Little Robots" src="http://www.rtraction.com/blog/wp-content/uploads/2010/01/littlerobots.jpg" alt="" width="120" height="120" style="padding-right: 10px;"  /></a>This was a very interesting demo, though very hard to see in the packed room. He addressed the basic issue of subtle communication between individuals. The developer built two little robots, one for his fiancé and another for himself. By pushing the belly-button on his robot, his fiancé&#8217;s robot waves at her, and vice-versa. Very cool. But since I know little about hardware, I&#8217;ll stick with text messaging my girlfriend for now.</p>
<p>All around, it was a great event and I would love to see a DemoCampLondon. We have a number of specialized user groups: one for <a href="http://groups.drupal.org/london-ontario" target="_blank">Drupal</a>, another for <a href="http://www.forestcityasp.net/" target="_blank">.NET</a>, and of course many great networking groups such as the <a href="http://www.meetup.com/LondonSocialMedia/" target="_blank">GeekDinner</a>, but nothing quite along these lines. Seeing a variety of cool products in development in a casual grassroots manner was a different experience and one I look forward to next time.</p>
<p><img align="left" class="alignnone size-full wp-image-1559" title="democampcrowd" src="http://www.rtraction.com/blog/wp-content/uploads/2010/01/democampcrowd.jpg" alt="" width="680" height="313" /></p>
<div style="text-align: right; color: #ACACAC; font-size: 12px;">photo by <a href="http://www.monsterfarming.com/democamp-guelph-roundup/" target="_blank">MonsterFarm</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/ourtraction/democampguelph.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Drupal CCK Select Values to an Array</title>
		<link>http://www.rtraction.com/blog/devit/drupal-cck-select-values-to-an-array.html</link>
		<comments>http://www.rtraction.com/blog/devit/drupal-cck-select-values-to-an-array.html#comments</comments>
		<pubDate>Mon, 11 Jan 2010 20:12:14 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Devit!]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[cck]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[option]]></category>
		<category><![CDATA[select]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/?p=1396</guid>
		<description><![CDATA[I really enjoy using CCK to define custom content types and it is usually does the trick all on its own. However, sometimes I need to get the field data out in some other way. This example retrieves CCK select options and returns them as an associative array, which can then be used in a [...]]]></description>
			<content:encoded><![CDATA[<p>I really enjoy using CCK to define custom content types and it is usually does the trick all on its own. However, sometimes I need to get the field data out in some other way. This example retrieves CCK select options and returns them as an associative array, which can then be used in a custom form or elsewhere. </p>
<p><code>
<pre>
function _module_events_types_array() {
	$query = "SELECT global_settings
		FROM {content_node_field} AS cnt
		WHERE cnt.field_name = 'field_meeting_type'";

	$queryResult = db_query($query);

	while ($meeting_types = db_fetch_object($queryResult)) {
		$meetings = unserialize($meeting_types->global_settings);
	}
	$meeting_list = explode("\n", $meetings['allowed_values']);
	$meeting_array = array("" => "All Meeting Types");
	foreach($meeting_list as $meeting_type)
	{
		$meeting = explode("|", $meeting_type);
		$meeting_array = array_merge($meeting_array,
			array($meeting[0]=>$meeting[1]));
	}

	return $meeting_array;
}
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/drupal-cck-select-values-to-an-array.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Disabling WYSIWYG on comment field in Drupal 6</title>
		<link>http://www.rtraction.com/blog/devit/disabling-wysiwyg-on-comment-field-in-drupal-6.html</link>
		<comments>http://www.rtraction.com/blog/devit/disabling-wysiwyg-on-comment-field-in-drupal-6.html#comments</comments>
		<pubDate>Mon, 01 Jun 2009 15:53:00 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/?p=289</guid>
		<description><![CDATA[Integration of wysiwyg editors into Drupal continues to evolve and we can expect to see even more improvements in Drupal 7. In Drupal 6, the TinyMCE module was discontinued and the WYSIWYG module has taken its place. The WYSIWYG module works as an api for integrating editors such as TinyMCE, FCKeditor, markItUp, NicEdit and Whizzywig.
One [...]]]></description>
			<content:encoded><![CDATA[<p>Integration of wysiwyg editors into Drupal continues to evolve and we can expect to see even more improvements in Drupal 7. In Drupal 6, the TinyMCE module was discontinued and the <a href="http://drupal.org/project/wysiwyg" target="_blank">WYSIWYG module</a> has taken its place. The WYSIWYG module works as an api for integrating editors such as TinyMCE, FCKeditor, markItUp, NicEdit and Whizzywig.</p>
<p>One important feature that WYSIWYG lacks is the ability to exclude certain form fields. We ran into this issue when we wanted to disable wysiwyg formatting on the comments field. There had been suggestions <a href="http://drupal.org/node/460726" target="_blank">here</a> and <a href="http://drupal.org/node/320794" target="_blank">here</a> on the drupal forums about setting a <strong>#wysiwyg</strong> attribute; this we tried with no success. Another suggestion was to use the <a href="http://drupal.org/project/better_formats" target="_blank">Better Formats module</a>, but the thought of adding yet another module for something so simple wasn&#8217;t very appealing.</p>
<p>In the end, we ended up writing a small amount of code to achieve this. We added the following function to our custom module. What we&#8217;re doing here is removing the &#8216;format&#8217; entirely from the comments field. If you needed to alter a different form, replace <strong>comment-form</strong> with the id of your form and <strong>comment_filter</strong> with your field. You may need to try a <code>print_r($form_id)</code> to find out the id of your form item.</p>
<pre><code>function my_module_form_alter($form_id, &amp;$form) {
  if ($form_id['#id'] == 'comment-form') {
    $form_id['comment_filter']['format'] = array();
  }
}</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/disabling-wysiwyg-on-comment-field-in-drupal-6.html/feed</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Drupal &#8211; Import data into nodes and content types</title>
		<link>http://www.rtraction.com/blog/devit/drupal-import-data-into-nodes-and-content-types.html</link>
		<comments>http://www.rtraction.com/blog/devit/drupal-import-data-into-nodes-and-content-types.html#comments</comments>
		<pubDate>Mon, 09 Feb 2009 19:17:23 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/?p=130</guid>
		<description><![CDATA[Importing data into Drupal can be a bit complicated because of node revisions. The trick is that the data needs to be inserted into the node and the node revisions tables, and the two need to reference each other. This becomes even more complicated when using custom content types which also need to reference these [...]]]></description>
			<content:encoded><![CDATA[<p>Importing data into Drupal can be a bit complicated because of node revisions. The trick is that the data needs to be inserted into the node and the node revisions tables, and the two need to reference each other. This becomes even more complicated when using custom content types which also need to reference these nodes.</p>
<p>The function <em>insert_node()</em> takes the node title, body, content type (such as &#8216;page&#8217; or &#8216;event&#8217;), and optionally the date (as a unix timestamp). It uses two global variables for the ids so that you can reference the &#8216;nid&#8217; and &#8216;vid&#8217; values for the inserted rows in other functions, as illustrated in the example <em>insert_special_node().<br />
</em></p>
<div class="wp_syntax">
<div class="code">
<pre class="php">function insert_node($title, $type, $body, $date = '')
{
	global $insert_id, $insert_revision_id; //nid and vid

	if ($date == '')
	{
		$sql = 'INSERT INTO node (title, type, uid, created, changed) VALUES (\'' . $title . '\', \'' . $type . '\', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())';
	} else {
		$sql = 'INSERT INTO node (title, type, uid, created, changed) VALUES (\'' . $title . '\', \'' . $type . '\', 1, ' . $date . ', ' . 	$date . ')';
	}

	$result = db_query($sql);
	$insert_id = mysql_insert_id();

	$sql = 'INSERT INTO node_revisions (nid, title, uid, body, teaser) VALUES (' . $insert_id . ', \'' . $title . '\', 1, \'' . $body . '\', \'' . $body . '\')';
	$result = db_query($sql);
	$insert_revision_id = mysql_insert_id();

	if ($insert_id &gt; 0)
	{
		$sql = 'UPDATE node SET vid = ' . $insert_revision_id . ' WHERE nid = ' . $insert_id;
		$result = db_query($sql);
	}
}

//example usage of insert_node with a sample content type called 'special'
function insert_special_node()
{
	global $insert_id, $insert_revision_id; //nid and vid
	$content_type = 'special';

	//use mysql_real_escape_string() to clean user text for database insert
	//this is mainly useful when inserting data read from another database query
	$title = mysql_real_escape_string('title');
	$body = mysql_real_escape_string('body text');
	$special_text = mysql_real_escape_string('test');

	insert_node($title, $content_type, $body);

	$sql = 'INSERT INTO content_type_special (vid, nid, field_special_value) VALUES (' . $insert_revision_id . ', ' . $insert_id . ', \'' . $special_text . '\')';

	$result = db_query($sql);
}</pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/drupal-import-data-into-nodes-and-content-types.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Drupal &#8211; Replace node link text with image on view</title>
		<link>http://www.rtraction.com/blog/devit/drupal-replace-node-link-text-with-image-on-view.html</link>
		<comments>http://www.rtraction.com/blog/devit/drupal-replace-node-link-text-with-image-on-view.html#comments</comments>
		<pubDate>Mon, 09 Feb 2009 16:29:39 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/?p=113</guid>
		<description><![CDATA[Drupal Views are great for their flexibility and ease of use. It&#8217;s often useful to output a teaser with a &#8216;read more&#8217; link back to the node. Somtimes we need to link to a node from an image instead of text. Drupal doesn&#8217;t provide an option for an image link but it&#8217;s pretty simple to [...]]]></description>
			<content:encoded><![CDATA[<p>Drupal <a href="http://drupal.org/project/views" target="_blank">Views </a>are great for their flexibility and ease of use. It&#8217;s often useful to output a teaser with a &#8216;read more&#8217; link back to the node. Somtimes we need to link to a node from an image instead of text. Drupal doesn&#8217;t provide an option for an image link but it&#8217;s pretty simple to override the template file. The code below will replace the link text with an image.</p>
<p>Create a new php file in your themes folder with the name of the field view you want to override. In most cases, the name will contain <span style="font-style: italic;">view-node</span>. You can see the theming information by going into the view, and clicking <strong>Theme: Information</strong> under <em>Basic Settings</em>.<br />
ie. <span style="font-weight: bold;">views-view-field&#8211;front-blocks&#8211;view-node.tpl.php</span></p>
<div class="wp_syntax">
<div class="code">
<pre class="php">//output image link instead of text
$field_text = $field-&gt;options['text'];
$image_file = '/images/but_' . strtolower($field_text) . '.gif';
$field_image = '&lt;img src="/' . path_to_theme() . $image_file . '" alt="'
. $field_text . '" border="0" /&gt;';
$new_output = str_replace($field_text, $field_image, $output);

print $new_output;</pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/drupal-replace-node-link-text-with-image-on-view.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creating random test data</title>
		<link>http://www.rtraction.com/blog/devit/creating-random-test-data.html</link>
		<comments>http://www.rtraction.com/blog/devit/creating-random-test-data.html#comments</comments>
		<pubDate>Wed, 28 May 2008 17:51:59 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[Devit!]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/devit/creating-random-test-data.html</guid>
		<description><![CDATA[Generating large amounts of test data is a common necessity but doesn&#8217;t need to be a painful one. We&#8217;ve written several custom solutions in the past but have recently come across a web-based Data Generator that takes this further.
Dummy users, addresses, alpha-numeric values, and strings can be created easily through a form. The program isn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.generatedata.com" target="_blank" title="Data Generator 2.0"><img src="http://www.rtraction.com/blog/wp-content/uploads/2008/06/d20.gif" title="Data Generator 2.0" alt="Data Generator 2.0" align="left" border="0" hspace="5" /></a>Generating large amounts of test data is a common necessity but doesn&#8217;t need to be a painful one. We&#8217;ve written several custom solutions in the past but have recently come across a web-based <a href="http://www.generatedata.com" title="Data Generator 2.0" target="_blank">Data Generator</a> that takes this further.</p>
<p>Dummy users, addresses, alpha-numeric values, and strings can be created easily through a form. The program isn&#8217;t limited by presets:  custom data of almost any type can be defined and randomly created with a few clicks.</p>
<p>Once generated, the data can be exported in a number of useful formats, including SQL, CSV, and XML. You can also save your options for use later on.</p>
<p>There are two options to using the program. It can either be installed directly on a <a href="http://en.wikipedia.org/wiki/LAMP_(software_bundle)" title="Linux-Apache-MySQL-PHP" target="_blank">LAMP server</a> or you can set up an account for a fee.  It&#8217;s released as donationware under a GNU license.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/devit/creating-random-test-data.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Font Conversion</title>
		<link>http://www.rtraction.com/blog/designbynumbers/font-conversion.html</link>
		<comments>http://www.rtraction.com/blog/designbynumbers/font-conversion.html#comments</comments>
		<pubDate>Tue, 20 May 2008 18:48:45 +0000</pubDate>
		<dc:creator>Noah</dc:creator>
				<category><![CDATA[DesignbyNumbers]]></category>

		<guid isPermaLink="false">http://www.rtraction.com/blog/designbynumbers/font-conversion.html</guid>
		<description><![CDATA[The Web and Fonts
While fonts are a common and important element of design, translating that concept to the web can sometimes be a challenge. As the web has always had poor font support, there have been a number of ways to work around this. Common solutions are to generate an image using the font, such [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The Web and Fonts</strong></p>
<p>While fonts are a common and important element of design, translating that concept to the web can sometimes be a challenge. As the web has always had poor font support, there have been a number of ways to work around this. Common solutions are to generate an image using the font, such as with PHP&#8217;s GD library or rending a Flash shockwave movie with the font. The problem is that many of these solutions require a specific font format.</p>
<p>While the design world has moved on to the more flexible OpenType format, much of the programming world is using tools that rely on TrueType. Even graphics software giant Adobe has been slow to adopt OpenType in all of its applications, such as Flash CS3 which still only supports TrueType and Type 1.</p>
<p><strong>Enter Font Conversion</strong></p>
<p><span id="more-83"></span></p>
<p>There are a number of font creation and conversion products on the market. Twelve years ago, Macromedia had a program called Fontographer which did a great job while it was under active development. That was essentially what we were looking for: a basic program that could edit fonts and export them in a large variety of formats, preferably open-source.</p>
<p><a href="http://www.rtraction.com/blog/wp-content/uploads/2008/05/screenshot-fontforge.png" title="FontForge screenshot" rel="lightbox[83]"><img src="http://www.rtraction.com/blog/wp-content/uploads/2008/05/screenshot-fontforge.png" title="FontForge screenshot" alt="FontForge screenshot" hspace="10" align="right" border="1" /></a><a href="http://fontforge.sourceforge.net/" target="_blank">FontForge</a> is a pretty close match to what we wanted. The problem is that it is built to run under unix. They have a package that can run under Windows but requires the <a href="http://www.cygwin.com/" target="_blank">Cygwin emulation layer</a>. This is large and overly-complex install with many options &#8211; not really suitable for one occasional use tool.</p>
<p>We decided to install it on a <a href="http://www.vmware.com/appliances/directory/1224" target="_blank">Ubuntu virtual machine</a> that we run using <a href="http://www.vmware.com/download/player/" target="_blank">VMWare Player</a>. In addition to saving the overhead of running this on our Windows-based production machines, it is a much easier install on Ubuntu. It was as easy as choosing <strong>System-&gt;Synaptic Package Manager</strong>, searching for <strong>fontforge</strong>, and marking it for installation. All the prerequisites get installed automatically. The application itself can be found under <strong>Applications-&gt;Graphics-&gt;FontForge</strong>.</p>
<p><strong>Converting The Font</strong></p>
<p>Converting the font was pretty simple. It was just a matter of opening a known font type, selecting <strong>File-&gt;Generate Font</strong>, and saving the font in the desired format, in our case, TrueType. Each member of the font family has to be converted separately, so it&#8217;s not a good application for batch conversion. However, our needs were very specific and we just needed the one font.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rtraction.com/blog/designbynumbers/font-conversion.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

