<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feedproxy.google.com/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feedproxy.google.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><title>soulless software</title><updated>2009-01-07T12:04:22+00:00</updated><link rel="alternate" href="http://soullesssoftware.com/" /><link rel="first" href="http://soullesssoftware.com/atom/1/page/1" type="application/atom+xml" title="First Page" /><link rel="next" href="http://soullesssoftware.com/atom/1/page/2" type="application/atom+xml" title="Next Page" /><link rel="last" href="http://soullesssoftware.com/atom/1/page/2" type="application/atom+xml" title="Last Page" /><generator uri="http://www.habariproject.org/" version="0.6-alpha">Habari</generator><id>tag:soullesssoftware.com,2009-01-07:atom/1e5d2911ccaf4e1b6d56870cd2c4e7ad0a5b1cd8</id><link rel="self" href="http://feedproxy.google.com/soullesssoftware" type="application/atom+xml" /><entry><title>Habari Plugin: Lilliputian</title><link rel="alternate" href="http://feedproxy.google.com/~r/soullesssoftware/~3/bggX_FRiO98/habari-plugin-lilliputian" /><link rel="edit" href="http://soullesssoftware.com/habari-plugin-lilliputian/atom" /><author><name>skippy</name><uri>http://soullesssoftware.com</uri></author><id>tag:soullesssoftware.com,2008:habari-plugin-lilliputian/1230154975</id><updated>2008-12-24T21:42:55+00:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-24T21:42:55+00:00</app:edited><category term="lilliputian" /><category term="plugin" /><content type="html">&lt;p&gt;I've just released &lt;a href="http://soullesssoftware.com/lilliputian"&gt;Lilliputian&lt;/a&gt;, a plugin that automatically shrinks URLs in posts that you save. It uses a pluggable mechanism to support any link-shortening service, and helper modules are supplied for &lt;a href="http://tinyurl.com/"&gt;tinyurl.com&lt;/a&gt; and &lt;a href="http://is.gd/"&gt;is.gd&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;It also provides an internal link-shortening mechanism, so you can use your own site to do all the URL redirection, if you so choose. And since it wasn't that much harder to do, I also included a rudimentary REST service for manually creating short links.&lt;/p&gt;&lt;p&gt;The REST interface is a little rough around the edges, mostly because I wanted to make sure that anyone using it was in control of the links generated, rather than making it a generally-available service running on your site. If you have an opinion on this, do please send it to me.&lt;/p&gt;&lt;p&gt;The internal link-shortening makes for a nice service to your users: if they can get to your site, chances are that the redirection mechanism will work for them, too. I've been experiencing some severe delays getting tinyurl.com to redirect me lately, and it's agitating that so many places use it as the de facto link shortening solution. Using Lilliputian you can avoid the problem of relying on external services for your short links.&lt;/p&gt;&lt;p&gt;Now, if only &lt;a href="http://pastoid.com/"&gt;pastoid.com&lt;/a&gt; provided a REST interface!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/xFr3J0SPhm9jND-TniQO0c2jXPQ/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/xFr3J0SPhm9jND-TniQO0c2jXPQ/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feedproxy.google.com/~r/soullesssoftware/~4/bggX_FRiO98" height="1" width="1"/&gt;</content><feedburner:origLink>http://soullesssoftware.com/habari-plugin-lilliputian</feedburner:origLink></entry><entry><title>Plugin Spotlight: Share Draft</title><link rel="alternate" href="http://feedproxy.google.com/~r/soullesssoftware/~3/TdSUzZ1ZCRg/plugin-spotlight-share-draft" /><link rel="edit" href="http://soullesssoftware.com/plugin-spotlight-share-draft/atom" /><author><name>skippy</name><uri>http://soullesssoftware.com</uri></author><id>tag:soullesssoftware.com,2008:plugin-spotlight-share-draft/1229478876</id><updated>2008-12-17T01:54:36+00:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-17T01:54:36+00:00</app:edited><category term="drafts" /><category term="habari-extras" /><category term="owen" /><category term="plugins" /><category term="sharedraft" /><content type="html">&lt;p&gt;While composing a rather long post recently, I decided I wanted someone to review it before I published, as something of a sanity check. I complained to &lt;a href="http://asymptomatic.net/"&gt;Owen&lt;/a&gt; that it was a pain to copy and paste the entire post into an email to send to someone. It was also a pain to create a new user account for someone so that they could log into my site and read the draft (at least currently: when the Habari ACL work gets finished, this shouldn't be an issue.)&lt;/p&gt;&lt;p&gt;I declared to Owen that it would be much easier if I could simply provide access to preview the draft from within Habari. &lt;a href="http://www.chrisjdavis.org/"&gt;Chris&lt;/a&gt; had written such a plugin for WordPress, way back in the day, and I found it to be quite useful on more than one occasion.&lt;/p&gt;&lt;p&gt;Moments later, Owen had committed the &lt;a href="http://trac.habariproject.org/habari-extras/browser/plugins/sharedraft/trunk/sharedraft.plugin.php"&gt;Share Draft&lt;/a&gt; plugin to the Habari Extras repository.&lt;/p&gt;&lt;p&gt;This simple little plugin adds a new line to the post composition screen, discreetly tucked away inside the Settings page splitter, that gives you a special URL for the item you're drafting. The special URL is simply the normal URL for the post with a querystring variable "sharedraft" appended, the value of which is the md5 of the post slug + the site's GUID.  It's extremely unlikely that anyone will guess (or even brute force) a valid value for this argument. In this way, you can easily send a link to your draft to someone more level-headed to make sure you don't stick your foot in your mouth.&lt;/p&gt;&lt;p&gt;What really impresses me about this plugin, aside from the speed with which it was created, is how amazingly simple it is. It's 62 lines including comments, and requires no action from the site owner other than activation. It hooks the &lt;code&gt;action_form_publish&lt;/code&gt; action, and injects the generated URL (for drafts only!) using the &lt;code&gt;$form-&gt;settings-&gt;append&lt;/code&gt; method. The &lt;code&gt;filter_template_where_filters&lt;/code&gt; filter in the plugin hooks into the &lt;code&gt;Posts::get()&lt;/code&gt; method to allow that method to select posts in the draft status, a status normally not available to anonymous visitors.&lt;/p&gt;&lt;p&gt;Perhaps I'm overly excited about this plugin because it so perfectly scratched the itch I had, but I think it really highlights the flexibility of the core Habari code. Thanks, Owen!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/Xvnp6uKLLMuTYyBi8ZDxl_-uPsk/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/Xvnp6uKLLMuTYyBi8ZDxl_-uPsk/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feedproxy.google.com/~r/soullesssoftware/~4/TdSUzZ1ZCRg" height="1" width="1"/&gt;</content><feedburner:origLink>http://soullesssoftware.com/plugin-spotlight-share-draft</feedburner:origLink></entry><entry><title>Habari Developer Profile: Rick Cockrum</title><link rel="alternate" href="http://feedproxy.google.com/~r/soullesssoftware/~3/G78EuhsyFEs/habari-developer-profile-rick-cockrum" /><link rel="edit" href="http://soullesssoftware.com/habari-developer-profile-rick-cockrum/atom" /><author><name>skippy</name><uri>http://soullesssoftware.com</uri></author><id>tag:soullesssoftware.com,2008:habari-developer-profile-rick-cockrum/1227711946</id><updated>2008-11-26T15:05:46+00:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-26T15:05:46+00:00</app:edited><category term="developers" /><category term="habari" /><category term="interview" /><category term="rick_c" /><content type="html">&lt;p&gt;There's a lot going on in the Habari development community right now, but I wanted to take a break from the nitty-gritty PHP to get a quick look at some of the people that volunteer their time on Habari.  Hopefully this can become a semi-regular feature of Soulless Software, in order to put some soul into the software.&lt;/p&gt;&lt;p&gt;Rick Cockrum blogs at &lt;a href="http://www.shardsofconsciousness.com/"&gt;Shards of Consciousness&lt;/a&gt;, a site "devoted to articles and information on reaching your goals, personal development, self-awareness, and time management," and also at &lt;a href="http://sagrising.cockrumpublishing.com/"&gt;Sag Rising&lt;/a&gt;, where be talks about whatever crosses his mind, "mostly Habari."  As of November 6, 2008, Rick has converted all of his sites to Habari, and by all accounts he's enjoyed the transition.&lt;/p&gt;&lt;p&gt;On May 23 Rick was extended an invitation to the &lt;a href="http://wiki.habariproject.org/en/Cabal"&gt;Habari Cabal&lt;/a&gt;, the project management committee that official shepherds the Habari community.  He accepted the same day.  He was officially nominated for inclusion in the PMC primarily for his work on &lt;a href="http://trac.habariproject.org/habari/changeset/1569"&gt;scheduled posts&lt;/a&gt; functionality, something that was sorely lacking from Habari at the time.  In addition, Rick was recognized as a patient, open-minded community member who was supportive of new users and developers, and an all-around friendly guy that made IRC and the mailing lists a better place!&lt;/p&gt;&lt;p&gt;I recently asked Rick which contribution to Habari he felt was his best, and why?  Rick replied almost immediately "helping to turn SQLite from a second class database backend to a fully supported database system. Most blogs don't need the overhead or maintenance require by MySQL. SQLite fulfills the need on such blogs perfectly."  It's important to note that Habari prides itself on database independence, and this is no easy goal to maintain.  Rick's attention to SQLite has been extremely helpful in making sure that Habari stays true to its vision of database independence.&lt;/p&gt;&lt;p&gt;Always curious to learn how others problem-solve, I asked Rick how he approaches problems with Habari, and what processes he might use?  "I look at the symptom, then try to get a general idea of where in the code the problem may be occurring. If I'm able to narrow it down quickly, I'll use var_dump() to look at what the actual output is in a few spots. If not, I'll set a breakpoint and start stepping through the code."&lt;/p&gt;&lt;p&gt;One of the interesting (to me) things about Habari and the Habari community is the honest evaluation of weaknesses and short-comings.  The Habari developers aren't spin doctors looking to send out a specific positive message -- they're passionate people working to make the best blogging application they can.  To that end, I asked Rick what he felt were his biggest complaints about Habari right now?  "The documentation needs to improve on the wiki. We've come a long way with it, but work remains to be done. Second is we're focusing on ACL for our next point release, but much work needs to be done, which we seem to be avoiding. Many of us, myself included, say we feel incompetent work on it."  Within a week of conducting this little chat on IRC, a great number of changes have been committed to the ACL system by a number of Habari developers.  Thanks, Rick, for helping us stay focused on our stated agenda!&lt;/p&gt;&lt;p&gt;Documentation is one of those things that is often pointed to as an easy way to contribute to a project.  I'm guilty of this: I recently admonished someone in IRC to highlight the area of documentation that he felt were lacking, so that they could be improved by someone with the necessary expertise.  Writing good documentation is a hard, iterative task that requires a larger investment of time and energy than most folks realize.  It's also a far more subjective matter than writing code: code either works or it doesn't.  Documentation isn't quite so clear-cut: what's a good length for some might be too verbose for others, and too taciturn for still others.  I agree with Rick that the Habari documentation needs some very special attention.&lt;/p&gt;&lt;p&gt;When I write code, I use vim.  I'm not a power user, so I don't have any vim macros.  I don't get any syntax highlighting, and depending on the default configuration I might not even get highlights on braces, parentheses or quotes!  I asked Rick about his own coding habits, and the tools he uses.  "Sometimes I use an IDE, but not always.. I tend to alternate between using a simple text editor, Notepad++, and NetBeans 6.5, which has introduced some pretty good support for PHP programming."&lt;/p&gt;&lt;p&gt;The Habari community is largely touted as the greatest strength of the Habari project.  I have my own opinions about the Habari community (they're almost all positive!), but I do like to see what others think, so I asked Rick to share his thoughts on the Habari community.  "I enjoy it! If not, I wouldn't spend so much time in the irc channel or reading the list, answering as I'm able. Like any community, sometimes it has it's ups and downs. People are all individuals, and it shows in how we talk, what we talk about, and how we interact. Sometimes we get bogged down in details, that, while they may seem small to me, are obviously important to others so they're worth spending the time."&lt;/p&gt;&lt;p&gt;One of the sometimes controversial aspects of the Habari community is the existence of the &lt;a href="http://wiki.habariproject.org/en/Cabal"&gt;Cabal&lt;/a&gt;, the group of people who have binding voting power for contentious decisions.  Perhaps it's a bad idea to ask a Cabal member what they think of the Cabal, but I wanted to get a feel for Rick's thoughts on the Cabal in general.  "It could be larger. Right now there are just over 20 individuals in the PMC, with different levels of competency in programming, design, writing, communication, and different areas of interest. This seems like a lot of people, but due to the nature of open source projects, people often have other things to do and so sometimes things slow down quite a bit. More people could help keep things moving. On the other hand, it also leads to more avenues of communication, which can make decisions more complex to agree on."&lt;/p&gt;&lt;p&gt;Many thanks to Rick for taking the time to talk about Habari.  It's always nice to get a glimpse of the people behind the product.  And with Habari's focus on community, I'd like to continue to explore those people.  If you have any questions you'd like to ask Rick, please feel free to do so in the comments!  Rick has graciously agreed to reply to questions, so this can be as much &lt;em&gt;your&lt;/em&gt; interview as it was mine!&lt;/p&gt;&lt;p&gt;Finally, if there's anyone in the Habari community you'd like to learn more about, please let me know!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/YfUBuXK5Q8_S6wM3HF_IwZ8wd0Q/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/YfUBuXK5Q8_S6wM3HF_IwZ8wd0Q/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feedproxy.google.com/~r/soullesssoftware/~4/G78EuhsyFEs" height="1" width="1"/&gt;</content><feedburner:origLink>http://soullesssoftware.com/habari-developer-profile-rick-cockrum</feedburner:origLink></entry><entry><title>Habari-Extras: Plugin and Theme Repository</title><link rel="alternate" href="http://feedproxy.google.com/~r/soullesssoftware/~3/7HGKbZpCM6o/habari-extras-plugin-and-theme-repository" /><link rel="edit" href="http://soullesssoftware.com/habari-extras-plugin-and-theme-repository/atom" /><author><name>skippy</name><uri>http://soullesssoftware.com</uri></author><id>tag:soullesssoftware.com,2008:habari-extras-plugin-and-theme-repository/1223990178</id><updated>2008-10-14T04:00:00+00:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-14T04:00:00+00:00</app:edited><category term="community" /><category term="habari-extras" /><category term="plugins" /><category term="themes" /><content type="html">&lt;p&gt;One of the fundamental beliefs of the &lt;a href="http://habariproject.org/"&gt;Habari&lt;/a&gt; development team is that the community surrounding Habari is more important than the product being produced.  As a result, the Habari community is a vibrant, dynamic group of people all using and improving Habari to solve various problems.  The community includes full-time web developers, scientists, artists, students, and more.  There is no hierarchy or stratification amongst participants, and everyone is empowered to suggest changes and drive innovation.&lt;/p&gt;&lt;p&gt;Habari embraces the meritocracy development model, which rewards people for continued, meaningful contributions.  There is no specific metric used to measure such contributions; instead it's an overall appreciation for an individual's participation within, and support of, the greater Habari community: providing insightful answers on the mailing lists, engaging other bloggers exploring and talking about Habari, and helping new user users solve problems in IRC are as valuable as submitting patches and suggesting new features.  And as a statement of the Habari developer's belief in the community, the &lt;a href="http://trac.habariproject.org/habari-extras/"&gt;habari-extras&lt;/a&gt; code repository is open to anyone who expresses an interest in it.&lt;/p&gt;&lt;p&gt;The habari-extras repository is intended to be the clearinghouse for quality Habari plugins and themes, all maintained collaboratively by the community.  The Habari development team wants the entire community to share in the development of Habari, and the habari-extras repository is one small way in which that can occur.  Users can get their feet wet working on plugins and themes, and as they gain confidence and ability, and demonstrate a continued commitment to the Habari community, they may be invited to join the &lt;a href="http://wiki.habariproject.org/en/Cabal"&gt;Habari Cabal&lt;/a&gt; to work directly on the core product.&lt;/p&gt;&lt;p&gt;Unlike a lot of other projects in which plugins and themes are developed and maintained by individuals or small groups, any plugin or theme hosted in the  habari-extras repository can be modified by nearly anyone.  To get access to make changes to the contents of the repository, one need only explain what their intentions are, and ask for access: there's no complicated application process, there's no requirement to prove one's ability, and there's no limit on which items one can and cannot modify.&lt;/p&gt;&lt;p&gt;You see, the Habari developers believe strongly that the community should be able to scratch its own itches.  If a user identifies a problem in a plugin or theme, and that user knows how to fix it, why shouldn't they be permitted to commit the fix directly?  If someone has a great idea for a new plugin or theme and would like to share that with the entire Habari community, they should be encouraged to do so, without being required to set up their own version control system, or dedicated web hosting account to share their work!  Currently, more than a dozen people from the Habari community have access, in addition to the &lt;a href="http://wiki.habariproject.org/en/Cabal"&gt;cabal&lt;/a&gt; members, and as you can see from the &lt;a href="http://trac.habariproject.org/habari-extras/timeline"&gt;habari-extras timeline&lt;/a&gt; there is a steady flow of activity.&lt;/p&gt;&lt;p&gt;Another benefit to the openness of the habari-extras repository is that folks can work together to tackle hard problems.  Someone with an idea for a great plugin or theme can get it started, and as other community members identify shortcomings they can contribute their expertise to those specific parts in which they are interested, without having to manage the whole thing.  Incremental updates, all managed by the Subversion version control system, allows the habari-extras repository to be a valuable part of the Habari community!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/UdcKMvRvdEv8zxqxialKJFBonpE/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/UdcKMvRvdEv8zxqxialKJFBonpE/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feedproxy.google.com/~r/soullesssoftware/~4/7HGKbZpCM6o" height="1" width="1"/&gt;</content><feedburner:origLink>http://soullesssoftware.com/habari-extras-plugin-and-theme-repository</feedburner:origLink></entry><entry><title>Habari Plugin: Proton</title><link rel="alternate" href="http://feedproxy.google.com/~r/soullesssoftware/~3/QWwv2Bo_8QE/habari-plugin-proton" /><link rel="edit" href="http://soullesssoftware.com/habari-plugin-proton/atom" /><author><name>skippy</name><uri>http://soullesssoftware.com</uri></author><id>tag:soullesssoftware.com,2008:habari-plugin-proton/1223899783</id><updated>2008-10-13T12:09:43+00:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-13T12:09:43+00:00</app:edited><category term="plugin" /><category term="proton" /><content type="html">&lt;p&gt;I've just released &lt;a href="http://soullesssoftware.com/proton"&gt;Proton&lt;/a&gt;, a new Habari plugin.  All this little guy does is modify your Atom feed to show excerpts instead of the post.  There are no configuration options, since it's such a trivial plugin.&lt;/p&gt;&lt;p&gt;If you want to change the text used in the "read more" link, or if you want to change the number of paragraphs or characters used to generate the excerpt, simply edit &lt;code&gt;proton.plugin.php&lt;/code&gt;.  On line 20, you'll find this:&lt;/p&gt;&lt;pre&gt;Format::apply_with_hook_params( 'more', 'post_content_atom', 'Read the whole thing', 250, 1 );&lt;/pre&gt;&lt;p&gt;The last digit is the number of paragraphs to include in the excerpt; "250" is the number of characters to use, and "Read the whole thing" is the text to use for the link.  Adjust as needed, and then activate the plugin!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/1L54TP43ESW-L9LWFueAoisuZX4/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/1L54TP43ESW-L9LWFueAoisuZX4/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feedproxy.google.com/~r/soullesssoftware/~4/QWwv2Bo_8QE" height="1" width="1"/&gt;</content><feedburner:origLink>http://soullesssoftware.com/habari-plugin-proton</feedburner:origLink></entry></feed>
