<?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>Baltimore Squirrels &#187; Web Development</title>
	<atom:link href="http://www.baltimoresquirrels.com/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.baltimoresquirrels.com</link>
	<description>here squirrely, squirrely</description>
	<lastBuildDate>Thu, 20 Aug 2009 22:02:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Web Content Formatting for Non-Geeks</title>
		<link>http://www.baltimoresquirrels.com/2008/08/31/web-content-formatting-for-normals/</link>
		<comments>http://www.baltimoresquirrels.com/2008/08/31/web-content-formatting-for-normals/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 03:41:41 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Ramblings]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.baltimoresquirrels.com/?p=160</guid>
		<description><![CDATA[Providing direct ways for non-technical content creators to edit web pages has been a dilemma since the dawn of the web.  Indeed the larger problem, exposing powerful formatting and layout abilities without also exposing complex and cryptic presentation formulas, must realistically occupy a reasonably large percentage of everything we task personal computers for.  [...]]]></description>
			<content:encoded><![CDATA[<p>Providing direct ways for non-technical content creators to edit web pages has been a dilemma since the dawn of the web.  Indeed the larger problem, exposing powerful formatting and layout abilities without also exposing complex and cryptic presentation formulas, must realistically occupy a reasonably large percentage of everything we task personal computers for.  The problem is complex, and a complete solution has not yet been found, but there are a number of powerful and elegant alternatives at our disposal.  I&#8217;m going briefly discuss two options, embedded rich text editors and lightweight markup languages.  </p>

<h4>Embedded Rich Text Editors</h4>

<p>The technologies the web relies upon have steadily advanced, new more powerful tools have been created, and thanks to the ever-enduring <a href="http://en.wikipedia.org/wiki/Moores_law">Moore&#8217;s law</a> we can squeeze a great deal of functionality into a web page.  There was a time when embedding a rich text editor in a page was an excessive and extravagant feat, yet today there are a plethora of simple ways to do it.  <a href="http://tinymce.moxiecode.com/">TinyMCE</a> and <a href="http://www.fckeditor.net/"><span class="caps">FCKE</span>ditor</a> are the most popular, but many others exist (including the impressive <a href="http://developer.yahoo.com/yui/editor/"><span class="caps">YUI </span>editor</a> which I did not know about until today).  </p>

<p>Embedded rich text editors are great tools but they may not be suitable for the discerning geek.  In general these editors have a reputation for creating messy and verbose source code.  How important this really is has been and will be a subject of debate for some time, but there is no question that clean, standards-compliant code is a good thing to have.  When it comes down to it, I tend to think that if you <em>can</em> do something the right way with a reasonable amount of effort, why sacrifice correctness for a little bit of convenience?</p>

<h4>Lightweight Markup Languages</h4>

<p>When <span class="caps">HTML </span>is too verbose or complex for what you really need to accomplish, and rich text editors don&#8217;t give you the quality of code you&#8217;re looking for, you&#8217;re left with <a href="http://en.wikipedia.org/wiki/Lightweight_markup_language">lightweight markup languages</a>.</p>

<p>There are a number of different approaches to lightweight markup, in fact if you follow the Wikipedia link above you&#8217;ll possibly find more than you really care to know about, but there are only two that have emerged as the preferred choices among the current generation of web developers: <a href="http://textile.thresholdstate.com/">Textile</a> and <a href="http://daringfireball.net/projects/markdown/">Markdown</a>.  Markdown is great, but for the sake of this article I&#8217;m going to focus my attention on Textile, which is currently my favorite.</p>

<p>Textile relies on simple markup that is easy to edit in a plain text editor, or a simple textarea on a web form.  A major benefit of Textile is that it is also easy to read in it&#8217;s unprocessed form, so editing it is relatively painless and not nearly as confusing as editing raw <span class="caps">HTML. </span> The syntax is easy to pick up, and new users can typically start authoring comment with very little introduction.</p>

<p>Here is a quick example of Textile code:</p>

<div style="margin: 4px; padding: 8px;">



<pre>
h3. Sample

This is a sample paragraph, complete with *bold* text, _italic_ text,
+underlined+ text and even a &quot;link to google&quot;:http://google.com/.

For kicks, here is a second paragraph.
</pre>


</div>

<p>And this is what it looks like when displayed:</p>

<div style="margin: 4px; padding: 8px; border: 1px #999 solid;">
  <br />
h3. Sample

<p>This is a sample paragraph, complete with <strong>bold</strong> text, <em>italic</em> text, <ins>underlined</ins> text and even a <a href="http://google.com/">link to google</a>.</p>

<p>For kicks, here is a second paragraph.</p>

</div>

<p>For a complete list of Textile samples view the <a href="http://hobix.com/textile/">example-based reference</a>. </p>

<p>One of it&#8217;s greatest strengths, Textile adds a great deal in the way of proper typography.  For most of the web, trademark symbols are left as <span class="caps">TM, </span>hyphens are substituted for en-dashes and &#8220;dumb&#8221; quotes are used instead of <a href="http://www.fonts.com/aboutfonts/articles/fyti/smartquotes.htm">smart quotes</a>.  With Textile these nuances of type are easy to handle with very little effort.  A <code>(TM)</code> is automatically converted to &#8482;, a single hyphen is converted to an en-dash (two hyphens for an em-dash), and straight quotes around phrases are converted to smart quotes.  With minimal effort you get a significantly more professional result.</p>

<h4>Conclusion</h4>

<p>Lightweight markup is not without it&#8217;s shortcomings.  Rich text editors often provide enough visual aides to get people going with little or no introduction, and as I stated before the value of clean <span class="caps">HTML </span>in a web page is sometimes debated.  In addition, the nature of rich text editors leaves the door open for more powerful features, such as built-in flickr browser or point-and-click YouTube video embedding.  All the same, for most tasks, for most sites, I believe that lightweight markup languages are the best option.</p>

<h4>Links of Interest</h4>


<ul>
<li>Textile:  
<ul>
<li><a href="http://en.wikipedia.org/wiki/Textile_(markup_language)">Wikipedia entry</a></li>
<li><a href="http://textile.thresholdstate.com/">Homepage and playground</a></li>
<li><a href="http://hobix.com/textile/">Example-based reference</a></li>
</ul>
</li>
<li>Textile Alternatives
<ul>
<li><a href="http://daringfireball.net/projects/markdown/">Markdown</a></li>
<li><a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a></li>
</ul>
</li>
<li>Embedded Rich Text Editors
<ul>
<li><a href="http://kupu.oscom.org/">Kupu</a></li>
<li><a href="http://tinymce.moxiecode.com/">TinyMCE</a></li>
<li><a href="http://www.fckeditor.net/"><span class="caps">FCKE</span>ditor</a></li>
<li><a href="http://developer.yahoo.com/yui/editor/"><span class="caps">YUI</span> Rich Text Editor</a></li>
</ul>
</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.baltimoresquirrels.com/2008/08/31/web-content-formatting-for-normals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Having trouble with FlashVars and CS3?</title>
		<link>http://www.baltimoresquirrels.com/2008/02/13/having-trouble-with-flashvars-and-cs3/</link>
		<comments>http://www.baltimoresquirrels.com/2008/02/13/having-trouble-with-flashvars-and-cs3/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 18:58:07 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.baltimoresquirrels.com/2008/02/13/having-trouble-with-flashvars-and-cs3/</guid>
		<description><![CDATA[
Apparently there was some kind of mixup when they put together the Flash CS3 documentation because there is no mention of editing AC_FL_RunContent to get FlashVars to work.


I&#8217;ll state it here for anyone who is searching for answers after 2 hours of confused testing.  To use FlashVars you have to (in addition to what [...]]]></description>
			<content:encoded><![CDATA[<p>
Apparently there was some kind of mixup when they put together the Flash <span class="caps">CS3 </span>documentation because there is no mention of editing <code>AC_FL_RunContent</code> to get FlashVars to work.<br />
</p>
<p>
I&#8217;ll state it here for anyone who is searching for answers after 2 hours of confused testing.  To use FlashVars you have to (in addition to what the <span class="caps">CS3 </span>docs say) add two arguments to the <code>AC_FL_RunContent</code> call in your <span class="caps">HTML, </span>specifically <code>'FlashVars'</code> and <code>'key=value&amp;key2=value2&amp;...etc'</code> (you know, the actual vars).<br />
</p>
<p>
Granted, to any seasoned Flash developer this gotcha is probably known, but as this is the first ActionScript I&#8217;ve touched in a long time I was bitten.<br />
</p>]]></content:encoded>
			<wfw:commentRss>http://www.baltimoresquirrels.com/2008/02/13/having-trouble-with-flashvars-and-cs3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache setup for local hacking</title>
		<link>http://www.baltimoresquirrels.com/2008/01/10/apache-setup-for-local-hacking/</link>
		<comments>http://www.baltimoresquirrels.com/2008/01/10/apache-setup-for-local-hacking/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 01:13:28 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.baltimoresquirrels.com/2008/01/10/apache-setup-for-local-hacking/</guid>
		<description><![CDATA[
I do most of my local web development under my userdir (/~tvon), but I don&#8217;t like dealing with relative URLs (and some webapps prefer to think they live in your document root).  So, I fake it.



Edit /etc/hosts to give localhost some extra aliases:





127.0.0.1       localhost local1 local2 local3 local4 [...]]]></description>
			<content:encoded><![CDATA[<p>
I do most of my local web development under my userdir (<code>/~tvon</code>), but I don&#8217;t like dealing with relative <span class="caps">URL</span>s (and some webapps prefer to think they live in your document root).  So, I fake it.<br />
</p>

<p>
Edit <code>/etc/hosts</code> to give localhost some extra aliases:<br />
</p>



<pre>
127.0.0.1       localhost local1 local2 local3 local4 local5
</pre>



<p>
Then tweak apache config to add a few VirtualHosts (in this case in my home dir <code>/Users/tvon</code>):<br />
</p>



<pre>
&lt;virtualhost *&gt;
    ServerName local1
    DocumentRoot /Users/tvon/Sites/local1
&lt;/virtualhost&gt;
&lt;virtualhost *&gt;
    ServerName local2
    DocumentRoot /Users/tvon/Sites/local2
&lt;/virtualhost&gt;
&lt;virtualhost *&gt;
    ServerName local3
    DocumentRoot /Users/tvon/Sites/local3
&lt;/virtualhost&gt;
&lt;virtualhost *&gt;
    ServerName local4
    DocumentRoot /Users/tvon/Sites/local4
&lt;/virtualhost&gt;
</pre>


<p>
Now when I want to work on a site, say <code>example.com</code> (assuming it lives in the <code>example.com</code> directory under <code>/Users/tvon/Sites</code>) I symlink it to an available local alias, e.g. <code>ln -s example.com local1</code> and I can access it as a root site at http://local1/.<br />
</p>
<p>
Not very fancy, but it makes my life a little easier.<br />
</p>]]></content:encoded>
			<wfw:commentRss>http://www.baltimoresquirrels.com/2008/01/10/apache-setup-for-local-hacking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A handy shell alias when working with python</title>
		<link>http://www.baltimoresquirrels.com/2007/11/30/a-handy-shell-alias-when-working-with-python/</link>
		<comments>http://www.baltimoresquirrels.com/2007/11/30/a-handy-shell-alias-when-working-with-python/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 16:29:51 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.baltimoresquirrels.com/2007/11/30/a-handy-shell-alias-when-working-with-python/</guid>
		<description><![CDATA[
Ever want to clean out all the compiled python files out of a directory tree?  Maybe you don&#8217;t entirely trust the system you&#8217;re working on and you want to make sure the source files are being checked?  Maybe you just don&#8217;t like looking at them?  Either way, stick this in your ~/.bash_profile [...]]]></description>
			<content:encoded><![CDATA[<p>
Ever want to clean out all the compiled python files out of a directory tree?  Maybe you don&#8217;t entirely trust the system you&#8217;re working on and you want to make sure the source files are being checked?  Maybe you just don&#8217;t like looking at them?  Either way, stick this in your <code>~/.bash_profile</code> (or similar):<br />
</p>


<pre name="code">alias rmpyc=&quot;find . -name '*.pyc' -print | xargs rm -f&quot;</pre>


<p>
(Please test with <code>echo</code>, and watch out for typos, <code>rm -f</code> can be a nasty bedfellow.)<br />
</p>]]></content:encoded>
			<wfw:commentRss>http://www.baltimoresquirrels.com/2007/11/30/a-handy-shell-alias-when-working-with-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
