<?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>Death of a Gremmie &#187; forums</title>
	<atom:link href="http://deathofagremmie.com/tag/forums/feed/" rel="self" type="application/rss+xml" />
	<link>http://deathofagremmie.com</link>
	<description>by Brian Neal</description>
	<lastBuildDate>Wed, 14 Jul 2010 02:31:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>SG101 2.0 Status Report</title>
		<link>http://deathofagremmie.com/2009/12/20/sg101-2-0-status-report/</link>
		<comments>http://deathofagremmie.com/2009/12/20/sg101-2-0-status-report/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 03:30:34 +0000</pubDate>
		<dc:creator>gremmie</dc:creator>
				<category><![CDATA[SG101 2.0]]></category>
		<category><![CDATA[forums]]></category>
		<category><![CDATA[status]]></category>

		<guid isPermaLink="false">http://deathofagremmie.com/?p=328</guid>
		<description><![CDATA[This is the obligatory &#8220;why haven&#8217;t you been blogging about your project in a while&#8221; post. Yes, I suppose it is time to give a quick update. Things slowed down dramatically on SG101 2.0 this summer. There was the 2009 SG101 convention vacation and other fun summer things to distract me. I had put up [...]]]></description>
			<content:encoded><![CDATA[<p>This is the obligatory &#8220;why haven&#8217;t you been blogging about your project in a while&#8221; post. Yes, I suppose it is time to give a quick update.</p>
<p>Things slowed down dramatically on SG101 2.0 this summer. There was the 2009 SG101 convention vacation and other fun summer things to distract me. I had put up a beta site for feedback but was still missing a forums application. I got the itch to start back up again sometime in the Fall. I decided to start on a forums application myself and to see how it went. If it was too complicated I would look for a third-party solution.</p>
<p>This is one case where I did look at several third-party applications for ideas and to check on their status. There doesn&#8217;t seem to be a single recognized forums application in Django-land. There are a number of them, and they range from very simple to moderately complex. Many of them seem unsupported and have obvious problems. So in the end, I decided that since the forums are probably the most important part of my site, it would be best if I wrote it myself so that I could understand it completely. This includes both strengths and weaknesses. I did borrow many ideas from existing applications, and some of my initial momentum came from <a href="http://www.djangobb.org/">djangobb</a>. However, I quickly stopped looking at other apps because <a href="http://djangoproject.com/">Django</a> really makes it easy to write complex web applications once you get an idea and try a few things.</p>
<p>My forum app contains most of the functionality of the venerable <a href="http://www.phpbb.com/">phpBB</a>-based board I have now. I added a few things like the ability for users to flag posts as spam or abuse (I sure wish I had that now). I am considering making the first few posts of a user require approval to counter spam. But I&#8217;m not sure it is worth the effort with the &#8220;flag post&#8221; feature in-place. I might just wait and see how well that works.</p>
<p>I also decided to save a user&#8217;s post read and unread status in the database, instead of using cookies. Too many of my existing users complain that when their cookies expire they lose track of which threads are new. It will cost some database space, no doubt, but it is an often requested feature to fix this issue. I implemented a rolling 7-day window of thread and post read status, and in initial tests it seems to work just fine. It did add significant complexity to the design however, and I&#8217;m not looking forward to debugging that logic when a problem occurs.</p>
<p>After finishing the forums, I began working on my lengthy to-do list using my <a href="http://trac.edgewall.org/">Trac</a> issue tracker. I also spent a great deal of time refactoring some of my original code that I wrote over a year ago. I&#8217;ve become so much more proficient with <a href="http://python.org/">Python</a> and <a href="http://jquery.com/">jQuery</a> it is inevitable. My task list has become quite small and I am thinking about wiping the existing beta site and putting up a new one over holiday break and launching an official beta test.</p>
<p>The one area that I am lacking in right now is a good design and layout. A few users have volunteered to help with that, and one in particular is showing me some really nice work. If I can just manage to implement his design we may be on to something. I may also try to reach out to someone who is familiar with Django.</p>
<p>There are a couple of interesting problems I either solved or worked around during this period that I should blog about. I&#8217;ll just have to find the time to do that. In particular, I wanted to share how I created an admin dashboard for user-created content that needs admin approval before being published.</p>
<p>I&#8217;ve also volunteered to give a &#8220;brown-bag&#8221; lunchtime talk at my employer on Python. I&#8217;ll have to prepare some slides over the holiday break for this.</p>
]]></content:encoded>
			<wfw:commentRss>http://deathofagremmie.com/2009/12/20/sg101-2-0-status-report/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
