<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Matt_ptr *</title>
	
	<link>http://mattptr.net</link>
	<description>Programming and stuff -- incoherent and unfocused since 1997</description>
	<lastBuildDate>Sat, 16 Mar 2013 18:57:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mattptr/vmiR" /><feedburner:info uri="mattptr/vmir" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Year old mystery solved</title>
		<link>http://mattptr.net/2013/03/16/year-old-mystery-solved/</link>
		<comments>http://mattptr.net/2013/03/16/year-old-mystery-solved/#comments</comments>
		<pubDate>Sat, 16 Mar 2013 18:54:01 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=271</guid>
		<description><![CDATA[So this past week, I decided to try the circuits.web framework again. The framework&#8217;s author had contacted me about my ranting post that I made last year after a bad time trying to use it. I honestly couldn&#8217;t even remember what the project was that made me want to try circuits, but anyway, I went [...]]]></description>
			<content:encoded><![CDATA[<p>So this past week, I decided to try the circuits.web framework again. The framework&#8217;s author had contacted me about my ranting post that I made last year after a bad time trying to use it.</p>
<p>I honestly couldn&#8217;t even remember what the project was that made me want to try circuits, but anyway, I went ahead and recreated (roughly) the situation in the post.</p>
<p>Here&#8217;s that code: <a href="http://circuits.codepad.org/qJvRYhDX">http://circuits.codepad.org/qJvRYhDX</a></p>
<p>I was hoping that with the newer release, I&#8217;d be able to figure it out. But still no luck. Fortunately, James Mills, the author of circuits stepped in to help out. Here&#8217;s his solution: <a href="http://codepad.org/N9Nsx7qi">http://codepad.org/N9Nsx7qi</a></p>
<p>I really don&#8217;t see how I could have figured it out on my own &#8212; even going through the source. Circuits is so different that it takes a solid understanding of how it works on a fundamental level. And while I think it&#8217;s an interesting project, I really am not interested in getting that in-depth with it. Well, at least not now.</p>
<p>I apologize to James for the hot-headed post and I&#8217;m hoping to keep cicuits on my radar in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2013/03/16/year-old-mystery-solved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setbacks</title>
		<link>http://mattptr.net/2013/02/11/setbacks/</link>
		<comments>http://mattptr.net/2013/02/11/setbacks/#comments</comments>
		<pubDate>Tue, 12 Feb 2013 01:02:35 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=269</guid>
		<description><![CDATA[So I&#8217;ve been trying off and on since November to get a new site going. Having heard good things about a host called BuyVM, I decided to purchase there. I will say this: the price was incredibly cheap. But that&#8217;s where the praise ends. Long story short, I have no faith in their crew. They [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been trying off and on since November to get a new site going. Having heard good things about a host called BuyVM, I decided to purchase there. I will say this: the price was incredibly cheap.</p>
<p>But that&#8217;s where the praise ends. Long story short, I have no faith in their crew. They don&#8217;t know what they&#8217;re doing and I would almost guarantee a surprising amount of monthly downtime. Do yourself a flavor and stay away.</p>
<p>Now, I&#8217;m looking for a host again. Or maybe not. It&#8217;s not exactly worth it at the moment.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2013/02/11/setbacks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>To Unfinity and Slightly Further!</title>
		<link>http://mattptr.net/2012/12/04/to-unfinity-and-slightly-further/</link>
		<comments>http://mattptr.net/2012/12/04/to-unfinity-and-slightly-further/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 17:25:02 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=266</guid>
		<description><![CDATA[Here&#8217;s my yearly biannual update part 2. So I&#8217;ve been working on a new site. It&#8217;s been difficult due to a lot of different reasons, but: 0. I&#8217;m absolutely staying away from WordPress and PHP. 1. I started writing my own blog engine and I decided about 80% through it that I&#8217;d rather use something [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s my yearly biannual update part 2.</p>
<p>So I&#8217;ve been working on a new site. It&#8217;s been difficult due to a lot of different reasons, but:</p>
<p>0. I&#8217;m absolutely staying away from WordPress and PHP.</p>
<p>1. I started writing my own blog engine and I decided about 80% through it that I&#8217;d rather use something that already exists and has a userbase and all that. I do, however plan to continue working on it.</p>
<p>2. I looked at a system called <a href="http://blohg.org/">blohg</a> which sounded interesting, but I soon realized I&#8217;d lose all of my old entries.</p>
<p>3. I settled on <a href="http://mezzanine.jupo.org/">Mezzanine</a>, but just haven&#8217;t had time to get a theme together and publish the site.</p>
<p>The decision to move away from WordPress is part of an epic rant that I want to save for the publishing of the new site. I was originally hoping to have it launch today, but since I can&#8217;t, this is as good a place as any&#8230;</p>
<p>Happy 15th anniversary to my humble slice of the internet. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2012/12/04/to-unfinity-and-slightly-further/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actually, everything sucks.</title>
		<link>http://mattptr.net/2012/06/09/actually-everything-sucks/</link>
		<comments>http://mattptr.net/2012/06/09/actually-everything-sucks/#comments</comments>
		<pubDate>Sat, 09 Jun 2012 21:41:03 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=264</guid>
		<description><![CDATA[Recently, I was reading the subreddits for Python and Django and came across a post entitled, Flasky Goodness (or Why Django Sucks). Then there were some rebuttals, comments, fanboys and trolls. Anyone who&#8217;s been on the internet for more than 5 minutes sees these kinds of posts and arguments everywhere. Microkernel vs Monolithic, Emacs vs Vim, Language [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I was reading the subreddits for <a href="http://www.reddit.com/r/python">Python</a> and <a href="http://www.reddit.com/r/django">Django</a> and came across a post entitled, <a href="https://speakerdeck.com/u/kennethreitz/p/flasky-goodness">Flasky Goodness (or Why Django Sucks)</a>. Then there were some <a href="http://coffeeonthekeyboard.com/why-django-sucks-except-when-it-doesnt-664/">rebuttals</a>, comments, fanboys and trolls. Anyone who&#8217;s been on the internet for more than 5 minutes sees these kinds of posts and arguments everywhere. <a href="http://oreilly.com/catalog/opensources/book/appa.html">Microkernel vs Monolithic</a>, <a href="http://en.wikipedia.org/wiki/Editor_war">Emacs vs Vim</a>, <a href="http://www.joelonsoftware.com/items/2006/09/01.html">Language vs Language</a>, <a href="http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/">PHP vs Sense</a>, <a href="http://c2.com/cgi/wiki?HolyWar">and on and on</a>&#8230;</p>
<p>I don&#8217;t get it. They never end and they&#8217;re more or less pointless.</p>
<p>My response to all of them: everything sucks. It&#8217;s just that something suck less than others. The rest is just personal preference.</p>
<p>If everything was good and great with computers, we&#8217;d all still be programming in Fortran or COBOL or something. Today&#8217;s languages aren&#8217;t perfect, and in 20 years we&#8217;ll all be wondering how we ever did anything in Javascript or Ruby or Python.</p>
<p>Of course Django sucks. Know what sucked more before that? Subway, Webware, and the other frameworks that have been discontinued. When I first started with Python, I tried several times to work with the Myghty framework. Then Pylons came along and I realized how much trying to set up Myghty sucked. Even though the early versions of Pylons used Myghty for templating, it was still better than trying to use just straight Myghty.</p>
<p>I like Django. It&#8217;s been great for some projects. I also like Flask &#8212; it&#8217;s nice and easy and small and fast. But Flask also sucks. I can make quite a mess of Flask projects if I&#8217;m not careful. I can also make Flask projects so complicated that they basically mirror Pylons or Django set ups&#8230; which sucks.</p>
<p>OK so I don&#8217;t think that every single piece of everything sucks. But if there wasn&#8217;t some kind of dissatisfaction with our tools, we&#8217;d never get better tools. Just remember that everything we&#8217;re using now is, ultimately, temporary.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2012/06/09/actually-everything-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: The Linux Command Line, by William E. Shotts, Jr.</title>
		<link>http://mattptr.net/2012/02/26/book-review-the-linux-command-line-by-william-e-shotts-jr/</link>
		<comments>http://mattptr.net/2012/02/26/book-review-the-linux-command-line-by-william-e-shotts-jr/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 00:02:38 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=259</guid>
		<description><![CDATA[So I&#8217;ve never written a real book review before. Nor have I written a review of a real book. Nor have I written a review of a real book that I actually read and didn&#8217;t just pretend to read. Nor have I &#8212; OK, enough about what I haven&#8217;t done. A few weeks (or possibly [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve never written a real book review before. Nor have I written a review of a real book. Nor have I written a review of a real book that I actually read and didn&#8217;t just pretend to read. Nor have I &#8212; OK, enough about what I haven&#8217;t done.</p>
<p>A few weeks (or possibly months) ago I was asked (axed) by Travis Peterson of No Starch Press to review <em>The Linux Command Line</em>. More accurately, he was referred to me by Pat from <a href="http://www.patorjk.com">patorjk.com</a>, who was too busy. No shame in being second choice&#8230;right? However, I will be adding this to my, &#8220;List of Reasons I became a Supervillain,&#8221; essay.</p>
<p>Anyway, I said yes. So here we go with the review. The usual caveats apply: YRMV, YMMV, IANAL, ONHD&#8217;T, MMSBATBTTY.</p>
<p><a href="http://nostarch.com/tlcl.htm">Here&#8217;s a link to the book.</a><br />
<a href="http://nostarch.com">Here&#8217;s a link to No Starch&#8217;s front page. </a></p>
<h2><em>The Linux Command Line: A Complete Introduction</em> by William E. Shotts, Jr.</h2>
<p>To be honest, I wasn&#8217;t sure what to expect from a book about the Linux (specifically) command line. I personally really, really, <strong>really</strong> hate sysadminning. I try to avoid it, any way that I can. Trying to remember a billion different commands and config files and programs, it just is not my idea of fun.</p>
<p>When I read the description of the book, I thought it would be a nice reference book to have for some of those programs I can never remember how to use, like sed, awk, &#8230; ls, etc. But the author seems to have a different opinion on what this book is. To quote the introduction, &#8220;&#8230;it&#8217;s really more like a story with a beginning, a middle, and an end.&#8221;</p>
<p>I&#8217;m still not sure if this is meant to be facetious or not. Jokes don&#8217;t always transfer well over to text. But, the book is basically a reference book. Novels and short stories don&#8217;t have indexes. There are some more examples than what I remember from similar style books, but overall, it&#8217;s pretty similar.</p>
<p>The meat of the book is pretty standard fare. Lists of different programs, how to use them, etc. There&#8217;s a decent introduction to Vim in there as well as some explanations on concepts such as compression, signals, and compiling programs, just to name a few. The book ends with shell scripting for Bash and a few programming techniques that a sysadmin should probably know about.</p>
<p>Overall, it&#8217;s not a bad book. I kind of understand the author&#8217;s desire to set it apart from other books in the same arena by targeting Linux specifically and saying it&#8217;s not a reference book. But all-in-all, I don&#8217;t see it as that far apart from other books. Nearly anything you pick up on the subject will get the job done. If it happens to be this one, you shouldn&#8217;t be disappointed.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2012/02/26/book-review-the-linux-command-line-by-william-e-shotts-jr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More PHP ORM disappointment</title>
		<link>http://mattptr.net/2012/01/31/more-php-orm-disappointment/</link>
		<comments>http://mattptr.net/2012/01/31/more-php-orm-disappointment/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 16:39:07 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php orm]]></category>
		<category><![CDATA[phpActiveRecord]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=255</guid>
		<description><![CDATA[OK, so I know I&#8217;ve been beaten this horse to a pulp. But today it reared its ugly head again. The ORM in this case is phpActiveRecord. I had used this in other projects and had a generally positive experience, so I thought it would be a decent fit for this quick little user registration [...]]]></description>
			<content:encoded><![CDATA[<p>OK, so I know I&#8217;ve been beaten this horse to a pulp. But today it reared its ugly head again.</p>
<p>The ORM in this case is <a href="http://www.phpactiverecord.org">phpActiveRecord</a>. I had used this in other projects and had a generally positive experience, so I thought it would be a decent fit for this quick little user registration database I had to set up.</p>
<p>Of course, I had neglected to check whether or not phpActiveRecord worked with PostgreSQL. Silly me, when I looked at <a href="http://www.phpactiverecord.org/projects/main/wiki/Configuration__Setup">this page</a> and saw &#8216;pgsql&#8217; in a DSN, and when I read that PDO is used for the backend &#8212; which provides a decent API for the library to use &#8212; I assumed that I would be safe.</p>
<p>In short terms, no. In longer terms, fuck no.</p>
<p>There&#8217;s an error, apparently in all versions that I could find, in the <a href="https://github.com/kla/php-activerecord/blob/master/lib/adapters/PgsqlAdapter.php">pgsql adapter</a>. I guess there were some <a href="https://github.com/kla/php-activerecord/pull/142">attempts to fix it</a>, but it remains uncommitted to the main branch, despite being a year old.</p>
<p>So good-bye to phpActiveRecord. It was fun, that one time when I used you and you worked correctly. You can now join the wall of shame with lack of PostgresQL support along with WordPress and Drupal. (Yes, I know Drupal core has at least partial support, but modules may not necessarily support pgsql &#8212; which could have been avoided with a decent ORM).</p>
<p>The saga continues&#8230; sigh&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2012/01/31/more-php-orm-disappointment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another disappointing Python web framework</title>
		<link>http://mattptr.net/2012/01/16/another-disappointing-python-web-framework/</link>
		<comments>http://mattptr.net/2012/01/16/another-disappointing-python-web-framework/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 21:53:49 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[circuits]]></category>
		<category><![CDATA[circuits.web]]></category>
		<category><![CDATA[i'm frustrated]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=253</guid>
		<description><![CDATA[I&#8217;ve always liked CherryPy. I thought its routing method was a very novel take on the application routing problem. But I never used it too much because it was too loosely coupled for my purposes at the time. Fast forward to a few weeks ago when I hear about circuits.web, part of the circuits framework. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always liked <a href="http://www.cherrypy.org">CherryPy</a>. I thought its routing method was a very novel take on the application routing problem. But I never used it too much because it was too loosely coupled for my purposes at the time.</p>
<p>Fast forward to a few weeks ago when I hear about <a href="http://pypi.python.org/pypi/circuits">circuits.web</a>, part of the circuits framework. Event driven, modeled after CherryPy, asynchronous, web-socket support, and loosely coupled &#8212; which I need this time.</p>
<p>I&#8217;ve spent the better part of three weeks working with circuits.web, and I can say it&#8217;s been a resounding disappointment.</p>
<p>First of all, documentation is non-existent. And when I say non-existent, I mean non-existent. The core circuits framework is poorly documented <em>at best.</em> The circuits.web component isn&#8217;t documented at all. The closest thing to documentation is a collection of asinine examples that have almost no merit for real life applications, if they even work at all.</p>
<p>Second, I can&#8217;t exactly tell if the project is still being worked on. When I first started, I naively looked at the dates on the recent commits to the whole circuits project. The circuits.web portion hasn&#8217;t been committed to since August. WebSockets were made a candidate recommendation in December. Nothing in circuit.web&#8217;s implementation needs to be changed? That makes me suspicious.</p>
<p>Lastly, the Component architecture seemed like a good idea, but it seems to be thrown together in no logical way. Case in point?</p>
<p>Components handle events. Controllers inherit from Components. Controllers can&#8217;t handle events. Or if they can, I couldn&#8217;t figure out a way. Who knows why &#8212; there&#8217;s no documentation.</p>
<p>I was trying to create an Authentication component for an admin controller. There are of course, no examples of this. The authentication examples &#8212; that is the ACL, HTTP Auth, and HTTP Auth using /etc/passwd &#8212; all use an authentication scheme that is site wide.</p>
<p>What I needed was a way to pick specific actions that would require authorization. I figured out a way by accident, and within 3 seconds found a way around it due to the &#8220;channel&#8221; member of the Controller.</p>
<p>The channel in circuits.web, I assume, specifies the routing for the dispatcher to find the object. So your Admin Controller object might have a channel of &#8220;/admin&#8221;. The problem I found, using a Component for forcing authentication, I could bypass the Auth Component by going to, &#8220;http://localhost/admin<strong>/</strong>&#8220;. Note the trailing slash.</p>
<p>Change the channel to &#8220;/admin/&#8221; or &#8220;admin&#8221; and get a 404 on all admin actions &#8212; but the auth component works.</p>
<p>And that&#8217;s where I&#8217;m at. I should have went with CherryPy on this project, but no, I guess I felt like being disappointed by Python web frameworks again.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2012/01/16/another-disappointing-python-web-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another 6 months of collected thoughts</title>
		<link>http://mattptr.net/2011/12/22/another-6-months-of-collected-thoughts/</link>
		<comments>http://mattptr.net/2011/12/22/another-6-months-of-collected-thoughts/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 20:26:03 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=248</guid>
		<description><![CDATA[Wow. Here I was thinking I&#8217;d have time to update this site more, but then I suddenly became busy at work somehow. Anyway, here we go with the thoughts: Anniversary This site turned 14 on Dec 4th. I swear I didn&#8217;t forget this year. I was going to post on the 5th, but I couldn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Wow. Here I was thinking I&#8217;d have time to update this site more, but then I suddenly became busy at work somehow. Anyway, here we go with the thoughts:</p>
<h3>Anniversary</h3>
<p>This site turned 14 on Dec 4th. I swear I didn&#8217;t forget this year. I was going to post on the 5th, but I couldn&#8217;t think of anything besides, &#8220;The site is 14. Yay.&#8221; &#8230; and I still can&#8217;t think of anything better. So&#8230; yay.</p>
<h3>Drupal</h3>
<p>I no longer have confidence in Drupal. Not that I ever had much, but after spending 6 months working with 5 or 6 Drupal 7 sites, I don&#8217;t know why anyone uses it or continues to develop it. There are a few reasons to list, but the long and short of it is the database.</p>
<p>Drupal&#8217;s &#8220;Field&#8221; feature is important and necessary for nearly every project, and I use it quite a bit. On one project, I had at least 30 unique fields for different content types. The problem is that for each field, two database tables are created. Yes, not just one table, but two.</p>
<p>So my project that has 30 unique fields now has 60 extra tables. Sixty. This is in addition to the numerous tables that are created by default and the different modules. This creates unbelievably long queries with so many joins that use so much memory and are so slow. I don&#8217;t know where that decision came from, but it feels like it was a bolted on solution. Drupal 7 breaks compatibility with previous versions in almost every regard, so why not just rewrite the storage paradigm?</p>
<h3>So which CMS then?</h3>
<p>I don&#8217;t have an answer. I started toying around with several Django based CMSes, Plone, and other Python solutions. All of them have their drawbacks, but mostly, they are far too elaborate and massive for the type of projects I do.</p>
<p>So I&#8217;m going to roll my own. I&#8217;m aware of the, &#8220;why reinvent the wheel,&#8221; argument, but if you&#8217;re never fully satisfied with the wheels available, why settle?</p>
<p>Currently, I&#8217;m thinking about a Python system with ZODB as a storage engine. But&#8230;</p>
<h3>Python library developers make me nervous</h3>
<p>The way I see it, there are 3 levels of  developers for most languages:</p>
<ol>
<li>The core developer &#8212; works on the language and/or standard library</li>
<li>The library/extension developer &#8212; creates projects to ease pains caused by the stdlib, to speed development along and to add specific functionality not provided by the stdlib. E.g., Django, Pyramid, SQLAlchemy, Zope, etc.</li>
<li>The application developer &#8212; works on projects that integrate various libraries to create something for end-users. E.g., Me.</li>
</ol>
<p>I&#8217;ve been working with Python since 2005 or 2006 &#8212; not a very long time. Yet I&#8217;ve picked so many libraries that have been superseded, barely updated, or flat out abandoned. To name a few, Spyced, Aquarium, Webware/WebKit, Pylons, Cheetah Templates, ZSI, PyXML, Glashammer, Google AppEngine, mod_python and who knows how many others.</p>
<p>Over the past 6 months, I&#8217;ve really had the Flask and Jinja projects grow on me. So much so that I started working on the aforementioned CMS with them. But over the same period of time, <a href="http://lucumr.pocoo.org">Armin Ronacher</a> &#8211; the creator of Flask, Werkzeug and Jinja  &#8211; has written some things on Python 3 and WSGI that make me worry that I once again bet on the wrong horse.</p>
<p>This isn&#8217;t meant to be a dig at him at all; I love the work that he&#8217;s done. I just can&#8217;t believe my luck. And it&#8217;s not just a Python thing. Javascript, C, Assembly, PHP&#8230;I&#8217;ve been picking libraries this way since I the days when I was starting a project with WinG just before DirectX started to break.</p>
<p>This is why I do not gamble or own stocks.</p>
<h3>Ding Dong, the wicked jQuery plugin site is dead</h3>
<p>jQuery is getting a new plugin site due to an &#8220;accident&#8221; on the existing site. I use &#8220;accident&#8221; loosely, because it was limping along, gasping for air, on life support, and mostly brain-dead since it&#8217;s inception. (Do note that the old plugin site ran Drupal)</p>
<p>The new plugin site will be based on github or something.</p>
<p>The point is I plan to have both of my plugins up there at some point.</p>
<h3>And that&#8217;s about it</h3>
<p>I&#8217;ll be back before 6 months&#8230; maybe :)</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2011/12/22/another-6-months-of-collected-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Delayed Event</title>
		<link>http://mattptr.net/2011/07/12/jquery-delayed-event/</link>
		<comments>http://mattptr.net/2011/07/12/jquery-delayed-event/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 17:45:14 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[delayed event]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=245</guid>
		<description><![CDATA[Earlier today, I went looking for a plugin similar to hoverIntent but worked for other events. Turns out there wasn&#8217;t one (or at least I couldn&#8217;t find one), so I wrote one. Here it is: Delayed Event Plugin page Zipped source and example Enjoy. I hope it&#8217;s useful for other people. Oh, I should mention&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today, I went looking for a plugin similar to hoverIntent but worked for other events. Turns out there wasn&#8217;t one (or at least I couldn&#8217;t find one), so I wrote one. Here it is:</p>
<p><a href="http://plugins.jquery.com/project/delayed_event">Delayed Event Plugin page</a></p>
<p><a href="/files/delayed_event.zip">Zipped source and example</a></p>
<p>Enjoy. I hope it&#8217;s useful for other people.</p>
<p>Oh, I should mention&#8230; As with the Timer plugin, I have no interest in maintenance or support. So, unless there&#8217;s a major security problem or giant leaking of memory, I don&#8217;t really care. I didn&#8217;t put a lot of thought in to designing an API or anything. You should feel free to modify the code as you see fit.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2011/07/12/jquery-delayed-event/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Another batch of uncollected thoughts</title>
		<link>http://mattptr.net/2011/06/28/another-batch-of-uncollected-thoughts/</link>
		<comments>http://mattptr.net/2011/06/28/another-batch-of-uncollected-thoughts/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 16:45:27 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://mattptr.net/?p=225</guid>
		<description><![CDATA[I haven&#8217;t really had any down time at work lately, and when I get home, I barely have any energy to think about programming. So this site has kind of fallen to the wayside. But, I do have some work related things I can blather on about. Django is still a pleasure to work with [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t really had any down time at work lately, and when I get home, I barely have any energy to think about programming. So this site has kind of fallen to the wayside. But, I do have some work related things I can blather on about.</p>
<h3>Django is still a pleasure to work with</h3>
<p>I developed a site a little over a year ago using Django (1.2) and just completed some updates. Even after updating this code multiple times, it hasn&#8217;t become messy. For content oriented sites, Django rocks. Plain and simple. For things more complex, core Django would probably stand up. For the admin tool, I&#8217;m not so sure. I couldn&#8217;t see it being good in every situation &#8212; if you have to customize it too much, you might be better off writing your own admin interface.</p>
<p>I&#8217;ve been managing the database schema with <a href="http://south.aeracode.org/">South</a> &#8212; which is probably one of the best programs I&#8217;ve ever used. Everything just works. I haven&#8217;t run in to an issue where an automatic update didn&#8217;t work, but then again, this site isn&#8217;t the most complicated site.</p>
<h3>Lots of people don&#8217;t understand Pyramid</h3>
<p>I have my own personal gripes with Pyramid. But over the last few months, I&#8217;ve seen a lot of posts looking for help understanding the &#8220;new&#8221; aspects of Pyramid: namely, the repoze/traversal/zope portions of it. The typical response is: <a href="http://www.reddit.com/r/Python/comments/i3fo6/as_an_experienced_pylons_dev_pyramid_is_melting/c20kw3h">ignore the parts you don&#8217;t understand</a>. So the Pyramid developers spent all this effort, all this time, to improve their framework, write documentation about how it&#8217;s better and how it&#8217;s different and how the <a href="http://docs.pylonsproject.org/projects/pyramid/1.0/designdefense.html">complaints users have about it are unfounded</a>, to say ignore key parts about it and to even go so far as to <a href="http://docs.pylonsproject.org/projects/akhet/dev/">write a wrapper</a> to make it more like the old framework.</p>
<p>Forget understanding the framework&#8230; I just don&#8217;t understand its developers.</p>
<h3>Do framework developers not understand framework users?</h3>
<p>I found <a href="http://reinout.vanrees.org/weblog/2011/06/08/whither-django.html#trends-to-watch">this article</a> a few weeks ago &#8212; a run down of a presentation by Russell Keith-Magee at Djangocon. My particular interest was in the following quote:</p>
<blockquote><p>Microframeworks. How on earth can an april fools joke like <a href="http://flask.pocoo.org/">Flask</a> get actual traction? Turn into a popular framework? Django is lots and lots smaller than zope, but these new ones are even smaller. What is small? What is micro? Could we adopt some? Can we become more attractive? We should think about this.</p></blockquote>
<p>It&#8217;s simple. Flask is better documented than 95.2187% of all the web frameworks available for Python. On the other hand, Django is documented better than 99% of all of them. When it comes to web programming, there&#8217;s no such thing as a silver bullet. Django is &gt; 6MB. Some people think that&#8217;s too big. Some people don&#8217;t like Django&#8217;s ORM and/or template system, and rather than spend effort changing it, would prefer to start with something that doesn&#8217;t force these things upon you.</p>
<p>Maybe instead of trying to figure out how it gained traction and how to apply &#8220;the marketing&#8221; of a project to your own, maybe try to figure out why users like it.</p>
<h3>In conclusion, WTF?</h3>
<p>Apparently, there is <a href="http://drupal.org/node/534594">a pretty serious bug</a> with Drupal 7.2. Also, <a href="http://drupal.org/node/1170312#comment-4547662">a fix has been found and applied in SVN/CVS/Whatever</a>. But, they are waiting for 7.3 I guess to roll out this fix?</p>
<p><img class="aligncenter" title="Sigh" src="http://i.imgur.com/whcRs.jpg" alt="" width="400" height="300" /></p>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 108px; width: 1px; height: 1px; overflow: hidden;"><span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: arial, helvetica, clean, sans-serif; font-size: 13px; line-height: 16px; text-align: left;">&nbsp;</p>
<h1 style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; font-size: 18px; font-weight: bold; padding: 0px;">Russell Keith-Magee</h1>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p></span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://mattptr.net/2011/06/28/another-batch-of-uncollected-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
