<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>The Miscellanean</title>
<link>http://miscellanean.com</link>
<description>Discussion of software projects and the craft of software development.</description>
<language>en-us</language>
<pubDate>Sun, 05 Sep 2010 16:43:17 GMT</pubDate>
<item>
<title>A Fresh Start</title>
<link>http://miscellanean.com/index.php?id=1</link>
<description><![CDATA[ <p>I consider myself a craftsman. I do not work in wood, or metal, or in any tangible good. I work in software.</p>

<p>September has always been a fresh beginning for me and despite the fact that it has been almost ten years since I was a registered student at any institute of learning, that trend continues today.</p>

<p>This new web site is just a very simple starting point, one that will grow. I have been invigorated with a new love for my craft and a new focus on growing my software development abilities. As part of that process, I will be discussing projects that I am working on and I will use this site in particular as a test bed with which to continue learning and to demonstrate how I am improving.</p> ]]></description>
<pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>
<guid>http://miscellanean.com/index.php?id=1</guid>
</item>
<item>
<title>The Miscellanean Engine</title>
<link>http://miscellanean.com/index.php?id=2</link>
<description><![CDATA[ <p>My first project for this fall was a simple blog engine for this website, and it is now in a reasonably functional state.</p>

<p>Over the years I've used a fair sampling of modern blog software, and a lot of it is really excellent software but none of it does exactly what I want in exactly the way I want, and most of it has a lot of functionality that I don't want or need.</p>

<p>One thing that most don't have however is a drafting system that works the way I want it to, so the second thing I added was a simple draft table.  It is separate from the post system and features a simple publication system.  As I determine ways it doesn't work properly I'll fix them.</p>

<p>The first thing I added was of course the ability to make posts.  It is pretty straight-forward, the only mildly interesting element of it is that I am keeping a history of post versions.  This allows me to treat posts more as articles than posts, which for me is important since I will be correcting spelling mistakes and updating the things I get wrong and having that history of correction to me is very important.</p>

<p>I originally didn't want to bother with a user/author system, since I will be the only person posting here but then I realized that the ability to create and edit posts and drafts would require some authentication, so I built the simple authoring structure.</p>

<p>There are two major pieces of functionality that are still outstanding: Navigation and RSS.</p>

<p>I think the navigation of most blogs really sucks.  The perception seems to be that people are always current with a blog and therefore accessing and more importantly reading through archives is a very painful process.  Web comics have in many ways solved this problem, and the navigation system I work on will borrow heavily, feature "first, previous, next, last" links at the top and bottom of each post.  The tricky element will be figuring out a logical archive navigation system, but a dedicated page broken up by month is where I'm going to start.</p>

<p>I read very few blogs at the blog's URL, and almost everything through Google Reader.  Feeds are extremely important to me and I am using this opportunity to take a look at what functionality is out there.  There's no way I am going to deal with the many problems outputting reliable xml so many other packages have already solved.</p>

<p>There are several other features I am going to explore, primarily among them commenting and tagging, but in the short term I am not overly worried about either.  There are also some questions in my mind about how well this layout works in practice that I will be exploring as problems are revealed.  Tops among them:  The fading is pretty neat but I have concerns about how it impacts scrolling.</p> ]]></description>
<pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>
<guid>http://miscellanean.com/index.php?id=2</guid>
</item>
<item>
<title>What The Miscellanean Is</title>
<link>http://miscellanean.com/index.php?id=3</link>
<description><![CDATA[ <p>The short version is that 'The Miscellanean' is the registered business name I use for the freelance development I occasionally do.</p>

<p>I decided on the name after my brother mentioned it as a discarded possibility for the bookstore he was considering opening.  It is a name that feels like it describes me quite well.</p>

<p>At my core, I love creating software.  Software creation is an expansive industry and there are a very large number of disciplines encompassed by the term, and I am interested in and have some exposure -- either professionally, personally or both -- to many of those disciplines.  I am a generalist.</p>

<p>Being a generalist has its perks and its disadvantages.  There has been no technical problem that I am not willing to tackle, be it writing a small utility to automate a task or be it rewiring a (small) building's network.  This willingness to explore makes me very flexible and adaptable, but it definitely impacts the depth of knowledge I possess about specific disciplines.</p>

<p>I am not the best PHP developer, or database administrator, or technical writer, or CSS author or any of the things I enjoy doing and in many ways that is a serious problem.</p>

<p>In many ways it is a problem of identity.  I can identify myself as a software developer and that appeases much of the population who have limited computer knowledge.  I can identify myself as primarily a web developer who has dabbled in Windows development to others, and I can identify myself as a PHP or ASP.Net developer to still others.  But there is no crisp, clean answer that is always a clear description of what exactly it is I do all day.</p>

<p>My name is Rob Drimmie and I am The Miscellanean.  I develop applications for myself and for others.</p> ]]></description>
<pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>
<guid>http://miscellanean.com/index.php?id=3</guid>
</item>
<item>
<title>What The Miscellanean Is</title>
<link>http://miscellanean.com/index.php?id=3</link>
<description><![CDATA[ <p>The short version is that 'The Miscellanean' is the registered business name I use for the freelance development I occasionally do.</p>

<p>I decided on the name after my brother mentioned it as a discarded possibility for the bookstore he was considering opening.  It is a name that feels like it describes me quite well.</p>

<p>At my core, I love creating software.  Software creation is an expansive industry and there are a very large number of disciplines encompassed by the term, and I am interested in and have some exposure -- either professionally, personally or both -- to many of those disciplines.  I am a generalist.</p>

<p>Being a generalist has its perks and its disadvantages.  There has been no technical problem that I am not willing to tackle, be it writing a small utility to automate a task or be it rewiring a (small) building's network.  This willingness to explore makes me very flexible and adaptable, but it definitely impacts the depth of knowledge I possess about specific disciplines.</p>

<p>I am not the best PHP developer, or database administrator, or technical writer, or CSS author or any of the things I enjoy doing and in many ways that is a serious problem.</p>

<p>In many ways it is a problem of identity.  I can identify myself as a software developer and that appeases much of the population who have limited computer knowledge.  I can identify myself as primarily a web developer who has dabbled in Windows development to others, and I can identify myself as a PHP or ASP.Net developer to still others.  But there is no crisp, clean answer that is always a clear description of what exactly it is I do all day.</p>

<p>My name is Rob Drimmie and I am The Miscellanean.  I develop applications for myself and for others.</p> ]]></description>
<pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>
<guid>http://miscellanean.com/index.php?id=3</guid>
</item>
<item>
<title>Projects Overview</title>
<link>http://miscellanean.com/index.php?id=4</link>
<description><![CDATA[ <p>Following this restart of intent for The Miscellanean, I have decided to narrow my focus to three projects:</p>

<ol>
<li>The Miscellanean Engine</li>
<li>CHORE.tl</li>
<li>Collectible Card Collector</li>
</ol>
<p></p>
<p>The Miscelleanean Engine is the functionality that drives this site.  It has acted as a simple and entertaining way to get my feet wet again with my personal projects and designing and developing it has been very rewarding.  Being able to mark a project as complete, even a reasonably simple one such as this, is a very nice motivator.</p>

<p>CHORE.tl is a chore management application that I think has significant potential but has languished again and again.  It is the project I keep coming back to and chipping away at, but it has suffered significantly from the haphazard implementation style I've used for personal projects for the past couple of years.</p>

<p>CHORE.tl is in a pretty decent early state, and now that The Miscellanean Engine is reasonably functional it is the project I am going to focus on next.  Over the coming weeks I will be dusting it off, and getting it to a launch state.  Details of what this all entails will follow in a dedicated post.</p>

<p>Collectible Card Collector is a new idea with a terrible name that will be changing in the future when I start to dedicate more thought to it.  Initially, it will be a content management system for my father to use to display and to a lesser degree manage his Baseball Card collection with the primary goal being to make it easy for other card traders to see what he has to offer.  As it is an entirely new project, I will be applying a slightly more rigid development methodology from the get-go to demonstrate and experiment with some of the principles I am working on in myself.</p> ]]></description>
<pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>
<guid>http://miscellanean.com/index.php?id=4</guid>
</item>
<item>
<title>Remedial</title>
<link>http://miscellanean.com/index.php?id=5</link>
<description><![CDATA[ <p>So, my retention of basic Computer Science principles is crap.</p>

<p>I can't even explain how I feel about it properly.  I am able to understand the principles, and given enough time maybe I could figure out how to do a Quick Sort again, or remind myself what Big O is all about, but the simple truth of it is that today, I can't.</p>

<p>It's not that they're beyond me.  In part it's because I went through a period of willful ignorance.  In part it's because I haven't had anyone to talk about them with, or any reason to talk about them in any meaningful way.  In part it's because certain principles and basics were never explicitly taught to me.</p>

<p>But primarily it's because I've never deeply internalized them.</p>

<p>I studied to pass tests, not to learn, and that way lies ignorance.  When I write code I'm rarely considering the problems I'm addressing and what existing knowledge would inform a solid solution.</p>

<p>It's not that I think my code is bad, and it's not that I'm not taking advantage of existing knowledge so much as it is that I'm not doing so knowingly or intentionally.  I've been writing particular types of applications for so long that I've seen many common problems and am solving them using my bag of tricks but without a conscious understanding of what other people would call them.</p>

<p>The best method I have of internalizing something is by going through the process of explaining it to other people.  Conveniently, I've got this website theoretically related to the craft of software development that I've let lie fallow effectively since getting it online.</p>

<p>1 + 1 = 2, as it were.</p>

<p>Computer Science is a big field with <a href="http://en.wikipedia.org/wiki/Computer_science#Fields_of_computer_science" title="Fields of Computer Science at Wikipedia">many major sub-disciplines</a> to explore.  <a href="http://wikipedia.org">Wikipedia</a> will be my primary starting place, but I also hope to build a collection of resources such as <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm">MIT OpenCourseware</a> and others that I have yet to find.</p>

<p>I figure I'm going to start by dipping my toes into Theory of Computation, but I'm also quite interested in algorithms and, somewhat surprisingly to me, compilers.  This is almost certainly the result of a recent archive romp through <a href="http://steve-yegge.blogspot.com/" title="Stevey's Blog Rants">Steve Yegge's blog</a>.</p>

<p>I don't really have a particular path charted and don't really know what I'm getting myself into, but the way I figure it anything I learn, or if I am being generous refresh my memory about, is good stuff.</p>
 ]]></description>
<pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>
<guid>http://miscellanean.com/index.php?id=5</guid>
</item>
<item>
<title>Remedial</title>
<link>http://miscellanean.com/index.php?id=5</link>
<description><![CDATA[ <p>So, my retention of basic Computer Science principles is crap.</p>

<p>I can't even explain how I feel about it properly.  I am able to understand the principles, and given enough time maybe I could figure out how to do a Quick Sort again, or remind myself what Big O is all about, but the simple truth of it is that today, I can't.</p>

<p>It's not that they're beyond me.  In part it's because I went through a period of willful ignorance.  In part it's because I haven't had anyone to talk about them with, or any reason to talk about them in any meaningful way.  In part it's because certain principles and basics were never explicitly taught to me.</p>

<p>But primarily it's because I've never deeply internalized them.</p>

<p>I studied to pass tests, not to learn, and that way lies ignorance.  When I write code I'm rarely considering the problems I'm addressing and what existing knowledge would inform a solid solution.</p>

<p>It's not that I think my code is bad, and it's not that I'm not taking advantage of existing knowledge so much as it is that I'm not doing so knowingly or intentionally.  I've been writing particular types of applications for so long that I've seen many common problems and am solving them using my bag of tricks but without a conscious understanding of what other people would call them.</p>

<p>The best method I have of internalizing something is by going through the process of explaining it to other people.  Conveniently, I've got this website theoretically related to the craft of software development that I've let lie fallow effectively since getting it online.</p>

<p>1 + 1 = 2, as it were.</p>

<p>Computer Science is a big field with <a href="http://en.wikipedia.org/wiki/Computer_science#Fields_of_computer_science" title="Fields of Computer Science at Wikipedia">many major sub-disciplines</a> to explore.  <a href="http://wikipedia.org">Wikipedia</a> will be my primary starting place, but I also hope to build a collection of resources such as <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm">MIT OpenCourseware</a> and others that I have yet to find.</p>

<p>I figure I'm going to start by dipping my toes into Theory of Computation, but I'm also quite interested in algorithms and, somewhat surprisingly to me, compilers.  This is almost certainly the result of a recent archive romp through <a href="http://steve-yegge.blogspot.com/" title="Stevey's Blog Rants">Steve Yegge's blog</a>.</p>

<p>I don't really have a particular path charted and don't really know what I'm getting myself into, but the way I figure it anything I learn, or if I am being generous refresh my memory about, is good stuff.</p>
 ]]></description>
<pubDate>Thu, 01 Jan 1970 00:00:00 GMT</pubDate>
<guid>http://miscellanean.com/index.php?id=5</guid>
</item>
</channel>
</rss>