<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Zardoz</title>
	<atom:link href="http://glomerate.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://glomerate.wordpress.com</link>
	<description>A Blog</description>
	<lastBuildDate>Thu, 18 Aug 2011 17:05:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='glomerate.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Zardoz</title>
		<link>http://glomerate.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://glomerate.wordpress.com/osd.xml" title="Zardoz" />
	<atom:link rel='hub' href='http://glomerate.wordpress.com/?pushpress=hub'/>
		<item>
		<title>A compound field example for CCK 2 &amp; Drupal 6</title>
		<link>http://glomerate.wordpress.com/2009/11/09/a-compound-field-example-for-cck-2-and-drupal-6/</link>
		<comments>http://glomerate.wordpress.com/2009/11/09/a-compound-field-example-for-cck-2-and-drupal-6/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 15:21:00 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[CCK]]></category>
		<category><![CDATA[compound field]]></category>

		<guid isPermaLink="false">http://glomerate.wordpress.com/?p=147</guid>
		<description><![CDATA[For anyone attempting to create a compound field (meaning a single CCK field that is made up of multiple sub-fields) in Drupal, but are lost in a sea of poorly documented hooks and functions so abstracted as to have lost nearly all meaning, like I was for the last two days, I offer you the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=147&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For anyone attempting to create a compound field (meaning a single CCK field that is made up of multiple sub-fields) in Drupal, but are lost in a sea of <a href="http://drupal.org/node/342987">poorly documented hooks</a> and functions so abstracted as to have lost nearly all meaning, like I was for the last two days, I offer you the following example module. This is tested to work on an Acquia Drupal 6.14 build with CCK version 6.x-2.5. By &#8220;work&#8221;, I mean that your form will have a compound field that saves data and is available to your $node object. There are no settings, no validation or sanitizing or views integration. This is provided as a starting point for your own custom module.</p>
<p>You&#8217;ll want to start with these four functions:</p>
<ol>
<li><strong>compoundfield_field_settings()</strong>, to declare your database structure:
<pre class="brush: php;">
/**
 * Implementation of hook_field_settings().
 */
function compoundfield_field_settings($op, $field) {
  switch ($op) {
    case 'database columns':
      return array(
        'textfield' =&gt; array('type' =&gt; 'varchar', 'length' =&gt; 255, 'not null' =&gt; FALSE, 'sortable' =&gt; FALSE, 'views' =&gt; FALSE),
        'textarea' =&gt; array('type' =&gt; 'text', 'not null' =&gt; FALSE, 'sortable' =&gt; TRUE, 'views' =&gt; FALSE),
        'select' =&gt; array('type' =&gt; 'int', 'unsigned' =&gt; TRUE, 'not null' =&gt; FALSE, 'views' =&gt; FALSE),
      );

  }
}
</pre>
</li>
<li><strong>compoundfield_process()</strong>, to declare the Form API structure (as you would any other Drupal form):
<pre class="brush: php;">
/**
 * Process an individual element.
 *
 * Build the form element. When creating a form using FAPI #process,
 * note that $element['#value'] is already set.
 *
 * The $fields array is in $form['#field_info'][$element['#field_name']].
 */
function compoundfield_process($element, $edit, $form_state, $form) {
  $element['textfield'] = array(
    '#type' =&gt; 'textfield',
    '#title' =&gt; t('Example Text Field'),
    '#maxlength' =&gt; '255',
    '#default_value' =&gt; isset($element['#value']['textfield']) ? $element['#value']['textfield'] : NULL,
  );
  $element['textarea'] = array(
    '#type' =&gt; 'textarea',
    '#title' =&gt; t('Example Textarea Field'),
    '#required' =&gt; FALSE,
    '#default_value' =&gt; isset($element['#value']['textarea']) ? $element['#value']['textarea'] : NULL,
  );
  $element['select'] = array(
    '#type' =&gt; 'select',
    '#title' =&gt; t('Example Select Field'),
    '#default_value' =&gt; isset($element['#value']['select']) ? $element['#value']['select'] : NULL,
    '#options' =&gt; array(
      '1' =&gt; t('Option 1'),
      '2' =&gt; t('Option 2'),
      '3' =&gt; t('Option 3'),
    ),
  );
  return $element;
}
</pre>
</li>
<li><strong>theme_compoundfield()</strong> to theme the form HTML:
<pre class="brush: php;">
/**
 * FAPI theme for an individual element.
 */
function theme_compoundfield($element) {
  // If you want to add CSS (or JS) for this form, here's where you would:
  // drupal_add_css(drupal_get_path('module', 'compoundfield') .'/compoundfield.css');
  $output = '';
  $output .= '&lt;div class=&quot;compoundfield&quot;&gt;';
  $output .= theme('textfield', $element['textfield']);
  $output .= theme('textarea', $element['textarea']);
  $output .= theme('select', $element['select']);
  $output .= '&lt;/div&gt;';
  return $output;
}
</pre>
</li>
<li>and <strong>theme_compoundfield_formatter_default()</strong> to theme the default view:
<pre class="brush: php;">
/**
 * Theme function for 'default' example field formatter.
 *
 * $element['#item']: the sanitized $delta value for the item,
 * $element['#field_name']: the field name,
 * $element['#type_name']: the $node-&gt;type,
 * $element['#formatter']: the $formatter_name,
 * $element['#node']: the $node,
 * $element['#delta']: the delta of this item, like '0',
 *
 */
function theme_compoundfield_formatter_default($element) {
  $output = '';
  $output .= '&lt;div class=&quot;compoundfield-textfield&quot;&gt;' . $element['#item']['textfield'] . '&lt;/div&gt;';
  $output .= '&lt;div class=&quot;compoundfield-textarea&quot;&gt;' . $element['#item']['textarea'] . '&lt;/div&gt;';
  $output .= '&lt;div class=&quot;compoundfield-select&quot;&gt;' . $element['#item']['select'] . '&lt;/div&gt;';
  return $output;
}
</pre>
</li>
</ol>
<p>Suggestions, questions, and comments are all welcome. This code is mostly a combination of <a href="http://drupal.org/project/link" target="_blank">the link module</a>, <a href="http://www.lullabot.com/articles/creating-custom-cck-fields" target="_blank">Karen Stevenson&#8217;s very helpful Lullabot article</a>, and <a href="http://www.poplarware.com/cckfieldmodule.html">this article</a> by Jennifer Hodgdon.</p>
<div style="border:1px dashed #ccc;margin-bottom:1em;padding:14px 16px;"><strong>Download:</strong> <a href="http://www.glomerate.com/files/compoundfield-6.x-1.1.zip">compoundfield-6.x-1.1.zip</a></div>
<br />Posted in Drupal Tagged: CCK, compound field, Drupal <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/glomerate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/glomerate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/glomerate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/glomerate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/glomerate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/glomerate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/glomerate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/glomerate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/glomerate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/glomerate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/glomerate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/glomerate.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/glomerate.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/glomerate.wordpress.com/147/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=147&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy"></div>]]></content:encoded>
			<wfw:commentRss>http://glomerate.wordpress.com/2009/11/09/a-compound-field-example-for-cck-2-and-drupal-6/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Andrew</media:title>
		</media:content>
	</item>
		<item>
		<title>Migrating from Gmail to Google Apps</title>
		<link>http://glomerate.wordpress.com/2008/08/20/migrating-from-gmail-to-google-apps/</link>
		<comments>http://glomerate.wordpress.com/2008/08/20/migrating-from-gmail-to-google-apps/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 15:40:19 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Google Apps]]></category>
		<category><![CDATA[migration]]></category>

		<guid isPermaLink="false">http://glomerate.wordpress.com/?p=104</guid>
		<description><![CDATA[Here I hope to help you avoid the pain of trying to migrate a Gmail account (or two) to Google Apps without knowing how, which appears to be completely undocumented and unsupported. There are various other methods but none of them worked for me, so here we are. One caveat with this method: all of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=104&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here I hope to help you avoid the pain of trying to migrate a Gmail account (or two) to Google Apps without knowing how, which appears to be completely undocumented and unsupported. There are <a href="http://www.thamtech.com/blog/2008/03/29/gmail-to-google-apps-email-migration/" target="_blank">various</a> <a href="https://mail.google.com/support/bin/answer.py?answer=21288" target="_blank">other</a> <a href="https://mail.google.com/mail/help/email_uploader.html" target="_blank">methods</a> but none of them worked for me, so here we are.</p>
<p>One caveat with this method: all of your email will be &#8220;archived&#8221;, meaning if you&#8217;re one of those people that keeps everything in the inbox, your inbox will be empty when all is said and done. <a href="http://www.43folders.com/izero" target="_blank">Some people</a> think that&#8217;s a good thing, and I agree &#8211; though the line between organizing 99% of your mail and 100% happens to overlap the line between sanity and insanity. The line between love and hate is also nearby.</p>
<p><strong>Preparations</strong></p>
<ol>
<li>You&#8217;ll need to set up a Google Apps &#8220;<a href="http://www.google.com/a/help/intl/en/admins/editions.html" target="_blank">Premier Edition</a>&#8221; account. They have a 30-day trial so you can do all of this and then cancel before being charged.</li>
<li>Set up your user and your email account.</li>
<li>Recreate your gmail filters and labels before migrating &#8211; this way your migrated email will be filtered and labeled as it comes in. Contacts can be exported/imported easily.</li>
</ol>
<p><strong>Migration</strong></p>
<ol>
<li>Go to the Google Apps dashboard &gt; Advanced Tools &gt; Set up mail (IMAP) migration.</li>
<li>Set up the Google Apps &lt;&gt; Gmail connection like so:<br />
<img class="size-full wp-image-110" style="border:1px dotted #cccccc;margin:8px 0;padding:20px;" src="http://glomerate.files.wordpress.com/2008/08/google2.png?w=411&#038;h=513" alt="" width="411" height="513" /><br />
You can of course change the number of connections but it should probably be kept low, otherwise you risk a <a href="http://www.google.com/search?q=%22lockdown+in+sector+4%22">lockdown in sector 4</a>.</li>
<li>Enter your Account username and password and test the connection. You should only see &#8220;All Mail&#8221; under &#8220;Folders Found&#8221;. (This is important because the migration program thinks labels are folders, so if a particular email has 3 labels attached to it and if you were to import the entire gmail account, you&#8217;d end up with 3 duplicates of that email.) Click Start migration. Enjoy knowing that you didn&#8217;t have to waste hours figuring all of this out on your own. You bastard.</li>
<li>The migration should create two new labels, &#8220;Migrated&#8221; and &#8220;Migrated/All Mail&#8221;. After migration is 100% complete, delete those labels and you&#8217;re done.</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/glomerate.wordpress.com/104/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/glomerate.wordpress.com/104/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/glomerate.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/glomerate.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/glomerate.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/glomerate.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/glomerate.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/glomerate.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/glomerate.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/glomerate.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/glomerate.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/glomerate.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/glomerate.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/glomerate.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/glomerate.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/glomerate.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=104&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy"></div>]]></content:encoded>
			<wfw:commentRss>http://glomerate.wordpress.com/2008/08/20/migrating-from-gmail-to-google-apps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Andrew</media:title>
		</media:content>

		<media:content url="http://glomerate.files.wordpress.com/2008/08/google2.png" medium="image" />
	</item>
		<item>
		<title>Better Windows behavior through software</title>
		<link>http://glomerate.wordpress.com/2008/07/29/better-windows-behavior/</link>
		<comments>http://glomerate.wordpress.com/2008/07/29/better-windows-behavior/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 21:49:30 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[usability]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://glomerate.wordpress.com/?p=58</guid>
		<description><![CDATA[If you&#8217;ve ever wanted to be able to install a font simply by right-clicking on it in Windows, this InBev&#8217;s for you.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=58&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-59 alignleft" style="margin-right:15px;padding:0;" src="http://glomerate.files.wordpress.com/2008/07/screenshot.gif?w=182&#038;h=97" alt="" width="182" height="97" /></p>
<p>If you&#8217;ve ever wanted to be able to install a font simply by right-clicking on it in Windows, <a href="http://clickfont.whyeye.org/" target="_blank">this InBev&#8217;s for you</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/glomerate.wordpress.com/58/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/glomerate.wordpress.com/58/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/glomerate.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/glomerate.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/glomerate.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/glomerate.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/glomerate.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/glomerate.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/glomerate.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/glomerate.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/glomerate.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/glomerate.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/glomerate.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/glomerate.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/glomerate.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/glomerate.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=58&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy"></div>]]></content:encoded>
			<wfw:commentRss>http://glomerate.wordpress.com/2008/07/29/better-windows-behavior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Andrew</media:title>
		</media:content>

		<media:content url="http://glomerate.files.wordpress.com/2008/07/screenshot.gif" medium="image" />
	</item>
		<item>
		<title>Minimizing TCP connections: Drupal&#8217;s Lightbox2 module</title>
		<link>http://glomerate.wordpress.com/2008/07/29/drupal-lightbox2/</link>
		<comments>http://glomerate.wordpress.com/2008/07/29/drupal-lightbox2/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 05:05:03 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://glomerate.wordpress.com/?p=30</guid>
		<description><![CDATA[I&#8217;ve been trying to cut down on TCP connections per pageview for a Drupal 5 site which uses the Lightbox2 module. I noticed that the following images are loaded, even if none of the images on the page are lightboxed: /sites/all/modules/lightbox2/images/loading.gif /sites/all/modules/lightbox2/images/blank.gif /sites/all/modules/lightbox2/images/prev.gif /sites/all/modules/lightbox2/images/next.gif /sites/all/modules/lightbox2/images/close.gif /sites/all/modules/lightbox2/images/expand.gif /sites/all/modules/lightbox2/images/pause.gif /sites/all/modules/lightbox2/images/contract.gif /sites/all/modules/lightbox2/images/play.gif It&#8217;s possible that Firefox and IE [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=30&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to cut down on TCP connections per pageview for a Drupal 5 site which uses the <a href="http://drupal.org/project/lightbox2">Lightbox2</a> module. I noticed that the following images are loaded, even if none of the images on the page are lightboxed:</p>
<p><code style="font-size:11px;line-height:17px;">/sites/all/modules/lightbox2/images/loading.gif<br />
/sites/all/modules/lightbox2/images/blank.gif<br />
/sites/all/modules/lightbox2/images/prev.gif<br />
/sites/all/modules/lightbox2/images/next.gif<br />
/sites/all/modules/lightbox2/images/close.gif<br />
/sites/all/modules/lightbox2/images/expand.gif<br />
/sites/all/modules/lightbox2/images/pause.gif<br />
/sites/all/modules/lightbox2/images/contract.gif<br />
/sites/all/modules/lightbox2/images/play.gif</code></p>
<p>It&#8217;s possible that Firefox and IE (and/or Safari) behave differently in this case, where an image is called by the CSS background property but the containing element is set to display: none. I don&#8217;t see these as loaded in Firebug, but I do see them in &#8220;Page Info&#8221;, under Media, as well as in the HTTP access log.</p>
<p>Since I&#8217;m only using the loading.gif image for preloading (clicking the image itself or the overlay closes the lightbox), I want to keep from loading the rest. The solution here is to comment out the background property definitions in the lightbox2/css/lightbox.css file that call the remaining images. Having done that, the TCP connections needed for each non-cached pageview is reduced by 8.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/glomerate.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/glomerate.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/glomerate.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/glomerate.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/glomerate.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/glomerate.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/glomerate.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/glomerate.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/glomerate.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/glomerate.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/glomerate.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/glomerate.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/glomerate.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/glomerate.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/glomerate.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/glomerate.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=30&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy"></div>]]></content:encoded>
			<wfw:commentRss>http://glomerate.wordpress.com/2008/07/29/drupal-lightbox2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Andrew</media:title>
		</media:content>
	</item>
		<item>
		<title>Limiting qmail-smtpd instances</title>
		<link>http://glomerate.wordpress.com/2008/07/29/limiting-qmail-smtpd-instances/</link>
		<comments>http://glomerate.wordpress.com/2008/07/29/limiting-qmail-smtpd-instances/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 04:46:56 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[plesk]]></category>
		<category><![CDATA[qmail]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://glomerate.wordpress.com/?p=24</guid>
		<description><![CDATA[Two of my Media Temple (dv) servers were getting hit by a botnet-like spam attack this morning, causing a significant number of concurrent SMTP connections. There was a rapid succession of /var/qmail/bin/relaylock entries in the maillog (checking that with tail -f /usr/local/psa/var/log/maillog), but the real problem was the number of qmail-smtpd instances running (found through [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=24&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-39" src="http://glomerate.files.wordpress.com/2008/07/relaylock.jpg?w=720" alt="" /></p>
<p>Two of my Media Temple (dv) servers were getting hit by a botnet-like spam attack this morning, causing a significant number of concurrent SMTP connections. There was a rapid succession of /var/qmail/bin/relaylock entries in the maillog (checking that with <strong>tail -f /usr/local/psa/var/log/maillog</strong>), but the real problem was the number of qmail-smtpd instances running (found through either <strong>top</strong> or <strong>ps aufx</strong>), each of which was eating into the available <a href="http://wiki.openvz.org/Kmemsize#kmemsize" target="_blank">kmemsize</a>.</p>
<p><span style="color:#c0c0c0;"><span style="text-decoration:line-through;">I think I&#8217;ve managed</span></span> <span style="color:#000000;">I thought I managed</span> to limit the number of simultaneous qmail-smtpd instances by changing the number of instances from 60 to 10 in <a href="http://linux.die.net/man/5/xinetd.conf" target="_blank">/etc/xinetd.conf</a> and restarting xinetd &amp; qmail. I tried changing the instances of both /etc/xinetd.d/smtp_psa and /etc/xinetd.d/smtps_psa to 10 (from the default UNLIMITED) as well, but that didn&#8217;t seem to have any effect. After both changes I restarted xinetd and then qmail like so:</p>
<p><code>/etc/init.d/xinetd restart</code><br />
<code>/etc/init.d/qmail restart</code></p>
<p><strong>Update:</strong></p>
<p>On further investigation, this measure didn&#8217;t work out, qmail-smtpd instances were still going overboard and causing kmemsize problems. However I did find <a href="http://www.atomicrocketturtle.com/forum/viewtopic.php?t=1826&amp;sid=2dcc6ff496646fd80f184a90fa307f81" target="_blank">another option</a> which seems to be having a slight effect: adding a &#8220;per source&#8221; to smtp_psa and smtps_psa, which means each IP can only have one connection at a time (doesn&#8217;t do much for spam flooding in from hundreds of different IPs, but still):</p>
<p><code>service smtp<br />
{<br />
socket_type     = stream<br />
protocol        = tcp<br />
</code><code> </code><code> wait            = no<br />
</code><code> </code><code>disable         = no<br />
</code><code> </code><code> user            = root<br />
</code><code> </code><code> instances       = 10<br />
</code><code> </code><code><span style="color:#3366ff;"><strong> per_source      = 1</strong></span><br />
</code><code> </code><code> server          = /var/qmail/bin/tcp-env<br />
</code><code> </code><code> server_args     = -Rt0 /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin /cmd5checkpw /var/qmail/bin/true<br />
</code>}</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/glomerate.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/glomerate.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/glomerate.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/glomerate.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/glomerate.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/glomerate.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/glomerate.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/glomerate.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/glomerate.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/glomerate.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/glomerate.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/glomerate.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/glomerate.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/glomerate.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/glomerate.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/glomerate.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=24&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy"></div>]]></content:encoded>
			<wfw:commentRss>http://glomerate.wordpress.com/2008/07/29/limiting-qmail-smtpd-instances/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Andrew</media:title>
		</media:content>

		<media:content url="http://glomerate.files.wordpress.com/2008/07/relaylock.jpg" medium="image" />
	</item>
		<item>
		<title>Internet Explorer 7</title>
		<link>http://glomerate.wordpress.com/2008/05/30/internet-explorer-7/</link>
		<comments>http://glomerate.wordpress.com/2008/05/30/internet-explorer-7/#comments</comments>
		<pubDate>Fri, 30 May 2008 16:39:00 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://glomerate.wordpress.com/2008/05/30/internet-explorer-7/</guid>
		<description><![CDATA[Let me put it to you this way: only Internet Explorer 7 and Phoenix 0.1 put the refresh and stop buttons to the right of the address bar. Mozilla developers quickly realized how stupid that was and fixed it in Phoenix 0.3; but Microsoft, who had the correct idea since IE 1.0, decided after 9 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=6&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-9 alignleft" style="margin-right:15px;padding:0;" src="http://glomerate.files.wordpress.com/2008/07/andy-saunders-picasso-car.jpg?w=400&#038;h=253" alt="" width="400" height="253" /></p>
<p>Let me put it to you this way: only <a href="http://upload.wikimedia.org/wikipedia/en/6/6b/Internet_Explorer_7.png">Internet Explorer 7</a> and <a href="http://theseblog.free.fr/phoenix-0.1.jpg">Phoenix 0.1</a> put the refresh and stop buttons to the right of the address bar. Mozilla developers quickly realized how stupid that was and fixed it in <a href="http://theseblog.free.fr/phoenix-0.3.jpg" target="_blank">Phoenix 0.3</a>; but Microsoft, who had the correct idea <a href="http://en.wikipedia.org/wiki/Image:Internet_Explorer_1.0.png" target="_blank">since IE 1.0</a>, decided after 9 years to unfix it in IE 7.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/glomerate.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/glomerate.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/glomerate.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/glomerate.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/glomerate.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/glomerate.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/glomerate.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/glomerate.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/glomerate.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/glomerate.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/glomerate.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/glomerate.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/glomerate.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/glomerate.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/glomerate.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/glomerate.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=6&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy"></div>]]></content:encoded>
			<wfw:commentRss>http://glomerate.wordpress.com/2008/05/30/internet-explorer-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Andrew</media:title>
		</media:content>

		<media:content url="http://glomerate.files.wordpress.com/2008/07/andy-saunders-picasso-car.jpg" medium="image" />
	</item>
		<item>
		<title>&#8220;Quick Sketch&#8221; Functionality</title>
		<link>http://glomerate.wordpress.com/2008/04/30/quick-sketch-functionality/</link>
		<comments>http://glomerate.wordpress.com/2008/04/30/quick-sketch-functionality/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 18:59:00 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[suggestions]]></category>

		<guid isPermaLink="false">http://glomerate.wordpress.com/2008/04/30/quick-sketch-functionality/</guid>
		<description><![CDATA[Email clients would benefit from a simple pluggable &#8220;sketchpad&#8221; interface that would allow the user to quickly (specifically, quicker than doing it in photoshop and uploading and attaching the image) sketch something out and embed it directly into the email. I think the drawing interface is possible in javascript, the image generation would happen server-side. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=4&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gmail.com/">Email clients</a> would benefit from a simple pluggable &#8220;sketchpad&#8221; interface that would allow the user to quickly (specifically, quicker than doing it in photoshop and uploading and attaching the image) sketch something out and embed it directly into the email. I think the drawing interface is possible in javascript, the image generation would happen server-side. I haven&#8217;t seen anything like this yet (a javascript sketchpad that outputs a gif/png in its place via AJAX), but correct me if I&#8217;m wrong.</p>
<p><img class="alignnone size-full wp-image-14" src="http://glomerate.files.wordpress.com/2008/07/sketch.gif?w=480&#038;h=304" alt="" width="480" height="304" /></p>
<p>This could also have applications in blogging, project management, groupware &#8211; any online application where ideas would be more efficiently or effectively communicated visually.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/glomerate.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/glomerate.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/glomerate.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/glomerate.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/glomerate.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/glomerate.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/glomerate.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/glomerate.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/glomerate.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/glomerate.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/glomerate.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/glomerate.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/glomerate.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/glomerate.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/glomerate.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/glomerate.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=glomerate.wordpress.com&amp;blog=4124166&amp;post=4&amp;subd=glomerate&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy"></div>]]></content:encoded>
			<wfw:commentRss>http://glomerate.wordpress.com/2008/04/30/quick-sketch-functionality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Andrew</media:title>
		</media:content>

		<media:content url="http://glomerate.files.wordpress.com/2008/07/sketch.gif" medium="image" />
	</item>
	</channel>
</rss>
