<?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"
	>

<channel>
	<title>dannyman.toldme.com &#187; WordPress</title>
	<atom:link href="http://dannyman.toldme.com/category/technical/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://dannyman.toldme.com</link>
	<description>Interesting bits of information and editorial, evolving online since 1995.</description>
	<pubDate>Tue, 25 Nov 2008 04:58:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>WordPress 2.5.1</title>
		<link>http://dannyman.toldme.com/2008/04/25/wordpress-251/</link>
		<comments>http://dannyman.toldme.com/2008/04/25/wordpress-251/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 18:32:58 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1448</guid>
		<description><![CDATA[There&#8217;s a notice on the WordPress dev blog that WordPress 2.5.1 is out.  Alas, they neglected to link to the upgrade documentation.  My favorite?  Upgrading via Subversion:
0-11:17 djh@ratchet ~&#62; cd public_html/toldme
0-11:17 djh@ratchet ~/public_html/toldme&#62; svn sw http://svn.automattic.com/wordpress/tags/2.5.1/
[ . . . ]
Updated to revision 7839.
When I logged in to post this little note, it [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a notice on the WordPress dev blog that <a href="http://wordpress.org/development/2008/04/wordpress-251/">WordPress 2.5.1 is out</a>.  Alas, they neglected to link to the <a href="http://codex.wordpress.org/Installing_WordPress">upgrade documentation</a>.  My favorite?  <a href="http://wordpress.org/development/2008/04/wordpress-251/">Upgrading via Subversion</a>:</p>
<pre>0-11:17 djh@ratchet ~&gt; <b>cd public_html/toldme</b>
0-11:17 djh@ratchet ~/public_html/toldme&gt; <b>svn sw http://svn.automattic.com/wordpress/tags/2.5.1/</b>
[ . . . ]
Updated to revision 7839.</pre>
<p>When I logged in to post this little note, it blocked me and ran the upgrade procedure, then I had to log in again, and here I am!</p>
<p>There&#8217;s a further note about the secret key setting:</p>
<blockquote><p>
Since 2.5 your <code>wp-config.php</code> file allows a new constant called <code>SECRET_KEY</code> which basically is meant to introduce a little permanent randomness into the cryptographic functions used for cookies in WordPress. You can <a href="http://api.wordpress.org/secret-key/1.0/">visit this link we set up to get a unique secret key</a> for your config file. (It&#8217;s unique and random on every page load.) Having this line in your config file helps secure your blog.
</p></blockquote>
<p>It leaves me to wonder: if the secret key can be randomly generated by a machine, why not go ahead and do that and then stash it in the database?  There may be a good reason for that . . .</p>
<p>In unrelated news, I upgraded to <a href="http://www.ubuntu.com/news/ubuntu-8.04-lts-desktop">the newer Ubuntu release</a> at home yesterday.  The only trick I have noticed so far is that it runs with <a href="http://www.mozilla.com/en-US/firefox/3.0b5/releasenotes/">Firefox 3.0, which is beta</a>, and I lost use of my <a href="http://www.foxmarks.com/">foxmarks plugin</a>, for now.  So, I&#8217;m waiting until that is supported before I upgrade my workstation.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/04/25/wordpress-251/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Notes from WordCamp 2007: Day 1</title>
		<link>http://dannyman.toldme.com/2007/07/24/wordcamp-notes-day1/</link>
		<comments>http://dannyman.toldme.com/2007/07/24/wordcamp-notes-day1/#comments</comments>
		<pubDate>Tue, 24 Jul 2007 04:20:17 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

		<category><![CDATA[News and Reaction]]></category>

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

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

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2007/07/24/wordcamp-notes-day1/</guid>
		<description><![CDATA[On the weekend of July 22 and 23, <a href="http://2007.wordcamp.org/attendees/">I and about 400 other folks</a> attended <a href="http://www.mightyseek.com/podpress/">WordCamp 2007</a> in San Francisco.  This is a conference about <a href="http://wordpress.org/">WordPress</a> blogging software, and blogging itself.  I am usually a bit wary of killing my weekend by spending the bulk of it with a bunch of nerds.  Especially bloggers.  But then, I am a nerd, and this is, I admit, a blog . . .]]></description>
			<content:encoded><![CDATA[<p>On the weekend of July 22 and 23, <a href="http://2007.wordcamp.org/attendees/">I and about 400 other folks</a> attended <a href="http://www.mightyseek.com/podpress/">WordCamp 2007</a> in San Francisco.  This is a conference about <a href="http://wordpress.org/">WordPress</a> blogging software, and blogging itself.  I am usually a bit wary of killing my weekend by spending the bulk of it with a bunch of nerds.  Especially bloggers.  But then, I am a nerd, and this is, I admit, a blog . . . that and registration was merely $25 and covered my food for the weekend.  That&#8217;s a pretty compelling deal for the unemployed!  Added value was found at the open bar on Saturday night at one of my favorite bars: <a href="http://www.yelp.com/biz/7rs_PZ3yO9ZrVVSyx3bB0g">Lucky 13</a>.</p>
<p>Here are notes I compiled during the Saturday presentations.<span id="more-1313"></span></p>
<h3>Podcasting</h3>
<p>I am not big on Podcasting, but <a href="http://2007.wordcamp.org/schedule/podcasting/">this presentation piqued my interest</a>.  <a href="http://www.mightyseek.com/">Dan Kuykendall</a> hyped <a href="http://www.mightyseek.com/podpress/">his PodPress plugin</a>.  &#8220;Okay, okay,&#8221; I thought, &#8220;he is cleaning up the feeds in a proper fashion&#8221; . . . but that is just the start.  PodPress has features to give you previews of how content will look in the various podcasting portals, and also embedded media players for a lot of the audio and video formats you might want on your blog.  It looks to me as if PodPress could be a best-of-breed plugin for integrating multimedia on a WordPress blog.</p>
<p>Dan started his presentation showing how easy the technical aspect of podcasting can be: a microphone, a little box to plug it in to, and if you&#8217;re Dan, a milk crate lined with noise-dampening foam.  Add to that excellent software, and all you really need is to come up with some content . . .</p>
<h3>Blogs vs Journalism</h3>
<div class="capLeft240">
<a href="http://www.flickr.com/photos/stewtopia/866353494/"><img src="/images/wordcamp2007-cheez.jpg" alt="Cute Pair" /></a><br />
<a href="http://icanhascheezburger.com/">I CAN HAS CHEEZBURGER?</a> may have nothing to do with blogging versus journalism, but they are a lot cuter than the luminaries on stage.  Nyah!  (CC: <a href="http://blog.stewtopia.com/">Randy Stewart</a>)</div>
<p><a href="http://www.dvorak.org/blog/">John Dvorak</a> and <a href="http://gigaom.com/">Om Malik</a> sat in high-backed chairs to <a href="http://2007.wordcamp.org/schedule/blogs-vs-journalism/">chat about stuff</a>.  The sort of conversation that I enjoy, and mostly forget.  Here are some notes I took:</p>
<p>Om Malik: 4% of my readers are from India.  90% of the Indian readers are reading on cell phones.</p>
<p>Both men agreed that <em>responding</em> to comments is important.  You need to moderate out the spam and the idiots.  As far as encouraging comment quality, John offered that &#8220;comment rating is bull: unless you&#8217;re talking about book reviews or restaurant reviews.&#8221;  I am inclined to agree.  Om said that every year, they take their top ten commenters and try to make them authors.</p>
<p>The question of the day is the difference between blogging and journalism, whether there is any, and more importantly, what if you are a blogger and you want to be respected as a journalist?  John Dvorak explained that <strong>blogs don&#8217;t have to look like blogs anymore</strong>.  Bloggers often aren&#8217;t taken too seriously, but you can adopt a &#8220;neo-blog&#8221; layout that doesn&#8217;t look like a blog, and at first impression, you may be taken more seriously.  He offered an example: <a href="http://www.xxlmag.com/">XXLMag.com</a>.  The guy who does XXLMag was in the audience, and he explained that yes, in fact, XXLMag is a WordPress blog: but he hacked on the theme to the point that it looks and feels like a print magazine.</p>
<h3>Kicking Ass Content Connections</h3>
<p><a href="http://lorelle.wordpress.com/">Lorelle</a> <a href="http://2007.wordcamp.org/schedule/content-connections/">spoke after lunch</a>.  She is charismatic, energetic, extroverted, and very human and articulate.  Not all the nerds in the room fully appreciated her style, or her substance, but I enjoyed her a great deal.  What was she talking about?  <strong>How to be a better blogger.</strong></p>
<div class="capRight240">
<a href="http://www.flickr.com/photos/stewtopia/865501341/"><img src="/images/wordcamp2007-lorelle.jpg" alt="Lorelle Works the Crowd" /></a><br />
Lorelle works the crowd: be the <em>wiser</em> blogger!  (CC: <a href="http://blog.stewtopia.com/">Randy Stewart</a>)</div>
<p>Notes:</p>
<p><em>What to Write:</em><br />
Offer <strong>something new!</strong><br />
Not everything has been said<br />
What has been said can often be said better<br />
Search first: don&#8217;t re-write well-covered topics.</p>
<p><em>Filling in holes:</em><br />
Where are the holes in what has already been written?  Fill the holes!<br />
We learn in school to accept received wisdom: we learn not to ask why.  <strong>Ask <em>why</em>!</strong><br />
Where are your holes?<br />
When is the last time you really looked at your site?<br />
What is missing?  What should be added?  What should be removed?</p>
<p><em>Be the &#8220;wiser&#8221; blogger</em>&#8211;don&#8217;t rush to post during the frenzy of news that is happening right now.  Wait until the frenzy has passed, and you have calmed down.  Say your piece with a bit of perspective.  When your readers read you, they will have some chance to calm down.  They&#8217;ll read your writing after the frenzy, when they are calm.  If they are calm, they are more likely to think that you are wise and profound, especially compared to content produced <em>in-the-frenzy</em>.</p>
<p><em>What is a successful blog?</em>  Lorelle cited <a href="http://www.successful-blog.com/">Liz Strauss</a> in that &#8220;when you write, you write for one person: yourself&#8221;  Lorelle explained that after you have been traveling on the road for a while, when you get back home and sit down on your own toilet, you feel extremely comfortable and at ease.  When you visit your blog, you should feel the same sensation of comfort and relief: this is your space: you are home! . . . what is the point?  By writing for yourself, you are writing in your voice, your style, your level of erudition, whatever: so when someone like you comes to your site, they too, feel at home.  They feel comfortable.  Anyway.  That is philosophy.</p>
<p><em>An aside:</em> <b>I</b> re-design my site every few years . . . as I change I become less at ease with the look, the feel, the style, and the way I write, and I go and I change my environment: home, clothing, web design, whatever, to be more consistent with whatever I am trying to get at.  I recently re-designed this site: stripping pages down in complexity and emphasizing simple, clean content.  That is what I am trying to achieve in my own life these days.  And I notice, that when I arrive at sites with simple web design like this, I do feel a little more &#8220;at home&#8221; . . .</p>
<p>&#8220;Make your blog for you and to you.&#8221;<br />
Or, to borrow an idea from romantic relationships:<br />
&#8220;Be the other you wish to find.&#8221;</p>
<p>She went on to engage the audience: can you tell when a blogger is &#8220;faking it&#8221;?  Yup . . . this was her way of introducing the idea of &#8220;write for the future&#8221; . . . <b>I</b> would say that when you go back and read something next <a href="/2007/07/16/oregon-closet-case/">week</a>, next <a href="/2006/07/">month</a>, next <a href="/journal/1997/970711.html">decade</a> . . . is there still something to be had?  In my case: not always.  But what <b>I</b> have noticed about my own web site is that <a href="/2005/06/16/google-interview-advice/">my most popular</a> traffic at any given time is older stuff.  The majority of traffic on a site like this that spreads over a decade is certainly not what I wrote this week!</p>
<p>Blogging is about a conversation with your readers and with other bloggers:<br />
<em>How do you get the conversation going?</em><br />
Don&#8217;t finish the idea: leave room for readers to react and finish for you.<br />
&#8220;Ten Tips for . . .&#8221; make it seven!  People can contribute 8, 9, 10 . . .<br />
Leave something &#8220;missing&#8221; for readers to respond to.<br />
Readers should believe that you respond to every comment.<br />
Basically: leave room for readers to collaborate, and the impression that you value their contribution.<br />
Ideal: You and your reader are an old married couple . . . you finish each other&#8217;s sentences!<br />
It is important to link to other blogs.  (I suck at this.)<br />
Read: <a href="http://lorelle.wordpress.com/2006/08/07/how-not-to-comment-on-comments/">&#8220;How Not to Comment on Comments&#8221;</a>  (Hey, she got me to link to her blog!)</p>
<p>As far as the &#8220;state of the art&#8221; on filtering comment spam (for WordPress):<br />
The Triumvirate: <a href="http://akismet.com/">Akismet</a>, <a href="http://unknowngenius.com/blog/wordpress/spam-karma/">Spam Karma</a>, <a href="http://wordpress.org/extend/plugins/bad-behavior/">&#8220;Bad Behavior&#8221;</a></p>
<p>(Akismet is plenty for me.)</p>
<h3>Blog Monetization</h3>
<div class="capLeft240">
<a href="http://www.flickr.com/photos/hyku/865512558/"><img src="/images/wordcamp2007-audience.jpg" alt="400 bloggers" /></a><br />
Amidst 400 bloggers, one handsome man raises his hand to ask a pertinent question.  (CC: <a href="http://hyku.com/blog/">Josh Hallett</a>)
</div>
<p>I was looking forward to <a href="http://2007.wordcamp.org/schedule/blog-monetization/">Jeremy Wright&#8217;s presentation on Blog Monetization</a>.  I was hoping to hear some good advice as to dos and don&#8217;ts, and what people might prefer to AdSense.  I make about $15 to $20 per month from advertising revenue here, and if I could be getting a bit more without selling my soul and whoring my web site out, that would be really nice.</p>
<p>Jeremy opted to go for a panel format, which sounded like a neat idea.  Unfortunately, Jeremy doesn&#8217;t seem completely at ease managing a panel discussion yet, and tended to talk over his guests.  The forum felt a bit ADD and I didn&#8217;t get as much from it as I had hoped.</p>
<p>The basics:</p>
<ul>
<li>Managing site advertising can be a full-time job: you won&#8217;t be able to &#8220;live&#8221; off your blog without working for it.</li>
<li>You make more money from work and opportunities you land because of your blog than revenue generated by the blog itself.</li>
<li>Additional revenue may be available through content syndication in the near future, through sites like <a href="http://www.newstex.com/">Newstex</a>.</li>
<li>If you really want to go for the easiest money, do product reviews and link to merchant referral programs.</li>
</ul>
<p>At the end, the following advice was offered:</p>
<ul>
<li>Improve 1% per week &#8212; just keep making your site better in little ways, write better content, etc.</li>
<li>Don&#8217;t fall into the thinking of &#8220;gotta make money&#8221;</li>
<li>Keep Your Passion</li>
<li>Never Lose your Passion</li>
</ul>
<p>Yay Passion!</p>
<h3>Getting Involved with WordPress</h3>
<p><a href="http://foolswisdom.com/">Lloyd Budd</a> gave a little pep talk and <a href="http://txfx.net/">Mark Jaquith</a> <a href="http://2007.wordcamp.org/schedule/getting-involved/">got in to further detail</a> . . .</p>
<ul>
<li>Some concern over the ongoing utility of <code>#wordpress</code>, on FreeNode.</li>
<li>A lot of good coordination takes place on <a href="http://lists.automattic.com/">the mailing lists</a>.</li>
<li><a href="http://codex.wordpress.org/">The Codex</a> can use a lot of help, and tutorial stuff like screencasts and podcasts, as well as developer docs.</li>
</ul>
<p>I&#8217;m hoping to get more involved in the documentation.</p>
<p>It was also pointed out that contributors have a tendency to enjoy contributing so much that they get burnt out and need to take vacations from WordPress.</p>
<h3>Designing the Obvious</h3>
<p><a href="http://www.rhjr.net/theblog">Robert Hoekman</a> was introduced as having written a fantastic book, called <a href="http://www.rhjr.net/dto">&#8220;Designing the Obvious&#8221;</a> and Matt so loved this book that he invited Robert to speak.  Robert had assembled a presentation called &#8220;What Makes an Obvious Blog&#8221; but, inspired by the spirit of the event and the afternoon heat, Robert announced that he had decided to toss his presentation and <a href="http://2007.wordcamp.org/schedule/designing-the-obvious/">&#8220;Totally Fricking Improvise&#8221;</a> and garnered a round of applause.  He dove headfirst into a stunning belly flop in front of 400 people.  Bloggers can respect such temerity.</p>
<p>He started out pretty well . . . the premise that you should figure what design elements are essential for a blog, and go from there, but he ended up rambling about Tumblr blogs, among other things.  He eventually pointed out the importance of being on-topic.</p>
<p>Ah.  Most people hate blogrolls&#8211;not essential!!  But Matt came to their defense, saying he has discovered a lot of blogs that way.  A good approach to a blog roll would be to mix links in to the &#8220;read more&#8221; navigation area.  Hrmmm.</p>
<h3>Whitehat SEO for Bloggers</h3>
<p><a href="http://www.mattcutts.com/blog/">Matt Cutts</a>, a Google Software Engineer, who works on web spam and search quality, caused many a blogger to swoon in the afternoon heat, as he gave <a href="http://2007.wordcamp.org/schedule/search-engine-optimization/">a cogent presentation on WordPress, Search Engine strategies, and numerous other useful and insightful tidbits:</a></p>
<div class="capRight240"><a href="http://www.flickr.com/photos/stewtopia/867300400/"><img src="/images/wordcamp2007-cutts.jpg" alt="Matt Cutts, Google" /></a><br />
Matt Cutts fights web spam at Google: <em>&#8220;Respect my Authoritay!&#8221;</em>  (CC: <a href="http://blog.stewtopia.com/">Randy Stewart</a>)</div>
<p>Favorite Plugins:</p>
<ul>
<li>Add <a href="http://www.google.com/analytics/">Google Analytics</a> to <code>footer.php</code></li>
<li><a href="http://blog.jalenack.com/archives/democracy/">Democracy</a>, for polls</li>
<li><a href="http://www.netconcepts.com/seo-title-tag-plugin/">SEO Title</a> to swap blog name and post title in <code>&lt;TITLE&gt;</code></li>
<li><a href="http://mnm.uib.es/gallir/wp-cache-2/">WP-Cache</a></li>
</ul>
<p>Casually work keywords in to your text:<br />
Use the <a href="https://adwords.google.com/select/KeywordTool">Google Keyword Tool</a> to find synonym keywords that are &#8220;hot&#8221;<br />
Vary words: different content in a post title and the post&#8217;s slug<br />
Try to include synonyms while writing the post.<br />
Readers will leave comments with additional synonyms you wouldn&#8217;t think of on to your post.<br />
Post categories are also keywords.</p>
<p>Usability tips:<br />
Crawlability: WordPress rocks for Googlebot<br />
Make post-creation dates easy to find (how old is this article!?)<br />
Check your site in a cell phone &#8212; audience suggested the <a href="http://alexking.org/projects/wordpress">WP-Mobile</a> plugin<br />
Full-text RSS feeds: make it easy on readers: more likely they will read, comment, link . . .<br />
Your blog should do the standard pings (one reason I use WordPress&#8211;takes care of this stuff!)</p>
<p>Favorite Google Services:<br />
<a href="http://www.google.com/webmasters/">Webmaster console</a> (his baby)<br />
<a href="http://google.com/coop/cse/">Custom Search Engine</a> (I recently <a href="http://google.com/coop/cse?cx=000047825594915205559%3Abqellp2qzto">added this</a>!)<br />
<a href="https://www.google.com/adsense/">AdSense</a><br />
<a href="https://www.google.com/adsense/">Analytics</a></p>
<p>Also, <a href="http://www.feedburner.com/">Feedburner</a></p>
<p>A security tip: use Apache&#8217;s <code>.htaccess</code> to whitelist your home IP to access to <code>/wp-admin/</code></p>
<p>Fun questions:<br />
Q: So, what if I served special easy-to-crawl content to Googlebot?<br />
A: Don&#8217;t do that!  If Googlebot thinks you&#8217;re &#8220;masking&#8221; then you can say goodbye to your PageRank!<br />
Q: Are some file extensions preferred over others?<br />
A: Not with Google.  The only extension that&#8217;s definitely bad is . . . (he let us take a guess . . . hrmm) . . . <code>.exe</code>!  (HAHA!!)</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2007/07/24/wordcamp-notes-day1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Photos Flickr 0.7</title>
		<link>http://dannyman.toldme.com/2007/06/27/photos-flickr-07/</link>
		<comments>http://dannyman.toldme.com/2007/06/27/photos-flickr-07/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 07:22:27 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2007/06/27/photos-flickr-07/</guid>
		<description><![CDATA[Photos Flickr now supports pretty URLs, and sports an inline <a href="http://dannyman.toldme.com/photos-flickr/rtfm/">Function Reference</a>, that should become pretty fully fleshed out in short order.]]></description>
			<content:encoded><![CDATA[<p>Photos Flickr now supports pretty URLs, and sports an inline <a href="http://dannyman.toldme.com/photos-flickr/rtfm/">Function Reference</a>, that should become pretty fully fleshed out in short order.</p>
<p>Pretty URLs?  Yes!  If you are using permalinks and mod_rewrite, compare these two URLs:<br />
<a href="http://ratchet.nebcorp.com/~djh/pf-demo/?page_id=3&#038;photoset=72157600167167486&#038;photo=481023042">/?page_id=3&#038;photoset=72157600167167486&#038;photo=481023042</a><br />
versus:<br />
<a href="http://dannyman.toldme.com/photos/photoset/72157600167167486/photo/481023042">/photos/photoset/72157600167167486/photo/481023042</a></p>
<p><b>BUG:</b> Uhm, actually, if you have pretty permalinks this plugin will break unless your post slug is <code>photos</code> . . . I just tried to fix this but failed.  Sorry about that.</p>
<p><strong>See Photos Flickr in Action</strong></p>
<ul>
<li><a href="http://ratchet.nebcorp.com/~djh/pf-demo/?page_id=3">Default Template &#8220;Demo&#8221; Blog</a></li>
<li><a href="http://dannyman.toldme.com/photos/photosets/">dannyman.toldme.com/photos/photosets/</a></li>
</ul>
<p><strong>What is New?  What has Changed?</strong></p>
<ul>
<li>New: <a href="http://dannyman.toldme.com/photos-flickr/rtfm/">Function Reference Manual</a></li>
<li>Changed: Extended <code>photos_photo_index()</code> to support titles and descriptions, pimp out default template.</li>
<li>Changed: References to <code>$_REQUEST</code> have migrated to refer to WordPress&#8217; <code>$wp_query->query_vars</code>.</li>
<li>New: Checks if blog is <code>using_permalinks()</code> and if so, utilizes rewrite rules to make pretty permalinks.</li>
<li>New Bug: Checks if blog is <code>using_permalinks()</code> and if so, rewrites URL links along the assumption that your page slug is <code>photos</code>.</li>
<li>New: Added <code>photos_photo_href()</code> function.</li>
</ul>
<p><strong>What is Fixed?</strong></p>
<ul>
<li>Fixed: Minor fix to <code>photos_private_getContext()</code> to correctly get photoset<br />
context.</li>
</ul>
<p>There is plenty more work to make this an awesome plugin.  You can <a href="/projects/#photos-flickr-milestones">track plans and progress on my &#8220;projects&#8221; page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2007/06/27/photos-flickr-07/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mac OS X and per-user Support for .htaccess</title>
		<link>http://dannyman.toldme.com/2007/06/21/mac-os-x-sites-htaccess-allowoverride/</link>
		<comments>http://dannyman.toldme.com/2007/06/21/mac-os-x-sites-htaccess-allowoverride/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 00:00:00 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Mac OS X]]></category>

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2007/06/21/mac-os-x-sites-htaccess-allowoverride/</guid>
		<description><![CDATA[Problem
I just spent a fair amount of time wrestling with Apache on my Macintosh.  The problem is that it simply refused to read the .htaccess file in my user directory.
My First Approach
I took the &#8220;Unix Guy&#8221; approach and edited /etc/httpd/httpd.conf to ensure that Apache was configured to consult my user&#8217;s .htaccess file.  I [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Problem</strong></p>
<p>I just spent a fair amount of time wrestling with Apache on my Macintosh.  The problem is that it simply refused to read the <code>.htaccess</code> file in my user directory.</p>
<p><strong>My First Approach</strong></p>
<p>I took the &#8220;Unix Guy&#8221; approach and edited <code>/etc/httpd/httpd.conf</code> to ensure that Apache was configured to consult my user&#8217;s <code>.htaccess</code> file.  I changed this bit:</p>
<pre>
&lt;Directory /Users/*/Sites&gt;
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes FollowSymLinks IncludesNoExec
    [ . . . ]
</pre>
<p>To read:</p>
<pre>
&lt;Directory /Users/*/Sites&gt;
    # AllowOverride FileInfo AuthConfig Limit
    AllowOverride All
    Options MultiViews Indexes FollowSymLinks IncludesNoExec
    [ . . . ]
</pre>
<p>But . . . nada.<span id="more-1277"></span></p>
<p><strong>Why That Didn&#8217;t Work</strong></p>
<p>Eventually, I found the answer in <a href="http://www.oreillynet.com/pub/a/mac/2002/01/29/apache_macosx_four.html">an O&#8217;Reilly Tutorial</a>.  Under the section &#8220;User-Based Configurations&#8221; Kevin Hemenway explains how &#8220;per-user&#8221; configurations are done in the world of Macintosh:</p>
<pre>
mini-toldme-com:~/Sites djh$ <b>ls /etc/httpd/users/</b>
djh.conf
mini-toldme-com:~/Sites djh$ <b>cat /etc/httpd/users/djh.conf </b>
&lt;Directory "/Users/djh/Sites/"&gt;
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
&lt;/Directory&gt;
</pre>
<p>The O&#8217;Reilly article explains that you could edit that file, sure, but then <a href="http://www.oreillynet.com/pub/a/mac/2002/01/29/apache_macosx_four.html?page=2">on the next page, it suggests that <code>.htaccess</code> may be a bit more convenient</a>:</p>
<blockquote><p>As you&#8217;ve run through these various tweaks and twiddles of the Apache configuration file, one thing has always remained true: to make the changes active, you&#8217;ve had to stop and start Apache after each edit. Not only is this tedious and subject to forgetfulness, it&#8217;s also avoidable with a little thing called an <code>.htaccess</code> file.</p></blockquote>
<p>He then goes on to explain the <code>AllowOverride</code> thing, but doesn&#8217;t point out that <code>/etc/httpd/users</code> is going to spank you.  Hopefully, his readers paid enough attention and know that within their <code>~/Sites</code> directory they&#8217;ll have to edit  <code>/etc/httpd/users/`whoami`.conf</code> . . .</p>
<p><strong>How I Fixed It</strong></p>
<p>I considered changing my <code>/etc/httpd/users/djh.conf</code> but I suspected that some day whatever created it might create it anew, clobbering my changes, and I would forget it had ever existed, and I would go through this frustration all over again.  Since I had already made the appropriate change in my <code>/etc/httpd/httpd.conf</code> and since I am the only user on the system, I simply made one more edit to <code>/etc/httpd/httpd.conf</code>.  Down near the end, I changed this line:</p>
<pre>
Include /private/etc/httpd/users/*.conf
</pre>
<p>To this:</p>
<pre>
# What the f_ck g_d d_mned insanity!?
# Include /private/etc/httpd/users/*.conf
</pre>
<p>Restart Apache and now I can use <code>.htaccess</code> as much as I please.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2007/06/21/mac-os-x-sites-htaccess-allowoverride/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Photos Flickr 0.6</title>
		<link>http://dannyman.toldme.com/2007/06/20/photos-flickr-06/</link>
		<comments>http://dannyman.toldme.com/2007/06/20/photos-flickr-06/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 01:05:40 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Technical]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2007/06/20/photos-flickr-06/</guid>
		<description><![CDATA[
My WordPress plugin, Photos Flickr, now supports sets.  I spent a little time crafting up a nice default template.  I also set up a &#8220;demo blog&#8221; to give an online demonstration of the new default template.
I had planned to &#8220;ship&#8221; this version last Friday, but it was a little more adventure than I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/dannyman/563779703/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1348/563779703_bd5e0305f7_m.jpg" alt="Photos Flickr 0.6 Preview" align="right" height="240" width="212" /></a></p>
<p>My WordPress plugin, <a href="/photos-flickr/">Photos Flickr</a>, <strong>now supports sets.</strong>  I spent a little time crafting up a nice default template.  I also set up a <a href="http://ratchet.nebcorp.com/~djh/pf-demo/">&#8220;demo blog&#8221;</a> to give <a href="http://ratchet.nebcorp.com/~djh/pf-demo/?page_id=3">an online demonstration of the new default template</a>.</p>
<p>I had <a href="/projects/">planned</a> to &#8220;ship&#8221; this version last Friday, but it was a little more adventure than I had anticipated.</p>
<blockquote><p><a href="/photos-flickr/">Photos Flickr</a> is an early version of a plugin that I am developing for WordPress blog software to display a user’s Flickr album within their blog. The result? Someone with a WordPress blog can now have <a href="http://dannyman.toldme.com/photos/">a basic interface to let readers view their Flickr images</a>, using their own web site and design.</p>
<p>Photos Flickr makes use of <a href="http://www.dancoulter.com/">Dan Coulter</a>&#8217;s <a href="http://www.phpflickr.com/">PHPFlickr</a> library, which in turn accesses the <a href="http://www.flickr.com/services/api/">Flickr API</a>.</p></blockquote>
<p>What is New?  What Has Changed?</p>
<ul>
<li>New: Added rudimentary support for sets.</li>
<li>Changed: Fixed the tag-listing function to drop the last comma.</li>
<li>Changed: A bunch of internal work for functions to understand the current &#8220;context&#8221; appropriately when navigating through a photostream, versus a set &#8230;</li>
<li>New: Added <code>photos_photoset_title()</code> and <code>photos_photoset_description()</code></li>
<li>Changed: <code>is_photo()</code> returns current photo ID.</li>
<li>New: Added <code>photos_photo_date_taken()</code>&#8211;support date format manipulation.</li>
<li>New: <code>photos_photo_tag_list()</code> and <code>photos_photo_photoset_list()</code> return lists of tags and photosets for a photo.</li>
<li>Changed: Functions <code>photos_photo_(next|prev)_(href|url|title)</code> wrap around new private <code>photos_private_getContext()</code>.</li>
<li>New: New functions <code>photos_photoset_(next|prev)_(href|url|title)</code> wrap around new private <code>photos_private_getContext()</code>.</li>
<li>Changed: Disabled ALT and TITLE attributes on image links due to not-escaping-quotes issues.</li>
<li>Changed: Renamed <code>photos_index()</code> to <code>photos_photo_index()</code> and<br />
<code>photos_pageindex()</code> to <code>photos_photo_pageindex()</code> with stub functions for<br />
backwards-compatibility.</li>
<li>Added: New <code>is_index()</code> returns <strong>photo</strong>, <strong>tag</strong>, or <strong>photoset</strong> to tell us what index has been requested.</li>
<li>New: Added photos_photoset_index() function to display a &#8220;pretty&#8221; index of photosets.</li>
<li>New: Added <code>photos_photo_index_href()</code> and <code>photos_photoset_index_href()</code> functions to refer to photo index and photoset index pages.</li>
</ul>
<p>There is plenty more work to make this an awesome plugin.  You can <a href="/projects/#photos-flickr-milestones">track plans and progress on my &#8220;projects&#8221; page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2007/06/20/photos-flickr-06/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Photos Flickr 0.5</title>
		<link>http://dannyman.toldme.com/2007/06/06/photos-flickr-05/</link>
		<comments>http://dannyman.toldme.com/2007/06/06/photos-flickr-05/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 08:07:36 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Technical]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2007/06/06/photos-flickr-05/</guid>
		<description><![CDATA[I have had my sleeves rolled up . . . and I am having a blast!  It is with some joy that I announce the release of the latest development version of my WordPress Flickr plugin, Photos Flickr 0.5:
Photos Flickr is an early version of a plugin that I am developing for WordPress blog [...]]]></description>
			<content:encoded><![CDATA[<p>I have had my sleeves rolled up . . . and I am having a blast!  It is with some joy that I announce the release of the latest development version of my WordPress Flickr plugin, <a href="/photos-flickr/">Photos Flickr</a> 0.5:</p>
<blockquote><p><a href="/photos-flickr/">Photos Flickr</a> is an early version of a plugin that I am developing for WordPress blog software to display a user’s Flickr album within their blog. The result? Someone with a WordPress blog can now have <a href="http://dannyman.toldme.com/photos/">a basic interface to let readers view their Flickr images</a>, using their own web site and design.</p>
<p>Photos Flickr makes use of <a href="http://www.dancoulter.com/">Dan Coulter</a>&#8217;s <a href="http://www.phpflickr.com/">PHPFlickr</a> library, which in turn accesses the <a href="http://www.flickr.com/services/api/">Flickr API</a>.</p></blockquote>
<p>What&#8217;s new?</p>
<ul>
<li>Bundled PHPFlickr into the distribution</li>
<li>Fixed some bugs caused by upgrading PHPFlickr</li>
<li>Wrote more user-friendly <a href="/photos-flickr/#install">setup instructions</a></li>
<li>Built &#8220;sample template&#8221; for photos for WordPress Default theme</li>
<li>Moved configuration settings, like API key, into WP Admin Panel</li>
<li>Bundled API key into distribution</li>
<li>Additional code cleanup and added private functions <code>get_flickr_user()</code>, and <code>photos_init_phpFlickr()</code> to keep things sane</li>
<li>Flickr User ID can now be specified in the WordPress Admin panel&#8211;no more config file!</li>
<li>Flickr User ID can be input as screen name, NSID, or e-mail address, and will default to the <code>admin_email</code> parameter</li>
</ul>
<p>I also managed, despite myself, to release this (arguably) on-time!  Yay me!</p>
<p>I would rate this release as <em>cool-but-underwhelming</em> or, &#8220;shows promise&#8221; . . .</p>
<p>Interested parties can check <a href="/projects/#photos-flickr-milestones">ongoing development plans / milestone on my projects page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2007/06/06/photos-flickr-05/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HOWTO: Add Print Stylesheet to WordPress</title>
		<link>http://dannyman.toldme.com/2007/06/01/wordpress-media-print/</link>
		<comments>http://dannyman.toldme.com/2007/06/01/wordpress-media-print/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 00:00:21 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Technical]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2007/06/01/wordpress-media-print/</guid>
		<description><![CDATA[I wanted to print an article from my web site, but the printing was ugly.  I had previously tried to fix up my printing by adding some @media print stuff to my stylesheet, but I found it wasn&#8217;t working.  Since I have free time, I spent a bunch of it thrashing my head [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to print an article from my web site, but the printing was ugly.  I had previously tried to fix up my printing by adding some <code>@media print</code> stuff to my stylesheet, but I found it wasn&#8217;t working.  Since I have free time, I spent a bunch of it <del datetime="2007-05-30T23:18:30+00:00">thrashing my head against the wall trying to figure out what&#8217;s up</del> <ins datetime="2007-05-30T23:56:34+00:00">researching the correct approach</ins>.  Finally, I found a wordpress.org article: <a href="http://codex.wordpress.org/Styling_for_Print">&#8220;Styling for Print&#8221;</a>.</p>
<p>To specify a &#8220;print&#8221; stylesheet for WordPress:<span id="more-1267"></span></p>
<p><strong>Step One:</strong> Edit your theme&#8217;s <code>header.php</code> and change this:</p>
<blockquote><p><code>&lt;link rel="stylesheet" href="&lt;?php bloginfo('stylesheet_url'); ?&gt;" type="text/css" media="screen" /&gt;</code></p></blockquote>
<p>To this:</p>
<blockquote><p><code>&lt;link rel="stylesheet" href="&lt;?php bloginfo('stylesheet_url'); ?&gt;" type="text/css" media="screen, print" /&gt;</code></p></blockquote>
<p>This is actually the one part of the puzzle I was missing.  What it does is tell the User Agent to apply the stylesheet when displaying on screen, and <em>also when printing</em>.</p>
<p><strong>Step Two:</strong> Add a <code>@media print</code> section to your stylesheet.</p>
<p>For me, this means setting <code>display: none;</code> on structural elements that I don&#8217;t want to print.  I came up with:</p>
<pre>
@media print {
    DIV#sidebar { display: none; }
    .comments { display: none; }
    .credit { display: none; }
    .noPrint { display: none; }
}
</pre>
<p>That turns off the sidebar, the comments, the &#8220;credit&#8221; footer at the very bottom of the screen, and anything marked by <code>class="noPrint"</code>.</p>
<p><strong>Step Three:</strong> Add <code>class="noPrint"</code> where needed.</p>
<blockquote><p><code>&lt;p style="noPrint"&gt;This paragraph would be displayed on a screen, but not in a printout.&lt;/p&gt;</code></p></blockquote>
<p>This is how I turned off the menus within the top header.  I kept the top-most banner intact because my web site has the same name as the URL, which is nice to have in case someone were to stumble across a printout one day and track me down online.</p>
<p>You may have to wrap some things in DIV or SPAN enclosures.  The trickiest thing for me was to disable Google AdSense.  Adding <code>class="noPrint"</code> to the SCRIPT tags didn&#8217;t work: I had mark the parent element.</p>
<p><strong>Step Four:</strong> Test!</p>
<p>Visit the web browsers you have access to and &#8220;Print Preview&#8221; on a variety of pages: some pages have elements that others don&#8217;t, and some web browsers are goofier than others.  You&#8217;ll want to go through and tweak things . . .</p>
<p>That is all there is to it, really.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2007/06/01/wordpress-media-print/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress Upgraded</title>
		<link>http://dannyman.toldme.com/2007/05/30/wordpress-22/</link>
		<comments>http://dannyman.toldme.com/2007/05/30/wordpress-22/#comments</comments>
		<pubDate>Wed, 30 May 2007 00:00:24 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Excerpts]]></category>

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2007/05/30/wordpress-22/</guid>
		<description><![CDATA[I successfully upgraded WordPress to 2.2.  I don&#8217;t bother with WordPress upgrades that often, because even the simple &#8220;Five Step&#8221; procedure can get a bit hairy.  I&#8217;m still grinning at &#8220;Step 3: Overwrite Files&#8221; . . .
Step 3: Overwrite Files
Get the latest and greatest WordPress and upload it to the WordPress directory, overwriting [...]]]></description>
			<content:encoded><![CDATA[<p>I successfully upgraded WordPress to 2.2.  I don&#8217;t bother with WordPress upgrades that often, because even the simple &#8220;Five Step&#8221; procedure can get a bit hairy.  I&#8217;m still grinning at <a href="http://codex.wordpress.org/Upgrading_WordPress#Step_3:_Overwrite_Files">&#8220;Step 3: Overwrite Files&#8221;</a> . . .</p>
<blockquote><p><strong>Step 3: Overwrite Files</strong></p>
<p><a href="http://wordpress.org/download">Get the latest and greatest WordPress</a> and upload it to the WordPress directory, overwriting all the files that exist there only after you have delete the old files, which is explained as follows (do not overwrite your wp-content directory or wp-config.php). <strong>Important:</strong> when upgrading from 2.0.x to 2.2, or <strong>from 2.1.x to 2.2,</strong> you will need to <a href="http://codex.wordpress.org/Upgrading_WordPress#Step_7:_Delete_the_old_WordPress_files">delete old files on the server</a>, because several file names have changed. What if something goes wrong, you ask? Well, did you not create a backup of all files in <a href="http://codex.wordpress.org/Upgrading_WordPress#Step_1:_Backup_Database_Tables_and_Files_including_.htaccess">Step 1</a>? You can fall back upon them in the worst case scenario. <a href="http://codex.wordpress.org/Upgrading_WordPress#Step_7:_Delete_the_old_WordPress_files">Deleting your old files on the server</a> and uploading the newer files from the new version you downloaded is an alternative which will ensure that the files on the server have been replaced for sure. </p></blockquote>
<p>According to my &#8220;worklog&#8221; file, the process took 25 minutes:<span id="more-1266"></span></p>
<pre>
Tue May 29 15:35
- Upgrade WordPress on dannyman.toldme.com ...
- mini:
cd Documents/Backups &#038;&#038; make get_ratchet
- ratchet:
/usr/local/bin/mysqldump -u djh --password=?????? djh_wordpress >\\
    $HOME/public_html/toldme/BACKUP/djh_wordpress-2007-05-29.sql
- Disable plugins: Akismet, Customizable Post Listing, Gravatar,
  HeadMeta, Next/Previous Archive Date, Photos Flickr, Related Posts,
  Word Statistics
- ratchet:
rm -rf wp-admin wp-atom.php wp-blog-header.php wp-comments-post.php \\
    wp-commentsrss2.php wp-config-sample.php wp-feed.php wp-includes/ \\
    wp-links-opml.php wp-login.php wp-mail.php wp-pass.php wp-rdf.php \\
    wp-register.php readme.html wp.php xmlrpc.php license.txt
cd ..
wget http://wordpress.org/latest.tar.gz
tar tfvz latest.tar.gz
cp `find wordpress -type f -depth 1` toldme/
cp -rp `find wordpress -type d -depth 1` toldme/
- http://dannyman.toldme.com/wp-admin/upgrade.php ... database upgrade
  done ...
- Per http://codex.wordpress.org/Upgrading_WordPress "Step 5: Reactivate
  Plugins one by one" ...
- Okay, looks alright. :)
</pre>
<p>Since the documentation is in Wiki format, I suppose I should try to <a href="http://codex.wordpress.org/Upgrading_WordPress#Step_3:_Overwrite_Files">clean it up a bit</a> . . . try not to get too smarmy:</p>
<blockquote><p><strong>Step 3: Overwrite Files</strong></p>
<p><a href="http://wordpress.org/download">Get the latest and greatest WordPress</a> and upload it to the WordPress directory, overwriting all the files that exist there. </p>
<p><strong>Important:</strong> If you are upgrading to WordPress 2.2 from 2.0.x or 2.1.x then someone who wrote a previous version of this page thinks it important for you to delete any WordPress filenames that may have changed.  Take a look at the <a href="http://codex.wordpress.org/Upgrading_WordPress#Step_7:_Delete_the_old_WordPress_files">Delete the old WordPress files</a> section for clarification.</p>
<p>&#8220;What if something goes wrong,&#8221; you ask? Well, did you not create a backup of all files in <a href="http://codex.wordpress.org/Upgrading_WordPress#Step_1:_Backup_Database_Tables_and_Files_including_.htaccess">Step 1</a>? You can fall back upon them in the worst case scenario. <a href="http://codex.wordpress.org/Upgrading_WordPress#Step_7:_Delete_the_old_WordPress_files">Deleting your old files on the server</a> and uploading the newer files from the new version you downloaded is an alternative which will ensure that the files on the server have been replaced for sure. </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2007/05/30/wordpress-22/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress: Last Month / Next Month</title>
		<link>http://dannyman.toldme.com/2005/12/11/wordpress-last-month-next-month/</link>
		<comments>http://dannyman.toldme.com/2005/12/11/wordpress-last-month-next-month/#comments</comments>
		<pubDate>Sun, 11 Dec 2005 00:00:19 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Technical]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1048</guid>
		<description><![CDATA[I was tweaking the site navigation&#8211;and I welcome any feedback a reader may have&#8211;and I had to grab a plugin to allow me to link to next month / previous month / next year / previous year:
Next Archive Date / Previous Archive Date Plugin from scriptygoddess
I appreciate scriptygoddess&#8217; work, as I&#8217;m using her paginate plugin [...]]]></description>
			<content:encoded><![CDATA[<p>I was tweaking the site navigation&#8211;and I welcome any feedback a reader may have&#8211;and I had to grab a plugin to allow me to link to next month / previous month / next year / previous year:</p>
<p><a href="http://www.scriptygoddess.com/archives/2004/06/27/previous-archive-date-next-archive-date-links/">Next Archive Date / Previous Archive Date Plugin from scriptygoddess</a></p>
<p>I appreciate scriptygoddess&#8217; work, as I&#8217;m using her paginate plugin as well.  Unfortunately, the example on her site is kind of nasty.  So, if someone is casting about on Google, here&#8217;s the code in my sidebar template:</p>
<pre>
    &lt;?php if (is_year()): ?&gt;
        &lt;p&gt;&lt;b&gt;By Year&lt;/b&gt;&lt;br /&gt;
        &lt;?php previous_archive_date() ?&gt;
            ...
        &lt;?php next_archive_date() ?&gt;&lt;/p&gt;
    &lt;?php elseif (is_month()): ?&gt;
        &lt;p&gt;&lt;b&gt;Last Month&lt;/b&gt;&lt;br /&gt;
        &lt;?php previous_archive_date() ?&gt;
        &lt;p&gt;&lt;b&gt;Next Month&lt;/b&gt;&lt;br /&gt;
        &lt;?php next_archive_date() ?&gt;&lt;/p&gt;
    &lt;?php endif; ?&gt;
</pre>
<p>Thanks for the code, Jennifer!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2005/12/11/wordpress-last-month-next-month/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress: How to type a Backslash</title>
		<link>http://dannyman.toldme.com/2005/07/22/wordpress-backslash-literal-entities/</link>
		<comments>http://dannyman.toldme.com/2005/07/22/wordpress-backslash-literal-entities/#comments</comments>
		<pubDate>Fri, 22 Jul 2005 19:00:24 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Technical]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=966</guid>
		<description><![CDATA[WordPress rocks.  It is blog software that drives much of this web site.  WordPress rocks, it does, except for a few things it sucks at, like printing backslashes.
They&#8217;re taken care of the BR-in-PRE stuff, but I still have trouble with backslashes.  They don&#8217;t get displayed unless you type two backslashes, but there [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress rocks.  It is blog software that drives much of this web site.  WordPress rocks, it does, except for a few things it sucks at, like printing backslashes.</p>
<p>They&#8217;re taken care of the BR-in-PRE stuff, but I still have trouble with backslashes.  They don&#8217;t get displayed unless you type two backslashes, but there seems to be another preprocessor that sucks out backslashes when you edit the post, and typing &#92;&#92; into the web just seems so wrong.</p>
<p>But you can use HTML entity references.  These are HTML escape codes for character literals.  Here are a few potentially handy ones:<span id="more-966"></span></p>
<pre>
&lt; &amp;lt;     Greater Than
&gt; &amp;gt;     Less Than
&amp; &amp;amp;    AMPersand

&#39; &amp;#39;    single quote
&#34; &amp;#34;    double quote
&#92; &amp;#92;    backslash
&#59; &amp;#59;    semicolon
</pre>
<p>The #number entities correspond to decimal values of ASCII, which you can check on a Unix box with <code>man ascii</code>.  Or, here you go:</p>
<pre>
               33  !    34  "    35  #    36  $    37  %    38  &#038;    39  '
      40  (    41  )    42  *    43  +    44  ,    45  -    46  .    47  /
      48  0    49  1    50  2    51  3    52  4    53  5    54  6    55  7
      56  8    57  9    58  :    59  ;    60  &lt;    61  =    62  &gt;    63  ?
      64  @    65  A    66  B    67  C    68  D    69  E    70  F    71  G
      72  H    73  I    74  J    75  K    76  L    77  M    78  N    79  O
      80  P    81  Q    82  R    83  S    84  T    85  U    86  V    87  W
      88  X    89  Y    90  Z    91  [    92  &#93;    93  ]    94  ^    95  _
      96  `    97  a    98  b    99  c   100  d   101  e   102  f   103  g
     104  h   105  i   106  j   107  k   108  l   109  m   110  n   111  o
     112  p   113  q   114  r   115  s   116  t   117  u   118  v   119  w
     120  x   121  y   122  z   123  {   124  |   125  }   126  ~
</pre>
<p>I usually make it a habit to type &lt; and &gt; as &amp;lt; and &amp;gt;.  <strong>Don&#8217;t forget the semicolon!</strong>  Some web browsers will interpolate broken HTML like &amp;amp as an ampersand, just to make up for sloppy web pages, but that is just going to cause you trouble down the road.  Always type the ampersand and the semicolon.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2005/07/22/wordpress-backslash-literal-entities/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My First WordPress Hack</title>
		<link>http://dannyman.toldme.com/2004/07/22/my-first-wordpress-hack/</link>
		<comments>http://dannyman.toldme.com/2004/07/22/my-first-wordpress-hack/#comments</comments>
		<pubDate>Thu, 22 Jul 2004 19:23:07 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Technical]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2004/07/22/my-first-wordpress-hack/</guid>
		<description><![CDATA[As posted to WordPress Hacks:

Hey. I wanted to be able to see posts that had been &#8220;recently modified&#8221; as opposed to the date posted. This way I can add entries out-of-order, but still advertise them on my sidebar.
I hacked the get_archives() function to add a recentlymod option. You can see the following function call in [...]]]></description>
			<content:encoded><![CDATA[<p>As posted to <a href="http://wordpress.org/support/index.php?action=vthread&#038;forum=10&#038;topic=10050">WordPress Hacks</a>:</p>
<blockquote><p>
Hey. I wanted to be able to see posts that had been &#8220;recently modified&#8221; as opposed to the date posted. This way I can add entries out-of-order, but still advertise them on my sidebar.</p>
<p>I hacked the <code>get_archives()</code> function to add a <em>recentlymod</em> option. You can see the following function call in use under &#8220;Recent Posts.&#8221;</p>
<p><code>get_archives('recentlymod', 7);</code></p>
<p>The hack is available at <a href="http://dannyman.toldme.com/scratch/wp-template-functions-general.diff">http://dannyman.toldme.com/scratch/wp-template-functions-general.diff</a>.</p>
<p>Personally, I would like WP to have an admin feature to distinguish between <code>post_date</code> and <code>post_modified</code> &#8230; a toggle I could set somewhere to ensure that my RSS feed was behaving as &#8220;Recent Posts&#8221; does.
</p></blockquote>
<p>Now I can post stories from my World Tour (still not finished yet!?) and my readers will have a clue that new material has appeared.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2004/07/22/my-first-wordpress-hack/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress - First Impressions</title>
		<link>http://dannyman.toldme.com/2004/07/07/wordpress-first-impressions/</link>
		<comments>http://dannyman.toldme.com/2004/07/07/wordpress-first-impressions/#comments</comments>
		<pubDate>Wed, 07 Jul 2004 23:59:54 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Technical]]></category>

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2004/07/07/wordpress-first-impressions/</guid>
		<description><![CDATA[I recently installed WordPress, mostly out of curiosity.  My web site has evolved over many years from static files, to using stylesheets, and some lightly-templated formatting to facilitate the creation of an RSS feed.  While I have maintained a &#8220;log&#8221; for a few years now, I&#8217;ve always been wary of the whole self-important, [...]]]></description>
			<content:encoded><![CDATA[<p>I recently installed <a href="http://wordpress.org/">WordPress</a>, mostly out of curiosity.  My web site has evolved over many years from static files, to using stylesheets, and some lightly-templated formatting to facilitate the creation of an RSS feed.  While I have maintained a &#8220;log&#8221; for a few years now, I&#8217;ve always been wary of the whole self-important, vapid, &#8220;blogging&#8221; stuff.</p>
<p>Well, I saw <a href="http://www.kgarner.com/blog/">Keith Garner using it</a>, and I liked the idea that it was a rewrite of <a href="http://cafelog.com/">some previous software</a>, and had a plug-in architecture, so I thought I would try it out.  <a href="http://wordpress.org/docs/installation/5-minute/">The install was easy enough</a>, and then I got hooked in to the possibility of importing my data from into via an RSS file.  There was some wrestling involved to hack the migration script to eat my raw HTML, and a bit more to get my scraping script adapted to <a href="http://wordpress.org/support/3/8264">output the appropriate HTML via RSS</a>, but lo and behold, everything made it in.</p>
<p>And I got to tweak the look and feel a great deal with the stylesheet, and by editing the <code>index.php</code> directly.  It has <a href="http://wordpress.org/about/features/">all the bells and whistles</a>.  Like, comments, which I&#8217;ve never had before, but a few people have asked for.  And then all this gay backtrack stuff and pingback and backflip and blogflop and whatever.  Okay, it promised to be easy to install and support all the silly jargon that I don&#8217;t care about, personally.  Yay.</p>
<p>And for the most part, it has been comfortable.  I get to put things in categories.  The categories can be organized hierarchically, but any given item can have more than one category.  I can maintain a list of links that can be displayed in the side menu bar.  No really serious god-awful, show-stopping bugs &#8230;</p>
<p><span id="more-652"></span></p>
<p><strong>What do I like?</strong></p>
<p>One thing that really turned me on was that I can edit a draft of a piece and proof-read it before publishing.  This is something that was hard to do when I was just editing the HTML directly.</p>
<p>The features I&#8217;m not so interested in pretty much stay out of my way.  I don&#8217;t have to play with the links or catagories, and I can turn things off.  The features aren&#8217;t shoved down my throat.  Things are easily configurable enough so that I&#8217;m mostly comfortable.  Bottom line: it looks like it will save more of my time than it will waste, make posting easier, and provide more features for the readers than I could have provided in the old system.</p>
<p>It&#8217;s hacker-friendly.  I haven&#8217;t tried the plug-ins yet, but I was able to dork around in the <code>index.php</code> and whip my stylesheet into shape without breaking anything.  I dimly recall loading up mysql at one point to do some heavy lifting.  Nothing got in my way and everything was straightforward enough for my D.I.Y. mind.</p>
<p><strong>What don&#8217;t I like?</strong></p>
<p>For starters, the documentation is terrible.  &#8220;We&#8217;re too busy writing code to write documentation.&#8221;  For that honesty, and the fact that it is a volunteer operation, I can forgive them.</p>
<p>Some of the features are buggy.  I&#8217;d like to think that these are new features with known bugs, but you can&#8217;t really tell this from the lackluster documentation.  For example, &#8220;sort by most recent&#8221; for links doesn&#8217;t seem to work, and &#8220;sort by random&#8221; doesn&#8217;t seem sufficiently random.</p>
<p>It uses MySQL to store the post bodies.  This might simplify their coding somewhat, but I&#8217;ll have to find or write some cheap hack that can check posts out into files for editing.  I can deal with editing things in a web interface, but sometimes I need to get in there with vim.</p>
<p>There&#8217;s an e-mail gateway that works by using POP.  This was somehow easier to implement than a lightweight little script that I could invoke from <code>procmail</code>?  These PHP codin&#8217; kids these days, I tell ye &#8230;</p>
<p>The &#8220;permalink&#8221; thing is completely broken.  But I can suck it up and deal.  The feature is so tantalizing that once it has been un-sucked, I look forward to using it.</p>
<p>One feature I have seem to have lost is the distinction between when a post is written, and the date the post describes.  For example, I&#8217;m still transcribing posts from my World Trip, but WordPress doesn&#8217;t seem to appreciate that a post from 2002 can be &#8220;recent&#8221; &#8230;</p>
<p>The categories list does not seem to have any sorting &#8230;</p>
<p><strong>The Verdict so Far?</strong></p>
<p>I&#8217;d be very happy if I could specify per-category, or per-month or per-post stylesheets.  And I want to get a macro or two in to the text editing interface.  At some point I may well learn to write plug-ins, but I&#8217;m not as easger without the nice documentation.</p>
<p>All in all the documentation, and the flakiness of few of the features make me uneasy.  But compared to something like <a href="http://www.gnu.org/software/mailman/">Mailman</a>, or even a lot of <a href="http://www.veritas.com/">commercial software</a>, this project seems fairly coherent, which lends me confidence in its future maturity.</p>
<p>I like to think the documentation is out there, and it is only a matter of time before it coalesces somewhere where it can be sanely accessed.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2004/07/07/wordpress-first-impressions/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
