<?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>Glengage - Glen Horton &#187; Programming</title>
	<atom:link href="http://glengage.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://glengage.com</link>
	<description>Glengage is the site of Glen Horton, Technology Coordinator for the SouthWest Ohio and Neighboring Libraries.</description>
	<lastBuildDate>Fri, 03 Feb 2012 01:44:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Lots of Drupal to Drink</title>
		<link>http://glengage.com/2009/03/11/lots-of-drupal-to-drink/</link>
		<comments>http://glengage.com/2009/03/11/lots-of-drupal-to-drink/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 04:34:00 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://glengage.com/?p=352</guid>
		<description><![CDATA[We&#8217;ve been using Drupal at MPOW for almost three years, but I feel like there&#8217;s still tons to learn. Drupal is really hot in libraries right now and it seems like everyone is talking about it. Below are the Drupal posts and resources I&#8217;ve come across in just the past week or so. Drink it [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been using Drupal at MPOW for almost three years, but I feel like there&#8217;s still tons to learn.  Drupal is <strong>really hot</strong> in libraries right now and it seems like everyone is talking about it.  Below are the Drupal posts and resources I&#8217;ve come across in just the past week or so.  Drink it up!</p>
<dl>
<dt><a href="http://librarianinblack.typepad.com/librarianinblack/2009/03/recommended-online-drupal-resources.html">Recommended Online Drupal Resources</a></dt>
<dd>The Librarian in Black shares her collection of resources.  It&#8217;s got some great links for people trying to wrap their heads around Drupal.</dd>
<dt><a href="http://broadcast.oreilly.com/2009/03/is-dreamweaver-giving-way-to-d.html">Is Dreamweaver being beaten by Drupal?</a> </dt>
<dd>This article on oreilly.com doesn&#8217;t really answer the question posed in its title, but it does a pretty good job of contrasting static and dynamic websites.  It gets a little technical, but provides a lot of food for thought.</dd>
<dt><a href="http://www.blogwithoutalibrary.net/344">more drupal, if you can stand it</a> </dt>
<dd>Amanda Etches-Johnson wraps up her series on Drupal.  Be sure to check out her earlier posts as well.  It&#8217;s a great way to learn about what libraries can do with Drupal.</dd>
<dt><a href="http://www.alatechsource.org/blog/2009/03/a-n00b-goes-camping-drupal-camp-at-darien-library.html">A n00b goes camping – Drupal Camp at Darien Library</a> </dt>
<dd>DrupalCon was held in D.C. last week, but libraryland recently held its own Drupal event.  <a href="http://www.darienlibrary.org/">Darien Library</a> in Connecticut held a Drupal unconference.  I watched a live stream on the web and it was a very cool event.  <a href="http://citegeist.com/">Cindi Trainor</a> attended in person and posted a very in-depth writeup over at ALA TechSource.  She makes a great point that Drupal can be used for almost anything and is only limited by the expertise found in libraries.</dd>
<dt><a href="http://tips.webdesign10.com/drupal-taxonomy-tutorial">Drupal Taxonomy Tutorial</a> </dt>
<dd>This popped up in <a href="http://friendfeed.com/cindi">Cindi Trainor&#8217;s FriendFeed</a> (FriendFeed is a great way to keep up with what others are bookmarking and sharing).  Anyway, taxonomies are one of the more difficult concepts to grasp in Drupal.  So it&#8217;s nice to have a tutorial like this that steps you through the process.</dd>
<dt><a href="http://groups.drupal.org/node/19730">Service Providers For Libraries</a> </dt>
<dd>This was posted on the <a href="http://groups.drupal.org/libraries">Libraries Drupal Groups</a> site.  It&#8217;s a nice roundup of companies providing Drupal-related services for libraries.  Providers like these make Drupal available to libraries even if they don&#8217;t have in-house support.</dd>
<dt><a href="http://www.nytimes.com/2009/03/02/nyregion/02open.html">Software System’s Fans Gather to Talk Code</a></dt>
<dd>Even the NY Times has picked up on Drupal&#8217;s popularity.  This article gives some good examples of companies and groups using this CMS for their websites.</dd>
</dl>
<p>Oh, if you are near Cincinnati there is a <a href="http://www.meetup.com/Cincinnati-Drupal-Users-Group/">Drupal Users Group</a> here that formed a few months ago.  The group is shaping up nicely and is great for newbies and gurus.  Meetings are at 6:30pm on the 1st Wednesday of each month at the Public Library&#8217;s main branch.</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2009/03/11/lots-of-drupal-to-drink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing SQL Presentation by Jay Pipes</title>
		<link>http://glengage.com/2008/06/23/optimizing-sql-presentation-by-jay-pipes/</link>
		<comments>http://glengage.com/2008/06/23/optimizing-sql-presentation-by-jay-pipes/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 15:34:57 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://glen.wordpress.com/?p=162</guid>
		<description><![CDATA[Last week I got to see Jay Pipes speak at a local PHP users group meeting. He did a 2-part talk on optimizing SQL (Join-Fu, as he calls it). I managed to keep up and follow part 1, but I have to admit that part 2 was largely over my head. Below are some of [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I got to see <a href="http://www.jpipes.com">Jay Pipes</a> speak at a <a href="http://oinkpug.ning.com">local PHP users group</a> meeting.  He did a <a href="http://www.jpipes.com/index.php?/archives/238-Speaking-at-OINK-PUG-in-Cincinnati-Tonight-on-Join-Fu-The-Art-of-SQL.html">2-part talk on optimizing SQL</a> (Join-Fu, as he calls it).  I managed to keep up and follow part 1, but I have to admit that part 2 was largely over my head.  Below are some of the key things I took away from Jay&#8217;s great presentation.</p>
<h3>Vertical Partitioning</h3>
<p>Partitioning vertically is a database optimizing technique where tables with many columns are split into multiple, smaller tables.  Without partitioning, even normalized tables may be a mix of frequently and infrequently accessed columns.  This makes it difficult to keep things loaded in memory and can affect overall performance.</p>
<p>By splitting the table in two, you can have a table of frequently accessed columns and a table of less frequently accessed columns.  The tables can be merged together dynamically when needed, but most of the time you will just need the table with the frequently accessed data.  This approach also gives you the option of using different table types (storage engines) for each of the tables.  Of course, it&#8217;s probably easiest to implement vertical partitioning at the beginning of your project instead of coming back and making changes to the database structure later.</p>
<h3>Horizontal Partitioning</h3>
<p>Partitioning horizontally is a similar concept except that the table is split by rows rather than columns.  This works well when certain rows are accessed more frequently than others.  Depending on the size of the database, having a table of more frequently accessed rows can really speed things up.</p>
<p>The events registration system I created at MPOW can potentially benefit from this.  We have over 10,000 registrations in the system, but most of those are for past events that we rarely need to access.  Having a table of 100-200 registrations for upcoming events and a separate table for the thousands of past event registrations would probably provide a noticeable performance increase.</p>
<h3>Query Cache</h3>
<p>MySQL has a query cache that it uses to increase performance.  If a particular query has already been run on the database, MySQL can return the cached result instead of having to parse it, optimize it, etc.  I was already familiar with the query cache and we use it MPOW.  However, I learned a couple of new tidbits from Jay:</p>
<ul>
<li>&#8220;Any modification to any table involved in the SELECT invalidates the stored result.&#8221;  I guess I already knew this.  What&#8217;s cool, however, is that partitioning your tables properly can reduce this.  Making a change to a table containing <em>upcoming</em> event registrations would not affect the cache for the table containing <em>past</em> event registrations.</li>
<li>Don&#8217;t use InnoDB tables when there are more than 5000 rows and you&#8217;re doing full table scans.  It&#8217;s slooooow.  Use MyISAM table types instead.</li>
<li>If you are doing a SELECT on tables that change frequently, there is no point in storing the result in cache because it will soon be invalid.  Use SELECT SQL_NO_CACHE to prevent MySQL from storing highly dynamic results and filling up the cache.</li>
<li>MEMORY table types are fast and good for data that can be thrown away or re-computed again.</li>
</ul>
<h3>ANSI vs. Theta Coding Style</h3>
<p>Jay put two different versions of a SELECT statement up on the screen and asked the group which style they used.  One style used INNER JOINs (ANSI style) and the other used WHERE and AND clauses (Theta style or comma style).  I think most of the room (including me) raised our hands for the latter.  Jay made some good points about ANSI being easier to read and more portable.  I need to force myself to try ANSI and get used to it.  Theta style, however, is very natural for me and I suspect it will be hard for me to change.</p>
<p>The slides from Jay&#8217;s talk (including part 2) are <a href="http://www.jpipes.com/index.php?/archives/239-Slides-for-Join-Fu-The-Art-of-SQL-I-and-II.html">up on his website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2008/06/23/optimizing-sql-presentation-by-jay-pipes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Doctype Helps Web Developers</title>
		<link>http://glengage.com/2008/05/26/google-doctype-helps-web-developers/</link>
		<comments>http://glengage.com/2008/05/26/google-doctype-helps-web-developers/#comments</comments>
		<pubDate>Tue, 27 May 2008 02:57:57 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://glen.wordpress.com/?p=158</guid>
		<description><![CDATA[Google recently unveiled Google Doctype. It&#8217;s an online encyclopedia for web developers. Many aspect of development are covered such as CSS, Javascript, security, and performance. Google Doctype is basically like Wikipedia for web development. Anyone with a Google account can add content. So the site will get better as more people contribute. I&#8217;ve spent some [...]]]></description>
			<content:encoded><![CDATA[<p>Google recently unveiled <a href="http://code.google.com/doctype/">Google Doctype</a>.  It&#8217;s an online encyclopedia for web developers.  Many aspect of development are covered such as CSS, Javascript, security, and performance.</p>
<p>Google Doctype is basically like Wikipedia for web development.  Anyone with a Google account can add content.  So the site will get better as more people contribute.  I&#8217;ve spent some time browsing around the resource, but of course since this is from Google you can search as well.</p>
<p>My only issue so far with the site is that I haven&#8217;t found any RSS feeds for different sections.  It would be nice to be able to subscribe to updates and changes, but this is a beta release so maybe that will be available down the road.</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2008/05/26/google-doctype-helps-web-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox for Development</title>
		<link>http://glengage.com/2007/08/23/firefox-for-development/</link>
		<comments>http://glengage.com/2007/08/23/firefox-for-development/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 00:54:29 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://glengage.com/2007/08/23/firefox-for-development/</guid>
		<description><![CDATA[Firefox is a great web browser, but it also makes for a great development environment. With the right extensions loaded, you can really save some time tracing through code, finding bugs, and optimizing your site. Below are the extensions that I have loaded in Firefox. ColorZilla This extension puts a little eye dropper tool in [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox is a great web browser, but it also makes for a great development environment.  With the right extensions loaded, you can really save some time tracing through code, finding bugs, and optimizing your site.  Below are the extensions that I have loaded in Firefox.</p>
<h3><a href="https://addons.mozilla.org/en-US/firefox/addon/271">ColorZilla</a></h3>
<p>This extension puts a little eye dropper tool in the lower-left corner of the browser.  Clicking on the dropper and then on the web page gives you the RGB or Hex code of the color at that spot.  You can also copy the code to the clipboard to be pasted into a style sheet, etc.  I use this one a lot.  It&#8217;s simple, but very useful.</p>
<h3><a href="https://addons.mozilla.org/en-US/firefox/addon/2064">Dummy Lipsom</a></h3>
<p>I don&#8217;t use this as much as I should, but that&#8217;s because I often forget about it.  It allows you to quickly fill in form fields with dummy <a href="http://www.lipsum.com/">Lorem Ipsum</a> text.  That way, you can quickly test a form without having to fill it out by hand.  If you use a CMS, you can also use this to quickly create body text for a page.</p>
<h3><a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a></h3>
<p>If I had to pick only two extensions, Firebug would be one of them.  It sits as an icon on the bottom status bar until needed.  It&#8217;s great for debugging JavaScript code, but I don&#8217;t do a whole lot of that.  For me, the best feature is being able to click anywhere on the web page and seeing in real time what HTML and CSS is code is involved in that spot.  Firebug also allows you to edit code and see the effects in real time.</p>
<h3><a href="https://addons.mozilla.org/en-US/firefox/addon/249">HTML Validator</a></h3>
<p>This extension is simple, but valuable.  It validates web pages in the background and displays a check mark in the status bar.  When viewing HTML source, it highlights the lines that are causing validation errors.  It&#8217;s great for ongoing monitoring of a web site.</p>
<h3><a href="https://addons.mozilla.org/en-US/firefox/addon/1429">IE View Lite</a></h3>
<p>Another simple extension.  Load a page in Firefox, right-click on the page, click on &#8220;View this page in IE.&#8221;  It will launch Internet Explore and load the same page you were viewing in Firefox.  It&#8217;s nice for checking how pages look in IE and for pages that don&#8217;t look or work properly in Firefox.</p>
<h3><a href="https://addons.mozilla.org/en-US/firefox/addon/60">Web Developer</a></h3>
<p>If I had to choose just one extension, this would be it .  It&#8217;s not quite as powerful as Firebug, but it&#8217;s very easy to use.  It gives you a toolbar across the top of the browser that has the tools clearly organized and displayed.  I like that I don&#8217;t have to think about <em>how</em> to use tool.  It&#8217;s just second nature.  Nifty features include a ruler, a page magnifier, a window resizer, and many more.</p>
<h3><a href="https://addons.mozilla.org/en-US/firefox/addon/1802">X-Ray</a></h3>
<p>X-Ray puts an item on your right-click menu that acts as a toggle.  When turned on, it surrounds a page&#8217;s content with the underlying elements and classes.  So instead of a word showing up as <em>word</em>.  It is displayed as &lt;p&gt;&lt;em&gt;<em>word</em>&lt;/em&gt;&lt;/p&gt;.</p>
<h3><a href="https://addons.mozilla.org/en-US/firefox/addon/5369">YSlow</a></h3>
<p>This one is an extension of an extension.  It works with Firebug to identify &#8220;problems&#8221; that may slow down the loading of a web page.  The extension is Yahoo&#8217;s response to its <a href="http://developer.yahoo.com/performance/rules.html">Thirteen Simple Rules for Speeding Up Your Web Site</a>.  When run, it gives you a letter grade on all thirteen aspects of your page.  Pay attention to the rules and what they mean.  Some of the suggestions it makes can actually slow down your page depending how your site and server are set up.</p>
<p>I should note that all of the above extensions work in Firefox running on both Linux and Windows.  I haven&#8217;t tried them on a Mac, but I bet many of them will work.</p>
<p>Of course, I&#8217;m not developing all of the time.  Sometimes I just want to use Firefox as a browser.  Having all of the above extensions loaded into Firefox can use up RAM and slow things down.  So I created a separate <a href="http://www.mozilla.org/support/firefox/profile">profile</a> in Firefox where I installed all of the developer extentions.  So when I start the browser, I can choose to load my day-to-day profile with minimal extentions or the developer one.</p>
<p>If you develop web sites and don&#8217;t use Firefox, you should.  If, however, you are stuck with IE, there is an <a href="http://www.microsoft.com/downloads/details.aspx?familyid=E59C3964-672D-4511-BB3E-2D5E1DB91038&amp;displaylang=en">Internet Explorer Developer Toolbar</a> available.  I haven&#8217;t used it, but I hear that it&#8217;s decent.</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2007/08/23/firefox-for-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What is Web 3.0?</title>
		<link>http://glengage.com/2007/08/09/what-is-web-30/</link>
		<comments>http://glengage.com/2007/08/09/what-is-web-30/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 14:57:54 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[Digital Content]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://glengage.com/2007/08/09/what-is-web-30/</guid>
		<description><![CDATA[Many months ago, I linked to a video that tried to answer the question, &#8220;What is Web 2.0?&#8221; Recently, someone asked Google&#8217;s CEO &#8220;What is Web 3.0?&#8221; Here is a 2-minute video of his response. [youtube=http://youtube.com/w/?v=T0QJmmdw3b0] Key points from his definition: Applications that are pieced together The data is in the cloud Can run on [...]]]></description>
			<content:encoded><![CDATA[<p>Many months ago, I <a href="http://glengage.com/2007/02/03/what-is-web-20/">linked to a video</a> that tried to answer the question, &#8220;What is Web 2.0?&#8221;  Recently, someone asked Google&#8217;s CEO &#8220;What is Web <strong>3.0</strong>?&#8221;  Here is a 2-minute video of his response.</p>
<p>[youtube=http://youtube.com/w/?v=T0QJmmdw3b0]</p>
<p>Key points from his definition:</p>
<ul>
<li>Applications that are pieced together</li>
<li>The data is in the cloud</li>
<li>Can run on any device</li>
<li>Very fast, very customizable</li>
<li>Distributed virally</li>
</ul>
<p>His response is very focused on the idea of the Web as a software platform.  And it&#8217;s no coincidence that these are the types of things that Google is developing.   Many other descriptions of Web 3.0 focus on the <a href="http://en.wikipedia.org/wiki/Semantic_Web">Semantic Web</a> aspect.  No one really knows exactly how the Web will evolve, but I think it&#8217;s a given that more and more software will live online.</p>
<p>Whatever the next evolution of the Web looks like, libraries need to figure out how it fits into the services they provide.  Much of the information that libraries provide is already available online.  There are some questions, however, that libraries need to think about.  Can library data be mixed up and used in custom applications?  How can libraries integrate data from &#8220;the cloud?&#8221;  Can these services be easily accessed on <a href="http://glengage.com/2007/07/04/does-your-site-work-on-the-iphone/">mobile devices</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2007/08/09/what-is-web-30/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Give it Away and Make Money</title>
		<link>http://glengage.com/2007/05/31/give-it-away-and-make-money/</link>
		<comments>http://glengage.com/2007/05/31/give-it-away-and-make-money/#comments</comments>
		<pubDate>Thu, 31 May 2007 19:52:41 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://glengage.com/2007/05/31/give-it-away-and-make-money/</guid>
		<description><![CDATA[&#8220;How can someone make a living from writing open source or free software?&#8221; I get questions like that a lot when talking about open source. Coding Horror has a recent post that&#8217;s a great example of how one can profit from free software. It highlights the flash-based game Desktop Tower Defense and how the author [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;How can someone make a living from writing open source or free software?&#8221;  I get questions like that a lot when talking about open source.  <a href="http://www.codinghorror.com/blog/archives/000872.html">Coding Horror</a> has a recent post that&#8217;s a great example of how one can profit from free software.  It highlights the flash-based game <a href="http://www.handdrawngames.com/DesktopTD/">Desktop Tower Defense</a> and how the author is making about $8,000 per month in ad revenue by making the game freely available on the Internet.</p>
<blockquote><p>So minus the time he spent programming, and his nominal hosting fees, Paul Preese is clearing almost $100,000 &#8220;salary&#8221; per year with Desktop Tower Defense. And he did it all on his own: he wrote the game, placed it on a public web server, hooked up AdSense, and then submitted it to a few social bookmark sites. No selling his soul to a publisher, no middlemen, just pure income, controlled directly by him.</p></blockquote>
<p>There are lots of ways to make money on software without charging for the software itself.  Ad revenue, support, and distribution can all be sources of revenue.</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2007/05/31/give-it-away-and-make-money/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Up Some Time and Your Todo List</title>
		<link>http://glengage.com/2007/04/17/free-up-some-time-and-your-todo-list/</link>
		<comments>http://glengage.com/2007/04/17/free-up-some-time-and-your-todo-list/#comments</comments>
		<pubDate>Wed, 18 Apr 2007 03:01:03 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://glengage.com/2007/04/17/free-up-some-time-and-your-todo-list/</guid>
		<description><![CDATA[Library Web Chic recently talked about using cron on *nix boxes to automate web server log file rotations. At MPOW I use cron quite a bit on our Linux boxes. Once you get the hang of it, cron makes it so easy to automate tasks. On our web server, I use cron to do the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.librarywebchic.net/wordpress/2007/04/14/cleaning-a-few-things-up/">Library Web Chic</a> recently talked about using <a href="http://en.wikipedia.org/wiki/Cron">cron</a> on *nix boxes to automate web server log file rotations.  At MPOW I use cron quite a bit on our Linux boxes.  Once you get the hang of it, cron makes it so easy to automate tasks.   On our web server, I use cron to do the following:</p>
<p>Hourly:</p>
<ul>
<li>check for odd things in system files using <em>logcheck</em></li>
<li>run some administrative tasks for <em><a href="http://drupal.org">Drupal</a></em> (content management system)</li>
<li> send out event reminders for <em><a href="http://www.k5n.us/webcalendar.php">Webcalendar</a></em> (this runs every minute)</li>
</ul>
<p>Nightly:</p>
<ul>
<li>backup all files to external disk using <em>tar</em> &amp;<em> gzip</em></li>
<li>backup all files to an off-site server using <em>rsync</em></li>
<li>run web statistics software</li>
<li>run a virus scan using <a href="http://www.clamav.net"><em>clamAV</em></a></li>
<li>sync up with time servers with <em>ntpdate</em></li>
<li>use <em>grep</em> to find any PHP script warnings/errors from the web server log</li>
</ul>
<p>Weekly:</p>
<ul>
<li>use <em>df</em> to email me a report on disk space usage</li>
<li>run the <em>last</em> command to see who has logged in</li>
<li>verify ports in use using <a href="http://insecure.org/nmap/"><em>nmap</em></a></li>
</ul>
<p>Monthly:</p>
<ul>
<li>rotate web server logs using <em>logrotate</em></li>
</ul>
<p>I also use cron with the PHP command line interpreter to run some custom scripts.  Like emailing the staff each morning with current numbers from our event registration system.   If you can do some scripting, you can automate almost anything with cron.</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2007/04/17/free-up-some-time-and-your-todo-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Five Non-Library Blogs</title>
		<link>http://glengage.com/2007/03/31/five-non-library-blogs/</link>
		<comments>http://glengage.com/2007/03/31/five-non-library-blogs/#comments</comments>
		<pubDate>Sat, 31 Mar 2007 05:01:13 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://glengage.com/2007/03/31/five-non-library-blogs/</guid>
		<description><![CDATA[Not to be left out, I decided to join the meme and list five of the non-library blogs I read. Of course, most of them are tech related. Lifehacker: I know that others have already listed this one, but it deserves to be mentioned again. I always look forward to the Lifehacker posts when I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>Not to be left out, I decided to join the <a href="http://www.lisjobs.com/liminal/2007/03/blogversity-attempt-at-meme.html">meme</a> and list five of the non-library blogs I read.  Of course, most of them are tech related.</p>
<ul>
<li><a href="http://lifehacker.com">Lifehacker</a>: I know that others have already listed this one, but it deserves to be mentioned again.  I always look forward to the Lifehacker posts when I&#8217;m going through my RSS feeds.  Many of the tips are tech related, but not all.</li>
<li><a href="http://www.engadget.com">Engadget</a>: The best gadget blog.  Tons of quality content.  They have a great podcast too.</li>
<li><a href="http://webworkerdaily.com">Web Worker Daily</a>: We are all web workers to some degree.  This blog has great tips, surveys, and reviews for people who need to get their jobs done via the web.</li>
<li><a href="http://www.codinghorror.com">Coding Horror</a>: I found this one fairly recently, but it&#8217;s quickly becoming one of my favorites.   A must read for anyone who codes.</li>
<li><a href="http://wilwheaton.typepad.com/">Wil Wheaton</a>: I&#8217;m a Star Trek fan and that&#8217;s what originally drew me to Wil&#8217;s blog (he&#8217;s a former child actor from the The Next Generation series).  Now he&#8217;s <a href="http://www.amazon.com/exec/obidos/ASIN/059600768X/wilwheatodotn-20">just a geek</a>.  Trek comes up every now and then, but it&#8217;s mostly just great posts on life, technology, and anything else.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2007/03/31/five-non-library-blogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>code4lib 2007</title>
		<link>http://glengage.com/2007/03/18/code4lib-2007/</link>
		<comments>http://glengage.com/2007/03/18/code4lib-2007/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 03:13:08 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://glengage.com/2007/03/18/code4lib-2007/</guid>
		<description><![CDATA[I wanted to go badly, but I couldn&#8217;t make it to this year&#8217;s code4lib conference. Besides the content, I think the format of the conference is intriguing. It&#8217;s no wonder that registration filled early. The conference schedule now has links to slides and video of all the sessions. Videos of the lightning talks are also [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to go badly, but I couldn&#8217;t make it to <a href="http://www.code4lib.org/2007">this year&#8217;s code4lib conference</a>.  Besides the content, I think the format of the conference is intriguing.  It&#8217;s no wonder that registration filled early.</p>
<p>The <a href="http://www.code4lib.org/2007/schedule">conference schedule</a> now has links to slides and <strong>video</strong> of all the sessions.   Videos of the <a href="http://www.code4lib.org/2007/lightningtalks">lightning talks</a> are also available; including one on the <a href="http://www.oplin.org/4cast/index.php/?p=69">OPLIN 4cast</a>.   					Now I just gotta find the time to sit down and watch.  Dan Chudnov has also posted his <a href="http://onebiglibrary.net/story/code4lib-2007-brain-dump">brain dump</a> of the conference and has some interesting thoughts about this year and the future.</p>
<p>code4lib 2008 will be hosted by <a href="http://oregonstate.edu/">Oregon State University</a> in Portland.</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2007/03/18/code4lib-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make Your LAMP Go Faster</title>
		<link>http://glengage.com/2007/02/16/make-your-lamp-go-faster/</link>
		<comments>http://glengage.com/2007/02/16/make-your-lamp-go-faster/#comments</comments>
		<pubDate>Sat, 17 Feb 2007 03:21:50 +0000</pubDate>
		<dc:creator>Glen</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://glengage.com/2007/02/16/make-your-lamp-go-faster/</guid>
		<description><![CDATA[If you use PHP and/or MySQL on a site with heavy traffic, go read 4+1 Ways To Speed Up WordPress With Caching. While the article promotes these tips as ways to speed up WordPress, they&#8217;re actually good tips for speeding up PHP/MySQL in general. The idea is that the data being served by PHP/MySQL is [...]]]></description>
			<content:encoded><![CDATA[<p>If you use PHP and/or MySQL on a site with heavy traffic, go read <a href="http://www.arnebrachhold.de/2007/02/16/four-plus-one-ways-to-speed-up-the-performance-of-wordpress-with-caching">4+1 Ways To Speed Up WordPress With Caching</a>.  While the article promotes these tips as ways to speed up WordPress, they&#8217;re actually good tips for speeding up PHP/MySQL in general.  The idea is that the data being served by PHP/MySQL is probably not changing that frequently and can be cached and served to users faster and with less processing.</p>
]]></content:encoded>
			<wfw:commentRss>http://glengage.com/2007/02/16/make-your-lamp-go-faster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: glengage.com @ 2012-02-05 14:31:05 -->
