<?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>Huddled Masses &#187; WordPress</title>
	<atom:link href="http://joelbennett.net/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://joelbennett.net</link>
	<description>The internet home of Joel "Jaykul" Bennett...</description>
	<lastBuildDate>Fri, 27 Apr 2012 05:42:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<cloud domain='joelbennett.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Redesign &#8230; by Artisteer</title>
		<link>http://joelbennett.net/redesign-by-artisteer/</link>
		<comments>http://joelbennett.net/redesign-by-artisteer/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 04:36:09 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Application Review]]></category>
		<category><![CDATA[Artisteer]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=1198</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div id="attachment_1205" style="float:right; width:300"<a href="http://huddledmasses.org/wordpress/wp-content/uploads/2009/07/Artisteer1.png"><img src="http://huddledmasses.org/wordpress/wp-content/uploads/2009/07/Artisteer1-300x236.png" alt="Artisteer in action" title="Artisteer in action" width="300" height="236" class="size-medium wp-image-1205" /></a></div>

	<p>I recently came across a link to &#8220;<a href="http://click.linksynergy.com/fs-bin/click?id=ZzLC6sLW3Bc&#038;offerid=173903.10000001&#038;type=3&#038;subid=0" >Web Design Generator &#8211; Artisteer</a><IMG border=0 width=1 height=1 src="http://ad.linksynergy.com/fs-bin/show?id=ZzLC6sLW3Bc&#038;bids=173903.10000001&#038;type=3&#038;subid=0" >,&#8221; which I had never heard of before &#8230; I had a copy of it given to me, and I have to say that I&#8217;m really impressed! </p>

	<p>Now, before you rush out and buy this, let&#8217;s be clear, because I don&#8217;t want to <i>over</i>sell this, or rather, to mis-represent it: Artisteer is <strong>not</strong> Blend. It is not FrontPage. It is not DreamWeaver.  (It&#8217;s not trying to be). It&#8217;s a <strong>template generator,</strong> and it does a <em>great</em> job at that.  Their website says:</p>

	<ul>
		<li>Design awesome WordPress Blogs and professional Websites in Minutes</li>
		<li>No need to learn Photoshop, <span class="caps">CSS</span>, <span class="caps">HTML</span> or other technologies</li>
	</ul>
	<ul>
		<li>Export as WordPress Theme</li>
	</ul>

	<p>And it&#8217;s all true. I was able to create a slick WordPress template in just a few minutes, with really awesome integration of my own photos for the header with their watermarks and backgrounds and more, and creating custom buttons and header/menu gradients to match the link colors and all of that sort of stuff is literally as simple as selecting a color. Of course, I didn&#8217;t stop there. I spent hours playing around with all the settings and generating color-scheme after color scheme &#8212; it was actually fun, and I can&#8217;t say as I&#8217;ve ever had fun making a WordPress theme before  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=';)' class='wp-smiley' /> .</p>

	<p><span id="more-1198"></span></p>

	<p><a href="http://click.linksynergy.com/fs-bin/click?id=ZzLC6sLW3Bc&#038;offerid=173903.10000001&#038;type=3&#038;subid=0">Artisteer</a> also has pre-created color schemes, font combinations, and header/etc. so even if your sense of style is worse than mine, you could make good-looking designs in just a few minutes. When you export them as WordPress templates they include full support for &#8220;widgets&#8221; and can be multiple columns, etc.  When you export the WordPress template you can actually have them export it straight to a .zip file suitable for upload through the WordPress back-end, so there&#8217;s nothing to figure out. All for only $50, and for an extra $80, you get the additional ability to:</p>

	<ul>
		<li>Export templates for Joomla</li>
		<li>Export templates for Drupal</li>
		<li>Export templates for DotNetNuke (currently in beta)</li>
		<li>Export to a C# Asp.Net Visual Studio project (including templates for several pages and a site .master page)</li>
	</ul>
	<ul>
		<li>Export to CodeCharge Studio</li>
	</ul>

	<p>There are one thing missing from this great app (which I hope can be added in a future release, now that I own a copy): there&#8217;s no support for flexible-width layouts. You can make your layout whatever width you like, but you can&#8217;t make it flexible to the browser width.  It&#8217;s also a shame they don&#8217;t adopt Yahoo&#8217;s grid layouts &#8212; they have their own system, which works just as well, but obviously misses out the flexible-width option. Of course, if you know a little html/css you can (as I did for this theme) hack the box layout to match the <a href="http://developer.yahoo.com/yui/grids/"><span class="caps">YUI</span> Grid</a> layouts and get a flexible-width layout that way, and even add a few extra sidebars.</p>

	<p>I do have a few nits to pick that are rather minor:  </p>

	<ol>
		<li>I was annoyed that I couldn&#8217;t set the borders on some of the boxes to show only a bottom border, or only a top border (I actually hacked a couple of them after publishing it to add -moz-rounded-borders and remove borders from a few edges). </li>
		<li>I was frustrated while I was playing with it that it generated a bunch of links in the footer like &#8220;Contact us,&#8221; &#8220;Terms of Use,&#8221; and &#8220;Privacy Statement,&#8221; etc &#8230; without offering me anywhere in the app to edit either the list of links, or set an actual location for them to link to (they just link to &#8220;#&#8221;).  Once I loaded the theme in WordPress I discovered they actually provided a setting in WordPress&#8217; appearance settings where you can customize the footer, which is awesome, in that it makes the theme truly reusable, but a little heads up would have been nice, and saved me digging into the source to try to figure it out.</li>
	</ol>
	<ol>
		<li>The export option for Asp.Net should support other languages (at least VB.Net), and should include a project file for people who are starting a new site. It also needs an <span class="caps">MVC</span> option &#8212; I&#8217;m in the middle of playing with trying to use a template I created with it on an AtomSite powered project, and what I&#8217;ve discovered is that Asp.Net templates require quite a bit of tweaking to become Asp.Net <span class="caps">MVC</span> templates.</li>
	</ol>

	<p>Overall, awesome product, and very worthwhile if you create a lot of WordPress/Drupal/DotNetNuke/Joomla sites (as I do), and are tempted to splurge on for-pay themes to try to differentiate your sites (or your customer&#8217;s sites).</p>

	<p>As a final note, I just saw on their new page that they have a beta available for Mac that runs on Mono, which might make it the first Mac OS app that has the fluent ribbon interface from Office 2007  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=':P' class='wp-smiley' /> </p>

	<h4>Footnote</h4>

	<p>You may have noticed the links above are affiliate links. I think you can tell this article is just my usual opinionated review, but after I wrote it, I discovered that Artisteer has a referral program. So I signed up and I changed the links. I&#8217;m feeling ambivalent about that right now, so if you think it&#8217;s uncool of me to try and make a buck off a review, you can go straight to <a href="http://Artisteer.com">Artisteer.com</a> and avoid giving me the credit, and then let me know in the comments that I shouldn&#8217;t do that anymore.</p>

	<p>Incidentally, the referral company is LinkSynergy (<a href="http://LinkShare.com">LinkShare.com</a>) and they are totally above-board. Since I&#8217;ve already used them on this page, and because it feels recursive and redundant, here&#8217;s a link to the <a href="http://click.linksynergy.com/fs-bin/stat?id=ZzLC6sLW3Bc&#038;offerid=7097.10000015&#038;type=3&#038;subid=0" >LinkShare Referral Program</a><IMG border=0 width=1 height=1 src="http://ad.linksynergy.com/fs-bin/show?id=ZzLC6sLW3Bc&#038;bids=7097.10000015&#038;type=3&#038;subid=0" > too.</p>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/redesign-by-artisteer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress, Comments, Caching, and annoyances</title>
		<link>http://joelbennett.net/wordpress-comments-caching-and-annoyances/</link>
		<comments>http://joelbennett.net/wordpress-comments-caching-and-annoyances/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 04:07:13 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Comment]]></category>
		<category><![CDATA[Disqus]]></category>
		<category><![CDATA[Huddled Masses]]></category>
		<category><![CDATA[IntenseDebate]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://huddledmasses.org/?p=1029</guid>
		<description><![CDATA[This is just a short note to explain why I turned off IntenseDebate: it just seems to use way too much memory on my server &#8212; I had to increased the memory available to my blog twice, and was still having issues. Quite frankly, I don&#8217;t feel like I was getting anything out of using [...]]]></description>
			<content:encoded><![CDATA[	<p>This is just a short note to explain why I turned off IntenseDebate: it just seems to use way too much memory on my server &#8212; I had to increased the memory available to my blog twice, and was still having issues. </p>

	<p>Quite frankly, I don&#8217;t feel like I was getting <em>anything</em> out of using Intense Debate other than the ability for users to get notified automatically when I reply to their comments, and to get that minor feature I had to give them all my comments, and render the comments in javascript, and &#8230; yeah, well, I&#8217;m going to do without for now, and we&#8217;ll see what happens.</p>

<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/9854b384-2a2a-477a-ab71-48609540c9bb/" title="Zemified by Zemanta"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=9854b384-2a2a-477a-ab71-48609540c9bb" alt="Reblog this post [with Zemanta]" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/wordpress-comments-caching-and-annoyances/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress 2.3 Transition</title>
		<link>http://joelbennett.net/wordpress-23-transition/</link>
		<comments>http://joelbennett.net/wordpress-23-transition/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 20:28:28 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://HuddledMasses.org/jaykul/wordpress-23-transition/</guid>
		<description><![CDATA[You have to *redirect* your categories to the tags page so that user agents (browsers and RSS readers) can update their links (if they bother, _sigh_).]]></description>
			<content:encoded><![CDATA[	<p>So, I noticed WordPress 2.3 was out, and upgraded with no issues.  Of course, then I switched all my categories into tags, and changed my permalinks to leave out my nickname (something I couldn&#8217;t do with the old WordPress I was running) and things started going missing.</p>

	<p>Using some .htaccess rules I was able to redirect my category index pages to the new tag pages fairly successfully, so that people&#8217;s bookmarks and feedreaders (don&#8217;t forget people can subscribe to feeds for all of these weird index pages) in what I hope is a clean way:</p>

	<div class="apache code apache" style="font-family:monospace;"><br />
<span style="color: #adadad; font-style: italic;"># Keep this out of the wordpress section, or it will get overwritten</span><br />
&lt;<span style="color: #000000; font-weight:bold;">IfModule</span> mod_rewrite.c&gt;<br />
<span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span><br />
<span style="color: #00007f;">RewriteBase</span> /<br />
<span style="color: #adadad; font-style: italic;"># rewrite categories as tags</span><br />
<span style="color: #00007f;">RewriteRule</span> ^category/(.+)$ tag/$<span style="color: #ff0000;">1</span> [<span style="color: #00007f;">redirect</span>=permanent,last]<br />
<span style="color: #adadad; font-style: italic;"># rewrite posts by my nick to my new /%postname%/ permalinks</span><br />
<span style="color: #00007f;">RewriteRule</span> ^jaykul/(.+)$ $<span style="color: #ff0000;">1</span> [<span style="color: #00007f;">redirect</span>=permanent,last]<br />
<span style="color: #adadad; font-style: italic;"># rewrite up to four levels of nested categories as tag intersections</span><br />
<span style="color: #adadad; font-style: italic;"># But don't forget to allow access to the feeds</span><br />
<span style="color: #00007f;">RewriteRule</span> ^tag/([^/+,]+)/(?!feed|rss|rss2|atom)([^/+,]+)/?$ tag/$<span style="color: #ff0000;">1</span>+$<span style="color: #ff0000;">2</span>/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[<span style="color: #00007f;">redirect</span>=permanent,last]<br />
<span style="color: #00007f;">RewriteRule</span> ^tag/([^/+,]+)/([^/+]+)/(feed|rss|rss2|atom)/?$ tag/$<span style="color: #ff0000;">1</span>+$<span style="color: #ff0000;">2</span>/$<span style="color: #ff0000;">3</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[<span style="color: #00007f;">redirect</span>=permanent,last]<br />
<span style="color: #00007f;">RewriteRule</span> ^tag/([^/+,]+)/([^/+]+)/([^/+]+)/?$ tag/$<span style="color: #ff0000;">1</span>+$<span style="color: #ff0000;">2</span>+$<span style="color: #ff0000;">3</span>/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [<span style="color: #00007f;">redirect</span>=permanent,last]<br />
<span style="color: #00007f;">RewriteRule</span> ^tag/([^/+,]+)/([^/+]+)/([^/+]+)/(feed|rss|rss2|atom)/?$ tag/$<span style="color: #ff0000;">1</span>+$<span style="color: #ff0000;">2</span>+$<span style="color: #ff0000;">3</span>/$<span style="color: #ff0000;">4</span> &nbsp;[<span style="color: #00007f;">redirect</span>=permanent,last]<br />
<span style="color: #00007f;">RewriteRule</span> ^tag/([^/+,]+)/([^/+]+)/([^/+]+)/([^/]*)/?$ tag/$<span style="color: #ff0000;">1</span>+$<span style="color: #ff0000;">2</span>+$<span style="color: #ff0000;">3</span>+$<span style="color: #ff0000;">4</span>/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[<span style="color: #00007f;">redirect</span>=permanent,last]<br />
&lt;/<span style="color: #000000; font-weight:bold;">IfModule</span>&gt;<br />
<br />
<span style="color: #adadad; font-style: italic;"># BEGIN WordPress</span><br />
&lt;<span style="color: #000000; font-weight:bold;">IfModule</span> mod_rewrite.c&gt;<br />
<span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span><br />
<span style="color: #00007f;">RewriteBase</span> /<br />
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} !-f<br />
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} !-d<br />
<span style="color: #00007f;">RewriteRule</span> . /index.php [L]<br />
&lt;/<span style="color: #000000; font-weight:bold;">IfModule</span>&gt;<br />
<span style="color: #adadad; font-style: italic;"># END WordPress</span><br />
&nbsp;</div>

	<p>Some interesting things to note:</p>

	<ul>
		<li>You have to <strong>redirect</strong> your categories to the tags page so that user agents (browsers and <span class="caps">RSS</span> readers) can update their links (if they bother, <em>sigh</em>). </li>
		<li>You have to take special care of the fact that people can reach the rss feeds as categoryname/feed/ or categoryname/feed/rss/ or categoryname/rss/ ... </li>
		<li>You need to be careful with the redirects because you can cause infinite loops. </li>
	</ul>
	<ul>
		<li>You can link to tags and their feeds as <span class="caps">UNIONS</span> or as <span class="caps">INTERSECTIONS</span>, but not both.</li>
	</ul>

	<p>Did you know that people can navigate to pages for multiple tags? In fact, <a href="/tags/powershell+development/">/tags/powershell+development/</a> will link to items tagged with <em>both</em> powershell and development, whereas <a href="/tags/powershell,scripting/atom">/tags/powershell,scripting/atom</a> is the Atom feed for items tagged with <em>either</em> PowerShell or Scripting (or both). I wrote my rules to target the intersection, since that&#8217;s sort-of how categories worked so it most nearly preserves my previously working feeds.</p>

	<p>I also picked a random new theme, as you can see &#8212; I&#8217;ve been working on it for a couple of evenings, and there&#8217;s still more work to do. So far I&#8217;ve widget-enabled it, and partially tag-enabled it &#8230; I&#8217;m going through the process of modifying a couple of my plugins into widgets (how did I miss this so completely in the past?), and then I&#8217;ll hide that extra sidebar on the post pages, and make it variable width.</p>

	<p>I suppose I need to modify the header too, it&#8217;s hard to read, and if anyone has any ideas about a better way to present code &#8230; I&#8217;m open to suggestions.  Of course&#8230; I also need to make it all validate <span class="caps">XHTML</span> 1.1 Strict (&#8216;cause I&#8217;m like that).</p>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/wordpress-23-transition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerShell Highlighting for GeSHi</title>
		<link>http://joelbennett.net/powershell-highlighting-for-geshi/</link>
		<comments>http://joelbennett.net/powershell-highlighting-for-geshi/#comments</comments>
		<pubDate>Sun, 10 Jun 2007 03:13:56 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[GeSHi]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://HuddledMasses.org/jaykul/powershell-highlighting-for-geshi/</guid>
		<description><![CDATA[A while back I switched to GeSHi for source code highlighting in my posts, and recently I started writing PowerShell scripts in my posts, and calmly sticking it in &#60;code lang=&#8220;posh&#8221;&#62; tags, half expecting it to just work, like all the other languages &#8230; but of course it didn&#8217;t. So after a few searches on [...]]]></description>
			<content:encoded><![CDATA[	<p>A while back I switched to GeSHi for source code highlighting in my posts, and recently I started writing PowerShell scripts in my posts, and calmly sticking it in &lt;code lang=&#8220;posh&#8221;&gt; tags, half expecting it to just work, like all the other languages &#8230; but of course it didn&#8217;t.  So after a few searches on Google and Ask, I concluded that a PowerShell syntax file doesn&#8217;t yet exist.  So, <a href="http://huddledmasses.org/wordpress/wp-content/plugins/source.php?file=geshi/geshi/posh.php">I made one</a>, feel free to grab it (it&#8217;s <span class="caps">GPL</span>, and I&#8217;ve <em>even left intact the &#8220;any later version&#8221;</em> clause from GeSHi&#8217;s license).</p>

	<p><strong>EDIT: 6/10/2007</strong><br />
I should mention that the way I do highlighting doesn&#8217;t care about &#8220;Nouns&#8221; at all: it just uses a list of Verbs, and matches anything that starts with a &#8220;Verb-&#8221; ... that means that for the sake of the highlighting, you can&#8217;t just say &#8220;Content&#8221; for Get-Content or (even though that actually works in a script).  Also, I changed the version I was using so that it uses regular expression patters for command parameters, instead of a list.  Because you can abbreviate parameters to the shortest distinguishable form, a list doesn&#8217;t really work.</p>

	<p>Let&#8217;s just see in action, shall we? <span id="more-419"></span></p>

	<div class="posh code posh" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Get-Sql.ps1</span><br />
<span style="color: #666666; font-style: italic;">###################################################################################################</span><br />
<span style="color: #666666; font-style: italic;"># NOTICE that I have set default values for the server and database, but not for the query</span><br />
<span style="color: #666666; font-style: italic;"># ALSO NOTICE that I'm not handling authentication (I just use Integrated Security)</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; By default when you run this script it:</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; * creates the functions </span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; * initializes the connection</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; But we don't automatically do a query -- unless you pass one in!</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; Thus, calling the script with no parameters results in an initialized connection, </span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; but it doesn't return anything, so it's basically silent if there are no errors.</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<br />
<span style="color: #666666; font-style: italic;"># the default server and database</span><br />
<span style="color: #666699; font-weight: bold;">param</span><span style="color: #333;">&#40;</span> <span style="color: #660033; font-weight: bold;">$Server</span> <span style="color: #66cc66;">=</span> <span style="color: #009900;">&quot;.&quot;</span>, <span style="color: #660033; font-weight: bold;">$Database</span> <span style="color: #66cc66;">=</span> <span style="color: #009900;">&quot;SOMR&quot;</span>, &nbsp;<span style="color: #660033; font-weight: bold;">$Query</span> <span style="color: #333;">&#41;</span><br />
<br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># change the SqlConnection (it's set to a default when the script it run)</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666699; font-weight: bold;">function</span> global:<span style="color: #0066cc; font-style: italic;">Set-<span style="font-style: normal;">SqlConnection</span></span><span style="color: #333;">&#40;</span> <span style="color: #660033; font-weight: bold;">$Server</span> <span style="color: #66cc66;">=</span> $<span style="color: #333;">&#40;</span><span style="color: #0066cc; font-style: italic;">Read-<span style="font-style: normal;">Host</span></span> <span style="color: #009900;">&quot;SQL Server Name&quot;</span><span style="color: #333;">&#41;</span>, <span style="color: #660033; font-weight: bold;">$Database</span> <span style="color: #66cc66;">=</span> $<span style="color: #333;">&#40;</span><span style="color: #0066cc; font-style: italic;">Read-<span style="font-style: normal;">Host</span></span> <span style="color: #009900;">&quot;Default Database&quot;</span><span style="color: #333;">&#41;</span> <span style="color: #333;">&#41;</span> <span style="color: #333;">&#123;</span><br />
&nbsp; <span style="color: #660033; font-weight: bold;">$SqlConnection</span>.<span style="color: #003366;">ConnectionString</span> <span style="color: #66cc66;">=</span> <span style="color: #009900;">&quot;Server = $Server; Database = $Database; Integrated Security = True&quot;</span><br />
<span style="color: #333;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># A function to allow the user to </span><br />
<span style="color: #666666; font-style: italic;"># perform a query that returns a table full of data</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666699; font-weight: bold;">function</span> global:<span style="color: #0066cc; font-style: italic;">Get-<span style="font-style: normal;">SqlDataTable</span></span><span style="color: #333;">&#40;</span> <span style="color: #660033; font-weight: bold;">$Query</span> <span style="color: #66cc66;">=</span> $<span style="color: #333;">&#40;</span><span style="color: #0066cc; font-style: italic;">Read-<span style="font-style: normal;">Host</span></span> <span style="color: #009900;">&quot;Enter SQL Query&quot;</span><span style="color: #333;">&#41;</span><span style="color: #333;">&#41;</span> <span style="color: #333;">&#123;</span><br />
<br />
&nbsp; <span style="color: #660033; font-weight: bold;">$SqlCmd</span> <span style="color: #66cc66;">=</span> <span style="color: #0066cc; font-style: italic;">New-<span style="font-style: normal;">Object</span></span> System.<span style="color: #666699; font-weight: bold;">Data</span>.<span style="color: #003366;">SqlClient</span>.<span style="color: #003366;">SqlCommand</span><br />
&nbsp; <span style="color: #660033; font-weight: bold;">$SqlCmd</span>.<span style="color: #003366;">CommandText</span> <span style="color: #66cc66;">=</span> <span style="color: #660033; font-weight: bold;">$Query</span><br />
&nbsp; <span style="color: #660033; font-weight: bold;">$SqlCmd</span>.<span style="color: #003366;">Connection</span> <span style="color: #66cc66;">=</span> <span style="color: #660033; font-weight: bold;">$SqlConnection</span><br />
<br />
&nbsp; <span style="color: #660033; font-weight: bold;">$SqlAdapter</span> <span style="color: #66cc66;">=</span> <span style="color: #0066cc; font-style: italic;">New-<span style="font-style: normal;">Object</span></span> System.<span style="color: #666699; font-weight: bold;">Data</span>.<span style="color: #003366;">SqlClient</span>.<span style="color: #003366;">SqlDataAdapter</span><br />
&nbsp; <span style="color: #660033; font-weight: bold;">$SqlAdapter</span>.<span style="color: #003366;">SelectCommand</span> <span style="color: #66cc66;">=</span> <span style="color: #660033; font-weight: bold;">$SqlCmd</span><br />
<br />
&nbsp; <span style="color: #660033; font-weight: bold;">$DataSet</span> <span style="color: #66cc66;">=</span> <span style="color: #0066cc; font-style: italic;">New-<span style="font-style: normal;">Object</span></span> System.<span style="color: #666699; font-weight: bold;">Data</span>.<span style="color: #003366;">DataSet</span><br />
&nbsp; <span style="color: #660033; font-weight: bold;">$SqlAdapter</span>.<span style="color: #003366;">Fill</span><span style="color: #333;">&#40;</span><span style="color: #660033; font-weight: bold;">$DataSet</span><span style="color: #333;">&#41;</span><br />
<br />
&nbsp; <span style="color: #660033; font-weight: bold;">$SqlConnection</span>.<span style="color: #003366;">Close</span><span style="color: #333;">&#40;</span><span style="color: #333;">&#41;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #666699; font-weight: bold;">return</span> <span style="color: #660033; font-weight: bold;">$DataSet</span>.<span style="color: #003366;">Tables</span><span style="color: #333;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #333;">&#93;</span><br />
<span style="color: #333;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Initialize the SqlConnection variable</span><br />
<span style="color: #0066cc; font-style: italic;">Set-<span style="font-style: normal;">Variable</span></span> SqlConnection <span style="color: #333;">&#40;</span><span style="color: #0066cc; font-style: italic;">New-<span style="font-style: normal;">Object</span></span> System.<span style="color: #666699; font-weight: bold;">Data</span>.<span style="color: #003366;">SqlClient</span>.<span style="color: #003366;">SqlConnection</span><span style="color: #333;">&#41;</span> <span style="color: #000066;">-Scope</span> Global <span style="color: #000066;">-Option</span> AllScope <span style="color: #000066;">-Desc</span> <span style="color: #009900;">&quot;Personal variable for Sql Query functions&quot;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Initially create the SqlConnection</span><br />
<span style="color: #0066cc; font-style: italic;">Set-<span style="font-style: normal;">SqlConnection</span></span> <span style="color: #660033; font-weight: bold;">$Server</span> <span style="color: #660033; font-weight: bold;">$Database</span><br />
<br />
<span style="color: #666666; font-style: italic;"># go ahead and run the initial query if we have one...</span><br />
<span style="color: #666699; font-weight: bold;">if</span><span style="color: #333;">&#40;</span> <span style="color: #660033; font-weight: bold;">$query</span> <span style="color: #000066;">-gt</span> <span style="color: #660033; font-weight: bold;">$null</span> <span style="color: #333;">&#41;</span> <span style="color: #333;">&#123;</span><br />
&nbsp; <span style="color: #0066cc; font-style: italic;">Get-<span style="font-style: normal;">SqlDataTable</span></span> <span style="color: #660033; font-weight: bold;">$Query</span><br />
<span style="color: #333;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Some aliases to let you use the functions with less typing</span><br />
<span style="color: #0066cc; font-style: italic;">Set-<span style="font-style: normal;">Alias</span></span> gsdt <span style="color: #0066cc; font-style: italic;">Get-<span style="font-style: normal;">SqlDataTable</span></span> <span style="color: #000066;">-Option</span> AllScope <span style="color: #000066;">-Description</span> <span style="color: #009900;">&quot;Personal Function alias from Get-Sql.ps1&quot;</span><br />
<span style="color: #0066cc; font-style: italic;">Set-<span style="font-style: normal;">Alias</span></span> ssc <span style="color: #0066cc; font-style: italic;">Set-<span style="font-style: normal;">SqlConnection</span></span> <span style="color: #000066;">-Option</span> AllScope <span style="color: #000066;">-Description</span> <span style="color: #009900;">&quot;Personal Function alias from Get-Sql.ps1&quot;</span><br />
&nbsp;</div>

	<p>Now if only I could get it working that well in SciTE!</p>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/powershell-highlighting-for-geshi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Huddled Columns</title>
		<link>http://joelbennett.net/huddled-columns/</link>
		<comments>http://joelbennett.net/huddled-columns/#comments</comments>
		<pubDate>Mon, 12 Mar 2007 02:41:57 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Huddled Masses]]></category>
		<category><![CDATA[Site]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://HuddledMasses.org/huddled-columns/</guid>
		<description><![CDATA[I&#8217;ve created a variation on the Plain Masses theme, based on the idea of having lots of extra columns on the front page. I got the basic idea from the International Herald Tribune site &#8212; they use tables to achieve the effect, and obviously have strict control over what shows up where. I&#8217;ve been trying [...]]]></description>
			<content:encoded><![CDATA[	<p>I&#8217;ve created a variation on the Plain Masses theme, based on the idea of having lots of extra columns on the front page. I got the basic idea from the <a href="http://www.iht.com/">International Herald Tribune</a> site  &#8212; they use tables to achieve the effect, and obviously have strict control over what shows up where.</p>

	<p>I&#8217;ve been trying to decide if I want to make the &#8220;main&#8221; story a special one, like the latest article in a specific category, but since I don&#8217;t usually post even daily, never mind multiple times a day, it doesn&#8217;t seem useful to me to have that main article be the &#8220;lead story&#8221; ...</p>

	<p>The next three most recent articles have their &#8220;excerpt&#8221; displayed in the second column (actually the number of stories in that column is easy to adjust, the variable is right at the top of the index.php file). The third column shows just headlines in a list for the remaining stories on your front page.</p>

	<p>The catch to using this theme is that you have to think about things a little more.  I had to turn my front page count up to 15 articles to make the third column look right, and I have to write my excerpts more carefully, and use the WordPress <em>more</em> feature carefully, making sure to put enough content on the front page to keep the layout straight.  In case you&#8217;re not familiar with it, that&#8217;s the tag which breaks your post into front-page and full-article sections, and the point is that you need to have enough content on the front page for it to work</p>

	<p>I also integrated <a href="http://fernando.dubtribe.com/archives/2005/06/01/livesearch-for-wordpress-1512/">LiveSearch</a> into this theme, so if you grab the theme download, be aware of that.  I was careful enough that it should work without any problems, but if it doesn&#8217;t, or you just don&#8217;t want it, you can disable it by simply removing all three of the livesearch files &#8230;</p>

	<p>On my server, the livesearch seems to be a bit slow, I haven&#8217;t looked into why yet, the fact is, it works, and in the worst case it still works &#8220;the old way&#8221;.</p>

	<p>If you want to try it out, I&#8217;m <a href="/wp-content/themes/huddled-columns.7z">giving away the theme</a> &#8230; as always, please feel free to <strong>modify it</strong> <em>before</em> you use it.  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=';)' class='wp-smiley' />   It&#8217;s in 7-Zip format, so if you haven&#8217;t upgraded yet, you may want to get <a href="http://www.tugzip.com">a better archiver</a></p>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/huddled-columns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wikia says: Forget Free &#8230; we&#8217;ll PAY you</title>
		<link>http://joelbennett.net/wikia-says-forget-free-well-pay-you/</link>
		<comments>http://joelbennett.net/wikia-says-forget-free-well-pay-you/#comments</comments>
		<pubDate>Mon, 18 Dec 2006 16:54:07 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Huddled Masses]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WebHosting]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://HuddledMasses.org/jaykul/wikia-says-forget-free-well-pay-you/</guid>
		<description><![CDATA[Wikipedia founder Jimmy Wales announced that his for-profit company, Wikia Inc., is ready to give away not just MediaWiki (the software which runs Wikipedia) but also the hosting you need to run it. And even further, if you run what they consider to be a popular website, you can even have the advertising revenue from [...]]]></description>
			<content:encoded><![CDATA[	<p>Wikipedia founder Jimmy Wales announced that his for-profit company, <a href="http://www.wikia.com">Wikia Inc.</a>, is ready to give away not just MediaWiki (the software which runs Wikipedia) but also the hosting you need to run it.  And even further, if you run what they consider to be a popular website, you can even have the advertising revenue from your wiki.</p>

	<p>The only catch is that they appear to be sort of forcing the <a href="http://www.gnu.org/copyleft/fdl.html" title="Free Documentation License"><span class="caps">GNU</span> FDL</a> on you, which could cause problems for people who would prefer some other license (like a Creative Commons license, perhaps?) and although <a href="http://www.wikia.com/wiki/Memory_Alpha">Memory Alpha was able to get a different deal</a>, one doubts that anyone else would &#8212; Memory Alpha is a 7-Million hits per month site which brings in some serious ad revenue.</p>

	<p>At any rate, Wikia&#8217;s <a href="http://www.openserving.com">OpenServing</a> service will be giving away hosting in a MediaWiki derivative in exchange for links back to Wikia.  Not just that, but according to <a href="http://midmarket.eweek.com/article/Wikipedia+Founder+To+Give+Away+Site+Tools+Services/196001_1.aspx">this article on eWeek</a> they are hoping to become a sort of unified hosting based on open source website software such WordPress and Drupal.  In fact, they&#8217;re open to suggestions, so if you are a web software developer and have some other open source software you&#8217;re willing to help them install and maintain on their servers &#8230; they want to hear from you.</p>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/wikia-says-forget-free-well-pay-you/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TextileWrapper 2.0 and GeSHiWrapper 1.4</title>
		<link>http://joelbennett.net/textilewrapper-20-and-geshiwrapper-14/</link>
		<comments>http://joelbennett.net/textilewrapper-20-and-geshiwrapper-14/#comments</comments>
		<pubDate>Wed, 16 Aug 2006 15:01:40 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[GeSHi]]></category>
		<category><![CDATA[Textile]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.huddledmasses.org/jaykul/textilewrapper-20-and-geshiwrapper-14/</guid>
		<description><![CDATA[EDIT I&#8217;m inserting an extra paragraph Just to test if the textile stuff is misbehaving Because I had an error report. I&#8217;m releasing a new version of the WordPress Textile 2 plugin, as well as my own plugin for doing syntax highlighting with GeSHi. But I feel like I need to explain what&#8217;s going on, [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>EDIT</strong> I&#8217;m inserting an extra paragraph<br />
Just to test if the textile stuff is misbehaving<br />
Because I had an error report.</p>

	<p>I&#8217;m releasing a new version of the WordPress Textile 2 plugin, as well as my own plugin for doing syntax highlighting with GeSHi.  But I feel like I need to explain what&#8217;s going on, rather than just posting the downloads.</p>

	<p>There are two big changes to the Textile 2 plugin. I&#8217;ve changed the way I&#8217;m distributing the plugin: instead of a single file, there are two, which must go <strong>together</strong> into a folder in your WordPress plugins directory. To simplify that I&#8217;ve packaged them as a <a href="/wp-content/plugins/TextileWrapper.7z" title="9Kb">.7z</a> <a href="/wp-content/plugins/TextileWrapper.tgz" title="9Kb">.tgz</a> <a href="/wp-content/plugins/TextileWrapper.zip" title="10Kb">.zip</a> which you can just unpack in the plugins folder.  The reason for this change is that this allows me to distribute the <em>unmodified</em> classTextile.php from <a href="http://textism.com/?wp">Dean Allen&#8217;s</a> <a href="http://svn.textpattern.com/releases/4.0.3/source/textpattern/lib/classTextile.php">last textpattern release</a>, and allows <em>you</em> the option of just replacing that file with <a href="http://svn.textpattern.com/development/4.0/textpattern/lib/classTextile.php">the latest from the svn repository</a> in the future.</p>

	<p>I&#8217;ve changed the name to &#8220;TextileWrapper&#8221; to be more in line with what&#8217;s really going on. I want to make perfectly clear that I <em>am not</em> editing Textile at all this time.  Any bugs with the way Textile work are Textile&#8217;s bugs, and should be filed via the <a href="http://www.textism.com/tools/textile/">Textile Homepage</a>.  Any bugs with the way it integrates into WordPress should be filed here.  As far as the version number &#8230; Dean Allen has left Textile as &#8220;2.0 Beta&#8221; for a very long time, despite the fact that he&#8217;s on version 4.3 of <a href="http://www.textpattern.com">Textpattern</a> (which has been using Textile since the beggining).  The internal revision number for the file has been divorced from actual revisions to Textile, because <a href="http://subversion.tigris.org/">Subversion</a> revision&#8217;s the whole project, so there&#8217;s nothing to go on there, either. At any rate, based on all that, I&#8217;ve decided to just call this version 2.8 as it&#8217;s really the next version of my &#8220;Textile 2&#8221; plugin, even though I&#8217;ve renamed it &#8230;  and it really should work with any version of Textile since the first 2.0 Beta.</p>

	<p>I finally came to my senses with this release and realized that the problem with code blocks is really not a Textile problem, but rather, a problem of the various syntax highlighters I&#8217;ve been using.</p>

	<p><span id="more-326"></span>After playing around with some regular expressions, I&#8217;m releasing my GeSHiWrapper plugin as well. It&#8217;s exactly the same concept as TextileWrapper: a simple wrapper around an untouched <a href="http://qbnz.com/highlighter/">GeSHi &#8211; Generic Syntax Highlighter</a> which should allow you to upgrade GeSHi without waiting for me to release new wrappers. As with Textile, I&#8217;ve packaged the whole thing with the current GeSHi: <a href="/wp-content/plugins/GeSHiWrapper.7z" title="213Kb">.7z</a> <a href="/wp-content/plugins/GeSHiWrapper.tgz" title="306Kb">.tgz</a> <a href="/wp-content/plugins/GeSHiWrapper.zip" title="384Kb">.zip</a> which you can just unpack in the plugins folder.</p>

	<p>The GeSHi wrapper is a little more complicated than the TextileWrapper, because it&#8217;s intended purpose is to do code highlighting in a way that works with the various markup plugins (Textile, Markdown, etc) without any problems. To accomplish this, it runs two functions: one before, and one after the actual markup plugin runs (this assumes that you have the priority of the markup plugin set between 2 and 9 &#8212; it&#8217;s usually 6).  The basic idea is that before the markup plugin runs it <strong>extracts</strong> the code blocks, and afterwards, it syntax-highlights them and puts them back.  There are two catches.</p>

	<p>The first problem is a GeSHi problem: it throws out the &#8220;code&#8221; blocks and replaces them with &#8220;div&#8220;s.  This means you can&#8217;t use it to syntax highlight code in-line in a paragraph, because it will invalidate your markup &#8230; but it doesn&#8217;t track that.  What it <strong>does</strong> do, is only replace code blocks with a &#8220;lang&#8221; or &#8220;language&#8221; attribute (which tells it which language the code is in &#8212; that is: php or csharp, not english).  To get GeSHi wrapper to work, you should put your <code>code</code> tags in their own paragraph (GeSHiWrapper will rip off an extra set of <code>p</code> tags), and you must specify the *lang*uage for the source code.  If you use Textile&#8217;s markup to add code tags that <strong>will not</strong> be highlighted, since GeSHi looks for code before Textile runs. </p>

	<p>The second problem is a style problem: since GeSHi puts it&#8217;s code in a <code>&#60;div class=&#34;code lang&#34;&#62;</code> block, you need to make sure you style that div appropriately (particularly note the problem of long source-code lines like regular expressions which may not have spaces, and thus, won&#8217;t wrap properly in Firefox).  Personally, I style the .code class with overflow: auto; to get scrollbars.</p>

	<p>The only GeSHi option that&#8217;s currently exposed in the wrapper (apart from the code language) is line numbering.  If you want line numbering on, you should specify an attribute &#8220;line&#8221; with a numerical value for the number of the first line (note that the first line of code is on the same line as the <code>code</code> tag).  This allows you to quote from the middle of a file and still use the line numbers logically like so: <code>&#60;code lang=&#34;csharp&#34; line=&#34;104&#34;&#62;</code></p>

	<p>Eventuall I&#8217;ll release a new version of this wrapper with a config page for some of the options &#8230; particularly the choice of <code>div</code> or <code>pre</code> and of using  stylesheets and class names instead of embedded styles, but I have a lot of other work to get done first, so if you&#8217;re interested in syntax highlighting that won&#8217;t break with your Markup plugin, don&#8217;t wait for that.</p>

	<p>P.S.:  To show that it&#8217;s all working, I messed around with my <a href="http://www.huddledmasses.org/jaykul/test-post-please-look-away/">most recent test post</a> and added a bunch of highlighted code and a few of the usual Textile torture tests.</p>

	<p>Technorati Tags: <a href="http://technorati.com/tag/WordPress" rel="tag">WordPress</a>, <a href="http://technorati.com/tag/Plugins" rel="tag">Plugins</a>, <a href="http://technorati.com/tag/Textile" rel="tag">Textile</a>, <a href="http://technorati.com/tag/GeSHi" rel="tag">GeSHi</a>, <a href="http://technorati.com/tag/SyntaxHighlight" rel="tag">SyntaxHighlight</a>, <a href="http://technorati.com/tag/Code" rel="tag">Code</a>, <a href="http://technorati.com/tag/Web" rel="tag">Web</a>, <a href="http://technorati.com/tag/Blogging" rel="tag">Blogging</a>, <a href="http://technorati.com/tag/Markup" rel="tag">Markup</a></p>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/textilewrapper-20-and-geshiwrapper-14/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Windows Live Writer</title>
		<link>http://joelbennett.net/windows-live-writer/</link>
		<comments>http://joelbennett.net/windows-live-writer/#comments</comments>
		<pubDate>Mon, 14 Aug 2006 16:12:44 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Huddled Masses]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.huddledmasses.org/jaykul/windows-live-writer/</guid>
		<description><![CDATA[So, Microsoft release Windows Live Writer this weekend, and all I really need to say is: Wow, go get this, it could be a home run. I&#8217;m typing up this post using Writer, and not only did it work automatically with my WordPress blog &#8230; it automatically downloaded my &#8220;style&#8221; so that I&#8217;m actually editing [...]]]></description>
			<content:encoded><![CDATA[<p>So, Microsoft release <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a> this weekend, and all I really need to say is: Wow, go get this, it <a href="http://arstechnica.com/news.ars/post/20060813-7489.html">could be a home run</a>.</p> <p>I&#8217;m typing up this post using Writer, and not only did it work automatically with my <a href="http://www.WordPress.org">WordPress</a> blog &#8230; it automatically downloaded my &#8220;style&#8221; so that I&#8217;m actually editing this in a <span class="caps">WYSIWYG</span> editor that shows what it will look like on my front page (right down to the ridiculously narrow column).&nbsp; And the &#8220;preview&#8221; button made me think it had actually posted it to my blog, <strong>very impressive</strong>. Some people are already saying <a href="http://www.nogeekleftbehind.com/2006/08/13/move-over-blogjet/">it may be better</a> than <a href="http://www.blogjet.com/">BlogJet</a> ;(which costs $40).</p> <p>It works with Windows Live Spaces, of course, but also with <a href="http://cyber.law.harvard.edu/blogs/gems/tech/rsd.html">RSD</a>, <a href="http://www.xmlrpc.com/metaWeblogApi">metaWeblog API</a>, and&nbsp;<a href="http://www.movabletype.org/mt-static/docs/mtmanual_programmatic.html">Movable Type API</a>, which means it works on Blogger, LiveJournal, TypePad, and WordPress &#8230; to name a few. It also generates very good looking XHTML!</p> <p>On top of all that, it has a really good looking <span class="caps">API</span> which should result in Flickr (and YouTube) plugins, as well as Technorati tagging &#8230; faster than you can shake a stick.</p> <p>They&#8217;ve already included image uploading and tweaking, <a href="http://www.huddledmasses.org/wp-content/uploads/2006/08/WindowsLiveWriter/WindowsLiveWriter_A780/WriterScreenShot38.png"><img style="margin: 0px 5px 0px 0px; float:left;" height="96" alt="See Screenshot" src="http://www.huddledmasses.org/wp-content/uploads/2006/08/WindowsLiveWriter/WindowsLiveWriter_A780/WriterScreenShot_thumb37.png" width="137" /></a>including wrapping text around images, and a mapping feature which lets you embed maps (from local.live.com, of course) toggle details like roads, add pushpins with popup photos and more.</p> <p>However, there&#8217;s still some significant missing features, and a few things that bother me as a user of WordPress, in particular.</p><span id="more-323"></span><p>First of all, although I appreciate the effort they went to to pull my style sheets and get the layout right, as in this case, my front page generally only shows part of an article &#8230; so what really matters is what this will look like in the &#8220;single post&#8221; template. <span class="highlight">I can&#8217;t help but wonder if there&#8217;s a way they could pull styles from a &#8220;permalink&#8221; page, as well as the front index page.</span></p> <p>Secondly, the font styles leave a little to be desired: I&#8217;d like to see some of the <span class="caps">CSS</span> classes pulled from my style sheets to be applied to text from that silly drop down (which currently just offers heading styles). That way I can highlight like I did the last sentence of the previous paragraph, but without manually adding the span tags &#8212; and without ending up with a bunch of style and color codes hard-coded into each post (the highlight class is part of my themes, and <span class="fontlight">would therefore change across all posts</span> if I change color styles).</p> <p>I also don&#8217;t understand why the image selection dialog specifies .gif and .jpg but not .png, especially when the software evidently supports them. On top of that, the image uploading thing &#8220;crashed&#8221; on me twice: once when I selected a file with an image extension that wasn&#8217;t really an image, and again when I tried to remove an &#8220;effect&#8221; from the image thumbnail.&nbsp; Now, it actually recovered in both cases, so it didn&#8217;t really crash, it just popped up an unhandled exception dialog &#8230;&nbsp;so it<em> really is </em>beta software  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=';-)' class='wp-smiley' /> .</p> <p>Of course, as a WordPress user and plugin developer, I have several plugins on my site (Ubernyms and Extra Smilies  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=':P' class='wp-smiley' />  and Textile, just to name a few) which render on the page, but don&#8217;t show up in the preview &#8230; that&#8217;s a little distracting, so I may have to have a look at the <span class="caps">API</span> if I keep using this.&nbsp; Which brings up another point: I usually use Textile formatting for my posts, so posting through a <span class="caps">WYSIWYG</span> interface is a little weird, and is making me re-consider how the Textile plugin works (it puts the unrendered Textile into the database, which means to edit these posts in Writer I have to use &#8220;<span class="caps">HTML</span> Code&#8221; view), and the previews are worthless. I&#8217;ll have to think about that one some more&#8230;</p> <p>A few other little things:</p> <ul> <li>Several people have called for smilie support in the Writer software, but I don&#8217;t think I&#8217;d use that &#8230; I like using text emoticons in the posts and having all the graphics in one place where I can (hypothetically) switch them if I feel like it, and not hard-coded in as images.</li> <li>I&#8217;d definitely like a Flickr plugin (might even write one, if nobody else does before I get a chance).</li> <li>I&#8217;d love an option to specify a <span class="caps">URL</span> source (like Technorati) for the &#8220;keywords&#8221; in the post properties tab, and toggle whether I want them visible in the post (even though tags just don&#8217;t work the way they ought to in WordPress).</li> <li>The spell-check dialog needs an &#8220;Ignore All&#8221; button so I don&#8217;t get tempted to add words like &#8220;Technorati&#8221; to the dictionary when I write a post like this.</li><li>My post seems to have a lot of unecessary <code>&#38;amp;nbsp;</code> entities, I don&#8217;t know why those get inserted, but I assume it&#8217;s when I hit space twice and then delete one of them &#8230; it would be a good idea to offer an option to not insert non-breaking spaces, since most of the time, people don&#8217;t really want them (we&#8217;re <a href="http://en.wikipedia.org/wiki/Full_stop#Spacing_after_full_stop">not even</a> supposed <a href="http://www.greece.k12.ny.us/taylor/topics/doublespace.htm">to use double spaces</a> after a sentence <a href="http://www.webword.com/reports/period.html">anymore</a>).</li><li>[New] I also found that a few invalid attributes are being used in my post (I fixed them so my page still validates): <ul><li>The link around the image had <code>atomicselection=&#34;true&#34;</code> on it.  This is an old <a href="http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/atomicSelection.asp">Microsoft-only attribute</a> which should never have made it into Writer.</li><li>The image itself had <code>align=&#34;left&#34;</code> which is ok in HTML4, but not in <span class="caps">XHTML</span> ... this is a particularly egregious error because they&#8217;re already using the <code>style</code> attribute for margins anyway, so they <i>could just put the float value in the CSS</i>. In my case, I&#8217;ve actually got classes pre-defined for aligning images, it would have been nice if I could use those.</li></ul></li></ul>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/windows-live-writer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubernyms: the ultimate text-replacement plugin</title>
		<link>http://joelbennett.net/ubernyms-20/</link>
		<comments>http://joelbennett.net/ubernyms-20/#comments</comments>
		<pubDate>Sat, 06 May 2006 04:01:10 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Huddled Masses]]></category>
		<category><![CDATA[Ubernyms]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.huddledmasses.org/jaykul/ubernyms-20/</guid>
		<description><![CDATA[The purpose of ubernyms is to allow you configure a set of frequently used abbreviations that will be automatically encoded nicely whenever you use them. The goal is to make them visible in a way that is literate for both humans and computers. In other words: we tag them appropriately for your computer, and expand [...]]]></description>
			<content:encoded><![CDATA[	<p>The purpose of ubernyms is to allow you configure a set of frequently used abbreviations that will be automatically encoded nicely whenever you use them.  The goal is to make them visible in a way that is literate for both humans and computers.  In other words: we tag them appropriately for your computer, and expand them as necessary for humans.</p>

	<p>The main use for ubernyms is still going to be abbreviations, including acronyms.  But you can also use it for other things like:
	<ul>
		<li>Words that you always want linked.  For instance, the links to ubernyms are being added by the plugin.</li>
		<li>Short forms of words or phrases or even entire paragraphs that you frequently have to type.  The whole text can be placed to replace a single word.</li>
	</ul>
	<ul>
		<li>Pictures or emoticons you use frequently. I have photos show up in my DomTT tool-tips for my kid&#8217;s names: Katrina and Mikayla.</li>
	</ul></p>

	<h3>Edit: May 6, 2006</h3>

	<p>I&#8217;ve included a full configuration panel this time. No more hacking the plugin source to add abbreviations!  Each time you go to the configuration panel there&#8217;s 5 empty slots for new definitions, and when you submit those, you get space for 5 more. You can remove definitions by simply deleting their <strong>Text</strong> or <strong>Definition</strong>.  You can see a <a href="http://www.huddledmasses.org/wordpress/wp-content/uploads/2006/05/ubernyms.png">partial screenshot</a> of the ubernyms configuration if you&#8217;re interested, but there&#8217;s not much to see besides long lists of definitions.</p>

	<p>There&#8217;s a setting for each ubernym that lets you define if it is an acronym, an initialism, just a plain old abbreviation, or simply a replacement or link.  And if you&#8217;re using the DomTT tool-tips, you can specify additional text (including <span class="caps">HTML</span>) to be placed below the main definition.</p>

	<p>You can <a href="http://www.huddledmasses.org/wordpress/wp-content/plugins/ubernyms.zip">download the zip</a> here, which includes the DomTT script which you can also <a href="http://www.mojavelinux.com/projects/domtooltip/">get here</a> with more details about how to use it and the many features, in case you want to play with the tool-tips.  The installation is pretty simple, just unzip, and upload <em>the whole ubernyms <strong>folder</strong></em> into your plugins folder.</p>

	<h3>Edit: May 7, 2006</h3>

	<p>Note that there&#8217;s now an option in the plugin configuration for including the <a href="http://www.huddledmasses.org/wordpress/wp-content/plugins/ubernyms/ubernyms.css">default ubernym CSS</a>, but you can feel free to copy that into your <span class="caps">CSS</span> and/or edit it as you see fit.</p>

	<h3>Edit: May 9, 2006</h3>

	<p>Incidentally, putting the photos in (as I did with my daughters) is extremely simple a?? without getting into the details of how <strong>I</strong> actually do it, all <strong>you</strong> have to do is put the <code>img</code> tag into the <strong>Description</strong> field, and make sure that you&#8217;ve checked the option for using the DomTT tooltips.  You can use pretty much any <span class="caps">HTML</span> in the descriptions for DomTT, within reason  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=';)' class='wp-smiley' /> .  Of course, the images have to <em>be</em> somewhere. You can just upload them to your webhost and link to them there, or just specify an image you already uploaded to <a href="http://www.flickr.com">flickr</a>.  Remember, just put the <span class="caps">HTML</span> in, like: &amp;lt;img src=&quot;http://static.flickr.com/48/136555658_f0eaa892a9_m.jpg&quot; alt=&quot;Sitting in a field of flowers&quot; /&amp;gt;</p>

	<h3>Edit: May 11, 2006</h3>

	<p>I&#8217;ve just released an update of this, no major changes, but it&#8217;s now in sync with my <a href="http://www.huddledmasses.org/category/development/wordpress/huddledparser/">HuddledParser plugin</a>  so that if you&#8217;re using them both, you don&#8217;t accidentally get two copies of the DomTT scripts loaded. Aren&#8217;t I clever?  <img src='http://joelbennett.net/wordpress/wp-includes/' alt=';-)' class='wp-smiley' /> </p>

	<h3>Edit: May 13, 2006</h3>

	<p>I finally fixed a few annoying bugs related to having quotes, single-quotes, and apostrophes in your abbreviations and released <a href="http://www.huddledmasses.org/wordpress/wp-content/plugins/ubernyms.zip">ubernym 2.4</a></p>

	<h3>Edit: May 14, 2006</h3>

	<p>I tweaked the javascript and css so that it all validates as <span class="caps">XHTML</span> 1.0 Transitional, <span class="caps">XHTML</span> 1.0 Strict, or even <span class="caps">XHTML</span> 1.1, but the DomTT javascript still uses a <span class="caps">CSS</span> file with those neat rounded-corners and alpha-blending opacity, so it&#8217;s <span class="caps">CSS</span> won&#8217;t validate &#8230; which doesn&#8217;t really bother me.</p>

	<h3>Edit July 24, 2006</h3>

	<p>Here&#8217;s a list of things that I still want to do:</p>

	<ol>
		<li>I have in mind to provide a check-box-like way of configuring <strong>where</strong> the replacements happen.  That is: to create a sub-tab in the configuration with a list of most/all the &#8220;filter&#8220;able portions of WordPress, so people can easily choose <span class="caps">NOT</span> to have Ubernyms run on comments (usually that&#8217;s not helpful, imho, even though that&#8217;s the way I run it on my site right now), or choose to run it on the category list, or whatever &#8230; I haven&#8217;t looked, but there ought to be a way to get a list from WordPress of all the registered filterable things (since it&#8217;s trivial, for instance, to add a filter to my <span class="caps">RSS</span> plugin &#8230; what if I wanted to run Ubernyms on my <span class="caps">RSS</span> output?)</li>
		<li>I still need to investigate the language problems.  There seems to be something wrong with the way WordPress is handling foreign-language characters through the option settings table?</li>
		<li>To make this more generic, it would be cool to be able to &#8220;create&#8221; new &#8220;types&#8221; of replacements. E.g. <a href="http://www.huddledmasses.org/jaykul/ubernyms-20/#comment-18182">Shanta Rohse</a> wants to use it to create links to a glossary, but still use it for other things too, so would like a &#8220;glossary term&#8221; category. Maybe there could also be an additional setting like the &#8220;english&#8221; one that allows auto-linking only the first occurrence as per <a href="http://www.huddledmasses.org/jaykul/ubernyms-20/#comment-20471">these requests</a></li>
	</ol>
	<ol>
		<li>It might be interesting to add another feature (as a seperate tab?) specifically to create photo popups.  I&#8217;m not 100% sure how this would best work &#8230; (would there be a way to upload photos, or an <span class="caps">AJAX</span> interface to let you select photos from Flickr or Zooomr, or a simple &#8216;preview&#8217; feature and just a text box where you type the <span class="caps">URL</span> to an image).  The idea is basically to have the tool create the sort of tooltips I have on my kids names, but without needing to type html into that teeny edit box.</li>
	</ol>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/ubernyms-20/feed/</wfw:commentRss>
		<slash:comments>128</slash:comments>
		</item>
		<item>
		<title>Best hosting deal?</title>
		<link>http://joelbennett.net/best-hosting-deal/</link>
		<comments>http://joelbennett.net/best-hosting-deal/#comments</comments>
		<pubDate>Thu, 05 Jan 2006 04:35:52 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Huddled Masses]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[WebHosting]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.huddledmasses.org/2006/01/04/netfirms-10year-hosting/</guid>
		<description><![CDATA[Netfirms has a coupon code that gives you a year for under $10, but that *still* might not be the best deal, long term.]]></description>
			<content:encoded><![CDATA[	<p>So, I was just checking out a few new webhosting deals, aside from the one I usually recommend. </p>

	<h4><a href="http://www.bluehost.com/track/Jaykul/CODE2">BlueHost</a></h4>

	<p>Normally I suggest <a href="http://www.bluehost.com/track/Jaykul/CODE2">BlueHost</a>, which offers <del>10GB</del> <ins>15GB</ins> of disk space and <del>250GB</del> <ins>400GB</ins> of transfer in addition to a free for life domain, self-generated <span class="caps">SSL</span> certificates and all the usual stuff like <span class="caps">PHP</span>, <ins>Ruby on Rails</ins> and Fantastico and shell access &#8230; for only $6.95 a month (if you sign up for two years).  Honestly that&#8217;s still the cheapest hosting around, long-term.</p>

	<h4><a href="http://www.dreamhost.com/rewards.cgi?jaykul">DreamHost</a></h4>

	<p>However, <a href="http://www.dreamhost.com/rewards.cgi?jaykul">DreamHost</a> has to be the most interesting deal I&#8217;ve seen, and actually may have more bang for the buck than BlueHost!  Their $7.95 a month (for two years) is only a dollar more than BlueHost, and you can save $30 off that by using <code>GEOSHELL</code> as your coupon code, which actually makes it cheaper than BlueHost for the first 2 years &#8230; and they offer 20GB of disk space, and a full Terabyte of transfer, both of which <em>increase weekly</em> (by 160 MB and 8 GB, respectively). They also give you unlimited domains and MySQL databases, PHP4 <strong>and</strong> PHP5, Ruby on Rails, and your own Jabber and <span class="caps">CVS</span> servers!  Excellent for collaborative development projects, and I gotta say, I really like the idea of having my own Jabber server&#8230; <ins>oh, and they have a 3 month money-back guarantee.</ins></p>

	<h4><a href="http://affiliates.netfirms.com/e.asp?e=8&#38;id=2476">NetFirms</a></h4>

	<p>But in the purely cheap hosting arena, I found a new contender in <a href="http://affiliates.netfirms.com/e.asp?e=8&#38;id=2476">NetFirms</a>, where one of my friends works.  Their $9.95 a month hosting offers 20GB of disk space, and 750 GB transfer &#8230; and now they include shell access, as well as ruby and python (they also offer to pre-install and configure WordPress as your default web page).  Now at $10 a month, I&#8217;ve never been that impressed, but I just found out they have a coupon code: 998, which gives you the first year for only $9.98 (yeah, for the <strong>whole year</strong>, that&#8217;s 92% off).  Pretty cool, eh?  If you think about it, that makes two years less than $120, so it&#8217;s like $5 a month, <strong>way</strong> cheaper than anything else out there!</p>]]></content:encoded>
			<wfw:commentRss>http://joelbennett.net/best-hosting-deal/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

