Article http://blog.samat.org/taxonomy/term/28/0 en Changing Drupal 7's built-in jQuery UI theme http://blog.samat.org/2011/08/22/Changing-Drupal-7s-built-in-jQuery-UI-theme <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><a href="http://jqueryui.com/">jQuery <span class="caps">UI</span></a>, a Javascript widget framework built upon jQuery, comes built-in Drupal 7 core. One of jQuery <span class="caps">UI</span>&#8217;s nicer features is that you can switch <a href="http://jqueryui.com/themeroller/">themes</a> by changing out a <span class="caps">CSS</span>&nbsp;file.</p> <p>There are some nice jQuery <span class="caps">UI</span> themes out there (unfortunately, not enough!), like Tait Brown&#8217;s <a href="http://taitems.tumblr.com/post/482577430/introducing-aristo-a-jquery-ui-theme">port of Aristo to jQuery <span class="caps">UI</span></a> (see <a href="http://taitems.github.com/Aristo-jQuery-UI-Theme/">demo</a>).</p> <p>But since jQuery <span class="caps">UI</span> is in Drupal core, which internally keeps track of <span class="caps">CSS</span> files, how do you switch the jQuery <span class="caps">UI</span> theme in&nbsp;use?</p> <p>The Seven theme, including with Drupal core, provides <a href="http://drupalcode.org/project/drupal.git/blob/HEAD:/themes/seven/template.php#l103">inspiration</a> on the &#8220;one true Drupal way&#8221; of doing this, by providing <code>hook_css_alter()</code>. Place into your theme&#8217;s&nbsp;template.php:</p> <p><pre><code>function MYTHEME_css_alter(&amp;$css) { if (isset($css['misc/ui/jquery.ui.theme.css'])) { $css['misc/ui/jquery.ui.theme.css']['data'] = drupal_get_path('theme', 'MYTHEME') . '/jquery.ui.theme.css'; } } </code></pre></p> <p>Replace &#8220;<span class="caps">MYTHEME</span>&#8221; with the name of your theme, and adjust the path to your jQuery <span class="caps">UI</span> theme&#8217;s <span class="caps">CSS</span> file accordingly (the above assumes you place jquery.ui.theme.css in the root folder of your&nbsp;theme).</p> <p>With this magic in hand, I now have the Aristo jQuery <span class="caps">UI</span> theme running on this blog. Looks quite a bit&nbsp;better!</p> <p>This post was inspired by an <a href="http://drupal.stackexchange.com/questions/2458/jquery-ui-theming/9771#9771">answer I posted on StackExchange</a>.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/jQuery" typeof="skos:Concept" property="rdfs:label skos:prefLabel">jQuery</a></div><div class="field-item odd"><a href="/tag/Drupal" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Drupal</a></div></div></div> Tue, 23 Aug 2011 05:08:45 +0000 Samat Jain 181 at http://blog.samat.org I'm Flattr'ed! http://blog.samat.org/2011/07/19/Im-Flattred <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><figure class="right"> <img typeof="foaf:Image" src="http://blog.samat.org/sites/blog.samat.org/files/styles/large/public/Flattr-Widget-smaller.jpeg" alt="" title="" /> <figcaption><a href="http://www.flickr.com/photos/tamasrepus/5953796264">2011 Flattr widget</a></figcaption> </figure></p> <p>I conducted an experiment back when I wrote my <a href="http://blog.samat.org/2010/12/10/Hardware-review-of-the-Hewlett-Packard-ProLiant-N36L-Microserver"><span class="caps">HP</span> <span class="caps">N36L</span> review</a>: I added affiliate links to both <a href="http://amazon.com/">Amazon</a> and <a href="http://newegg.com">Newegg</a>, hopefully to get some revenue without polluting my site with&nbsp;advertisements.</p> <p>It was successful; I earned enough to pay for a few cups of espresso, at&nbsp;least.</p> <p>Many authors have PayPal-powered &#8220;tip jars&#8221; or links to their Amazon wishlist. I&#8217;ve now setup the same, but I think it&#8217;s unrealistic visitors spend the requisite time or money to use&nbsp;them.</p> <p>Enter <a href="http://flattr.com">Flattr</a>, a new &#8220;social micropayments&#8221; platform, a tip jar evolved to work on Web scale. Flattr is a quick and easy way to give back to content creators—including myself. Rather than trying to explain it, watch <a href="http://youtu.be/9zrMlEEWBgY">Flattr&#8217;s introductory video</a>. I love the cake&nbsp;analogy.</p> <p>If you want to get an item from my Amazon wish list, please do! But what if you wanted to contribute less? And why would anyone else want to use Flattr over&nbsp;PayPal?</p> <p>Well, one, it&#8217;s simpler. Users need only click a single button (the Flattr widget) to Flattr me. Also, users don&#8217;t need to worry about figuring out how much to give me—Flattr&#8217;s &#8220;cake cutting&#8221; algorithm does it for you. Nothing stops you from <a href="https://flattr.com/donation/give/to/tamasrepus">donating more</a>, of&nbsp;course.</p> <p>Second, Flattr&#8217;s rates are better. Say you&#8217;ve decided to add $10/month to your Flattr account, and you&#8217;ve Flattr&#8217;ed 10 people, including me. Each of those people will be entitled to $1. With Flattr&#8217;s 10% commission, I&#8217;d get 90¢; with PayPal&#8217;s default fee schedule, I&#8217;d get 67.1¢ ($1-($1×2.9%+$0.30)). Big difference. Flattr works well when you&#8217;re dealing with small amounts (called micropayments), exactly the niche market they&#8217;re trying to&nbsp;fill.</p> <p>Imagine you&#8217;re walking down the street and hear a great musician, to whom you&#8217;d like to donate some small change. It&#8217;s easy to do in the real world. With conventional payment systems oriented around transactions, this model doesn&#8217;t translate. With Flattr, however, the model does—it brings a donation system and ethic present within the real world onto the&nbsp;Web.</p> <p>PayPal has its own <a href="https://micropayments.paypal-labs.com/">little-known micropayments platform</a> with a better fee schedule, but it requires the receiver to go through a manual approval process to receive a special account. It&#8217;s only available in a few countries and has been a &#8220;beta&#8221; product for years, implying PayPal does not care much about it. Why should they? PayPal, making money on high-value transactions, has little incentive to develop micropayments—not until there&#8217;s marketshare and mindshare to steal, something Flattr is&nbsp;building.</p> <p>Third, with free culture luminaries like <a href="http://blog.brokep.com/">Peter Sunde</a> of <a href="https://thepiratebay.org/">The Pirate Bay</a> fame behind it, Flattr seems less likely to &#8220;censor&#8221; recipients, holding funds hostage and even confiscating them, something for which PayPal is notorious. While I&#8217;m not worried about anyone censoring my overly-politically correct blog, should I be <span class="caps">OK</span> with organizations unfairly censoring others? &#42;cough&#42; <a href="http://wikileaks.ch/">WikiLeaks</a>&nbsp;&#42;cough&#42;</p> <p>Flattr is so nascent, it&#8217;s unlikely I earn a significant amount of money. And the meager money I do earn I will probably use to Flattr others. But it&#8217;s easy to use, low-risk for myself and visitors, and most importantly I believe in its ethos—so why&nbsp;not?</p> <p>If you like this post or my blog, please <a href="https://flattr.com/thing/340884/Samat-Says">flattr it</a>!</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Flattr" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Flattr</a></div><div class="field-item odd"><a href="/tag/Free-Culture" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Free Culture</a></div></div></div> Wed, 20 Jul 2011 04:06:51 +0000 Samat Jain 179 at http://blog.samat.org Following Firefox's New Development Channels with Ubuntu http://blog.samat.org/2011/05/31/Following-Firefoxs-New-Development-Channels-with-Ubuntu <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><figure class="right"><img typeof="foaf:Image" src="http://blog.samat.org/sites/blog.samat.org/files/styles/large/public/Firefox-Beta-About-Screen.jpeg" alt="" title="" /></figure></p> <p>Shortly after Firefox 4&#8217;s release, Mozilla announced the <a href="https://developer.mozilla.org/devnews/index.php/2011/04/07/new-development-channels-and-repositories-for-rapid-releases/">move to a channel development model</a>, à la Chrome. On Windows and Mac, builds from these channels update themselves; what about on Linux, where both self-updating software and software outside management of the package manager (i.e. manually installed) is&nbsp;taboo?</p> <p>If you use Debian, Mike Hommey and the Debian Mozilla Team&#8217;s <a href="http://mozilla.debian.net/">mozilla.debian.net</a> provides packages for the Firefox Stable, Beta, Aurora, and Nightly channels. Be aware that these packages are still labeled <a href="http://en.wikipedia.org/wiki/Iceweasel">Iceweasel</a>, i.e. they lack the official Firefox branding. These packages work on Ubuntu should you want to use&nbsp;them.</p> <p>What if you want something more Ubuntu-specific? <abbr title="Personal Package Archive"><span class="caps">PPA</span></abbr>s following each of the channels exist, but they&#8217;re not obvious to&nbsp;find.</p> <p>Nightly builds of Firefox trunk, formerly known as &#8220;Minefield&#8221; builds, are available in the <a href="https://launchpad.net/~ubuntu-mozilla-daily/+archive/ppa">Ubuntu Mozilla Daily <span class="caps">PPA</span></a>. Remember, Nightly builds receive little testing (e.g. can they build without errors?) and thus may crash frequently. Start using these builds by pasting the following into your&nbsp;terminal:</p> <p><pre><samp>sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa sudo apt-get update &amp;&amp; sudo apt-get install firefox-trunk </samp></pre></p> <p>Firefox&#8217;s new build channel, Aurora, has builds that have had more testing than those from Nightly. Builds from the Aurora channel are available from the <a href="https://launchpad.net/~ubuntu-mozilla-daily/+archive/firefox-aurora">firefox-aurora <span class="caps">PPA</span></a>, which you can use&nbsp;with:</p> <p><pre><samp>sudo add-apt-repository ppa:ubuntu-mozilla-daily/firefox-aurora sudo apt-get update &amp;&amp; sudo apt-get install firefox </samp></pre></p> <p>The Beta channel, containing builds that received more testing than Aurora and are (mostly) ready to be released, is available in the <a href="https://launchpad.net/~mozillateam/+archive/firefox-next">firefox-next <span class="caps">PPA</span></a>:</p> <p><pre><samp>sudo add-apt-repository ppa:mozillateam/firefox-next sudo apt-get update &amp;&amp; sudo apt-get install firefox </samp></pre></p> <p>Lastly, if you want to follow the Stable channel, consider sticking with what&#8217;s available in Ubuntu&#8217;s normal repositories. Ubuntu has a (new) <a href="https://wiki.ubuntu.com/DesktopTeam/Specs/Lucid/FirefoxNewSupportModel">policy</a> to bring stable Firefox updates to Ubuntu releases more quickly. If you really want to be testing the next Firefox release, try the Beta channel above. If you still want the &#8220;bleeding edge&#8221; of stable, there&#8217;s the <a href="https://launchpad.net/~mozillateam/+archive/firefox-stable">firefox-stable <span class="caps">PPA</span></a>, which will go away soon, and <a href="https://launchpad.net/~ubuntu-mozilla-security/+archive/ppa">Ubuntu&#8217;s Mozilla Security Team <span class="caps">PPA</span></a>, within which packages only remain until they are moved into the main&nbsp;archive.</p> <p>Notice that the Aurora, Beta, and Stable channels contain packages of the same name: &#8220;firefox&#8221;; this&nbsp;means:</p> <ol> <li>You can only install Firefox from one channel at a&nbsp;time.</li> <li>They all will use the same profile and profile registry. You&#8217;ll need to manually switch profiles or alter shortcuts to launch the desired profile if you desire&nbsp;different.</li> </ol> <p>Packages in the Nightly channel, however, are named firefox-trunk and can be co-installed alongside builds from another&nbsp;channel.</p> <p>To switch to another channel, disable the source with <a href="https://help.ubuntu.com/community/Repositories/Ubuntu">Ubuntu&#8217;s Software Properties</a> or delete the appropriate file in&nbsp;/etc/apt/sources.list.d/:</p> <p><pre><samp>sudo rm /etc/apt/sources.list.d/ubuntu-mozilla-team-firefox-aurora&#42;list sudo rm /etc/apt/sources.list.d/mozillateam&#42;list </samp></pre></p> <p>Then re-add the appropriate repository to switch to a desired&nbsp;channel.</p> <p>Hopefully, with easy-to-use PPAs available for each of Firefox&#8217;s build channels, more people, including you, will test these builds. Go forth and&nbsp;test!</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Firefox" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Firefox</a></div><div class="field-item odd"><a href="/tag/Linux" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Linux</a></div><div class="field-item even"><a href="/tag/Ubuntu" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Ubuntu</a></div></div></div> Tue, 31 May 2011 20:29:49 +0000 Samat Jain 177 at http://blog.samat.org Why I use Firefox 4 Mobile http://blog.samat.org/2011/05/19/Why-I-use-Firefox-4-Mobile <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><figure class="right"><img typeof="foaf:Image" src="http://blog.samat.org/sites/blog.samat.org/files/styles/large/public/Fx4-Mobile.png" alt="" title="" /></figure></p> <p>A couple weeks ago, <a href="http://blog.mozilla.com/blog/2011/03/29/mozilla-launches-firefox-4-for-android-allowing-users-to-take-the-power-and-customization-of-firefox-everywhere-2/">Mozilla released Firefox 4 Mobile</a> (née Fennec) for both Android and&nbsp;Maemo.</p> <p>I&#8217;ve had an Android phone since 2008 and honestly, I&#8217;ve never browsed the web on my phone as much as I have in the past few months when I started using Firefox 4 Mobile. It really is that much better! Here are my thoughts (focused on the Android version) on&nbsp;why.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Firefox" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Firefox</a></div><div class="field-item odd"><a href="/tag/Android" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Android</a></div></div></div> Thu, 19 May 2011 23:16:29 +0000 Samat Jain 174 at http://blog.samat.org Using my Creative Commons-licensed photos http://blog.samat.org/2011/05/13/Using-my-Creative-Commons-licensed-photos <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Since I&#8217;ve become <a href="http://flickr.com/photos/tamasrepus" title="Samat Jain's Flickr photostream">a photobug</a> and licensed those photos under the <a href="http://creativecommons.org/">Creative Commons</a>, I&#8217;ve been getting a lot of requests for reuse. After all, that&#8217;s what <abbr title="Creative Commons"><span class="caps">CC</span></abbr>-licensed content is&nbsp;for!</p> <p>The &#8220;<span class="caps">BY</span>&#8221; bit in <span class="caps">CC</span> licenses, which <a href="/2011/04/15/What-does-the-BY-in-Creative-Commons-license-names-mean">stands for attribution</a>, means authors/creators must be attributed if you decide to use a work. It does not specify how a work should be attributed or cited (though, there are some <a href="http://wiki.creativecommons.org/Frequently_Asked_Questions#How_do_I_properly_attribute_a_Creative_Commons_licensed_work.3F">guidelines in <span class="caps">CC</span>&#8217;s <span class="caps">FAQ</span></a>), leaving it up to the owner of the work—which is the way it should be, of&nbsp;course.</p> <p>Flickr does a <a href="http://daggle.com/flickr-fail-on-creative-commons-attribution-691">terrible job</a> letting people know how to attribute works. If you&#8217;re reading this, I&#8217;ve probably directed you here asking how I&#8217;d like you to cite or attribute any of my&nbsp;photos.</p> <p>If you&#8217;re just using a photo, simple add a line like this somewhere near the photo, with the appropriate&nbsp;hyperlinks:</p> <blockquote> <a href="#">Name of photo, linked to Flickr photo page</a> © <a href="http://samat.org/">Samat Jain</a>, used <a href="http://creativecommons.org/licenses/by-sa/2.0/"><abbr title="Creative Commons"><span class="caps">CC</span></abbr> <span class="caps">BY</span>-<span class="caps">SA</span> 2.0</a>. </blockquote> <p>If you&#8217;re creating a <a href="http://wiki.creativecommons.org/Frequently_Asked_Questions#What_is_a_derivative_work.3F">derived work</a> (that is, you modified the photo in some way), please&nbsp;use:</p> <blockquote> Derived from <a href="#">Name of photo, linked to Flickr photo page</a> © <a href="http://samat.org/">Samat Jain</a>, used <a href="http://creativecommons.org/licenses/by-sa/2.0/"><abbr title="Creative Commons"><span class="caps">CC</span></abbr> <span class="caps">BY</span>-<span class="caps">SA</span> 2.0</a>. </blockquote> <p>Summarized in an&nbsp;example:</p> <p><figure> <a href="http://www.flickr.com/photos/tamasrepus/2869930642" title="Iris Navarro: Hyperthyroidism the morning (with zits!)"><img class=" flickr-photo-img" height="180" width="240" typeof="foaf:Image" src="http://farm4.staticflickr.com/3165/2869930642_00132e4aee_m.jpg" alt="Iris Navarro: Hyperthyroidism the morning (with zits!)" title="Iris Navarro: Hyperthyroidism the morning (with zits!)" /></a> <figcaption><a href="http://www.flickr.com/photos/tamasrepus/2869930642/">Hyperthyroidism the morning (with zits!)</a> © <a href="http://samat.org/">Samat Jain</a>, used <a href="http://creativecommons.org/licenses/by-sa/2.0/"><abbr title="Creative Commons"><span class="caps">CC</span></abbr> <span class="caps">BY</span>-<span class="caps">SA</span> 2.0</a>.</figcaption> </figure></p> <p>Now, a rant on why I ask all for all this. There are just two&nbsp;reasons:</p> <ol> <li>I have a philosophical agenda to promote open source and <a href="/tag/Free-Culture">free culture</a>. I&#8217;m hoping the explicit wording and hyperlinks do&nbsp;so.</li> <li>I&#8217;m putting photos I took time to take and process on the web, for your free use… asking for a little credit (in exchange for link-fu) is not much to ask! Linking to Flickr fulfills Flickr&#8217;s <abbr title="Terms of Service">ToS</abbr>; linking to my homepage makes me happy; and linking to the appropriate license hopefully promotes free culture, informing users of their rights. To that end, if you can, avoid creating hyperlinks with <a href="http://en.wikipedia.org/wiki/Nofollow">nofollow</a>.</li> </ol> <p>Lastly, if you decide to use a photo, please <a href="http://samat.org/contact.html">let me know</a>! I like to keep track of these things, and may link back to your use of my photo.&nbsp;Thanks!</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Free-Culture" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Free Culture</a></div></div></div> Fri, 13 May 2011 06:34:05 +0000 Samat Jain 176 at http://blog.samat.org Monitoring Intel SSD lifetime with S.M.A.R.T. http://blog.samat.org/2011/05/09/Monitoring-Intel-SSD-Lifetime-with-S.M.A.R.T. <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>The Internet is abuzz with talk about solid state reliability right now (see a <a href="http://www.codinghorror.com/blog/2011/05/the-hot-crazy-solid-state-drive-scale.html">recent article by Jeff Atwood</a>). Random, catastrophic failures aside, how can you know how much life you&#8217;ve eaten into your <abbr title="solid-state disk"><span class="caps">SSD</span></abbr>?</p> <p>If you&#8217;ve an Intel <span class="caps">SSD</span>, it&#8217;s pretty easy; they export a <a href="http://en.wikipedia.org/wiki/S.M.A.R.T."><span class="caps">S.M.A.R.T.</span></a> attribute &#8220;Media Wearout Indicator&#8221;. Starting at 100 (new), the attribute decreases to, well, zero. Forget how to do that on Linux? It&#8217;s&nbsp;easy:</p> <p><pre><samp><span class="prompt">$</a> <kbd>sudo smartctl -a /dev/sda | grep Media_Wearout_Indicator</kbd> 233 Media_Wearout_Indicator 0x0032 098 098 000 Old_age Always - 0 </samp></pre></p> <p>The <span class="caps">SSD</span> in my laptop is at 98, and my oldest <span class="caps">SSD</span> in another system (from mid-2009) is at 97.&nbsp;Yours?</p> <p>On to the real news: the <a href="http://www.openstreetmap.org/">OpenStreetMap</a> project has <a href="http://gis.638310.n2.nabble.com/Quicker-Tile-Rendering-td6342010.html">switched their tile rendering server to an <span class="caps">SSD</span></a> (hopefully making tile renders much, much faster). A newer, consumer-grade <abbr title="multi-level cell"><span class="caps">MLC</span></abbr>-based Intel 320 Series 600 <span class="caps">GB</span> <span class="caps">SSD</span>, in fact. Conveniently, OpenStreetMap monitors their servers with Munin, which by default <a href="http://munin.openstreetmap.org/openstreetmap/yevaud.openstreetmap/smart_sda.html">graphs all <span class="caps">S.M.A.R.T.</span> attributes</a>, including Media Wearout&nbsp;Indicator.</p> <p>Other than the initial import of the tile rendering database, <span class="caps">OSM</span> tile rendering does not consume many write cycles. But it definitely hammers the disk to death on reads. Keep a lookout on these graphs to see how their <span class="caps">SSD</span> ages over time. Don&#8217;t forget to <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_guide">contribute to OpenStreetMap yourself</a> so we can see that number go down a bit quicker (I&#8217;m pretty sure <span class="caps">OSM</span> doesn&#8217;t&nbsp;mind!).</p> <p>Note: <a href="http://ksmapper.blogspot.com/">Toby</a> mentioned to me that all the values appear to be pegged at 100. Most of these attributes are dummy values—only &#8220;Media Wearout Indicator&#8221; and &#8220;Available Reserved Space&#8221; appear to change with normal&nbsp;use.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/OpenStreetMap" typeof="skos:Concept" property="rdfs:label skos:prefLabel">OpenStreetMap</a></div><div class="field-item odd"><a href="/tag/Computer-Hardware" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Computer Hardware</a></div><div class="field-item even"><a href="/tag/Linux" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Linux</a></div></div></div> Mon, 09 May 2011 23:49:22 +0000 Samat Jain 175 at http://blog.samat.org What does the "BY" in Creative Commons' license names mean? http://blog.samat.org/2011/04/15/What-does-the-BY-in-Creative-Commons-license-names-mean <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Have you ever wondered what the &#8220;<span class="caps">BY</span>&#8221; in <a href="http://creativecommons.org/licenses/">Creative Commons&#8217; licenses</a> (e.g. <span class="caps">CC</span>-<span class="caps">BY</span>, <span class="caps">CC</span>-<span class="caps">BY</span>-<span class="caps">SA</span>, and <span class="caps">CC</span>-<span class="caps">BY</span>-<span class="caps">SA</span> <span class="caps">NC</span>) stands&nbsp;for?</p> <p>The other bits in the license name are obvious, for the most&nbsp;part:</p> <ul> <li><abbr title="Creative Commons"><span class="caps">CC</span></abbr> – Creative&nbsp;Commons</li> <li><abbr title="Non-Commercial"><span class="caps">NC</span></abbr> –&nbsp;Non-Commercial</li> <li><abbr title="No Derivatives"><span class="caps">ND</span></abbr> – No&nbsp;Derivatives</li> <li><abbr title="Share-Alike"><span class="caps">SA</span></abbr> –&nbsp;Share-Alike</li> </ul> <p><span class="dquo">&#8220;</span><span class="caps">BY</span>&#8221; is confusing because it&#8217;s not an acronym, shortening of a word, or anything otherwise obvious. But buried in the Creative Commons <span class="caps">FAQ</span>, it&#8217;s mentioned it stands for <a href="http://wiki.creativecommons.org/FAQ#If_I_use_a_Creative_Commons-licensed_work_to_create_a_new_work_.28ie_a_derivative_work_or_adaptation.29.2C_which_Creative_Commons_license_can_I_use_for_my_new_work.3F">attribution</a>.</p> <p>If all Creative Commons require attribution (except <abbr title="Creative Commons Zero"><span class="caps">CC0</span></abbr>), why is it included in the license names (especially the abbreviations) at&nbsp;all?</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Wiki" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Wiki</a></div><div class="field-item odd"><a href="/tag/Free-Culture" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Free Culture</a></div></div></div> Fri, 15 Apr 2011 23:27:38 +0000 Samat Jain 173 at http://blog.samat.org Increase file descriptors for Transmission on Linux http://blog.samat.org/2011/04/05/Increase-file-descriptors-for-Transmission-on-Linux <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Have you run out of file descriptors for <a href="http://www.transmissionbt.com/">Transmission</a>? The torrent will be stopped (for no apparent reason), and when you examine it, you&#8217;ll see an error similar&nbsp;to:</p> <p><pre><samp><span class="prompt">$</span> <kbd>transmission-remote -t 1 -i | grep -i 'open files'</kbd> Unable to save resume file. Too many open files. </samp></pre></p> <p>Time to increase the number of file descriptors available. This article is tailored towards Debian and&nbsp;Ubuntu.</p> <p>It&#8217;s unlikely you&#8217;ll need to raise your system&#8217;s global limit. Check&nbsp;with:</p> <p><pre><samp><span class="prompt">$</span> <kbd>cat /proc/sys/fs/file-max</kbd> 397460 </samp></pre></p> <p>The <span class="caps">OS</span> needs a couple thousand file descriptors for itself. Make sure to make space for them with whatever numbers to choose below. In my case, I&#8217;ve more than&nbsp;enough.</p> <p>If you still need to raise your system&#8217;s limit, you can easily; to set it to a million (which will be remembered across&nbsp;reboots):</p> <p><pre><samp><kbd>sudo sh -c "echo fs.file-max=$(dc -e '2 20 ^ p') > /etc/sysctl.d/file-descriptors-max.conf</kbd> <kbd>sudo service procps restart</kbd> </samp></pre></p> <p>While you may not need to change your system&#8217;s global limit, you probably will need to change the limit for your users. Check that limit&nbsp;with:</p> <p><pre><samp><span class="prompt">$</span> <kbd>ulimit -Sn</kbd> 1024 <span class="prompt">$</span> <kbd>ulimit -Hn</kbd> 1024 </samp></pre></p> <p>If you&#8217;re working with hundreds of torrents (each with dozens to hundreds of files) with Transmission, this isn&#8217;t enough. To let a user have a few thousand (in the below example, 16,384, with 128 more for the hard limit), create a new file&nbsp;/etc/security/limits.d/debian-transmission.conf:</p> <p><pre><samp><kbd>sudo sh -c "echo debian-transmission soft nofile $(dc -e '2 14 ^ p')" > /etc/security/limits.d/debian-transmission.conf</kbd> <kbd>sudo sh -c "echo debian-transmission hard nofile $(dc -e '2 14 ^ 2 7 ^ + p')" >> /etc/security/limits.d/debian-transmission.conf</kbd> </samp></pre></p> <p>Replace &#8220;debian-transmission&#8221; with the user that is running&nbsp;Transmission.</p> <p>For the changes to go into effect, you need to logout completely (e.g. close multiplexed <span class="caps">SSH</span> connections, etc), and log back in again. Or to be sure, just reboot to make sure changes kick in. You&#8217;ll see you have many more file descriptors&nbsp;available:</p> <p><pre><samp><span class="prompt">$</span> <kbd>ulimit -Sn</kbd> 16384 <span class="prompt">$</span> <kbd>ulimit -Hn</kbd> 16512 </samp></pre></p> <p>Now, we need to configure Transmission to use this many. In /etc/transmission-daemon/settings.json, find the open-file-limit option and set to a larger number (e.g. 16000 or so). When done, restart&nbsp;transmission-daemon:</p> <p><pre><samp><kbd>sudo service transmission-daemon restart</kbd> </samp></pre></p> <p>If you&#8217;re not running Transmission as a system user, edit the right settings.json and restart the daemon&nbsp;appropriately.</p> <p>That&#8217;s it. Have&nbsp;fun!</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Linux" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Linux</a></div><div class="field-item odd"><a href="/tag/Debian" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Debian</a></div><div class="field-item even"><a href="/tag/Ubuntu" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Ubuntu</a></div></div></div> Tue, 05 Apr 2011 23:31:11 +0000 Samat Jain 172 at http://blog.samat.org High-resolution text console with uvesafb and Debian http://blog.samat.org/2010/11/09/High-resolution-text-console-with-uvesafb-and-Debian <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>While you may rarely use the console on your server, it&#8217;s nice to have a high-resolution display just to see that many more columns and rows. Linux&#8217;s vesa module (via the vga= parameter) has been around for a while and made this possible, provided you kept up with what <span class="caps">VGA</span> mode number to use and don&#8217;t mind the spotty hardware&nbsp;compatibility.</p> <p>While <abbr title="Kernel Mode Setting"><span class="caps">KMS</span></abbr> is the way to do this in the future, it doesn&#8217;t help us with the drivers and hardware we have now. A new kernel module, <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt;h=eefdd91d298a9c9ea45e1ab9d84cdbf8ea1f1908;hb=HEAD">uvesafb</a>, mainlined in 2.6.24, is another, new option. In addition to specifying modes in a more user-friendly way (e.g. 1280x1024-32 for 32-bit color, with a 1280x1024 resolution), hardware compatibility is better—in particular, you can now get a high-resolution text console with <span class="caps">NVIDIA</span> display&nbsp;adapters.</p> <p>In the following, I describe how to use uvesafb on Debian and derivative distributions (e.g. Ubuntu). The instructions assume kernel 2.6.27 or higher (Debian 6.0 (squeeze) and Ubuntu 8.10 (Intrepid Ibex), or later). </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Linux" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Linux</a></div><div class="field-item odd"><a href="/tag/Debian" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Debian</a></div><div class="field-item even"><a href="/tag/Ubuntu" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Ubuntu</a></div><div class="field-item odd"><a href="/tag/NVIDIA" typeof="skos:Concept" property="rdfs:label skos:prefLabel">NVIDIA</a></div></div></div> Wed, 10 Nov 2010 00:08:29 +0000 Samat Jain 164 at http://blog.samat.org Quick and easy network bandwidth benchmarking on Linux and MacOS X http://blog.samat.org/2009/03/15/quick-and-easy-network-bandwidth-benchmarking-on-linux-and-macos-x <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>A couple years ago, I setup my first gigabit Ethernet network. I wanted to test just how fast it could go with the equipment I gave it (that is, the NICs, cabling, and switches it operated on). Gigabit Ethernet, theoretically, can operate at 1000 Mbit/sec. This translates to 119.209 MiB/sec, units your <span class="caps">OS</span> typically displays when doing downloads (1000 Mbit/sec / 8 / 2^20). How close is your network setup to that maximum? Copying files between PCs, while being a very &#8220;real world&#8221; test, will be limited by how fast your disks can read or write. A specialized tool is&nbsp;needed.</p> <p>While many system benchmark suites include network testing tools, most are not easily separate from their suites, and are not easy to install and&nbsp;use.</p> <p>Enter <a href="http://netstrain.sourceforge.net/">NetStrain</a>. It&#8217;s a very simple C application for Linux and MacOS X designed to stress network connections. Unfortunately, it&#8217;s not included in most Linux distributions or MacOS X, so you need to download and compile it&nbsp;yourself.</p> <p>After compiling, use is simple. One machine acts as a server, and another machine acts as a client. Start the server first&nbsp;with:</p> <p><code> netstraind -4 9999 </code></p> <p>This starts a server using IPv4 networking on port 9999 (use a different port if you know this is in use; remember to pick one above 1024 if you&#8217;re not running as root). On your client machine, start the client connect to the server (assumed to be running on <span class="caps">IP</span> 192.168.1.2 and port&nbsp;9999):</p> <p><code> netstrain -4 192.168.1.2 9999 send </code></p> <p>NetStrain will then try to send as much over your network connection as it can as long as the client is running. NetStrain is very spartan, so there are not a lot of options. In addition to sending, you may want to test receiving, as well simultaneously sending and receiving. Check NetStrain&#8217;s <span class="caps">README</span> for&nbsp;details.</p> <p>Most likely, you will not get anything near 119.209 MiB/sec&#8212;but hopefully, you&#8217;ll get better speeds than a normal 100 Mbit connection to make everything&nbsp;worthwhile.</p> <p>What if you want to make things faster (without buying newer, better hardware)? There are many parameters you can tune on your operating system&#8217;s networking stack. However, in most modern operating systems, most of them are already set, or are automatically configured (e.g. <span class="caps">TCP</span> window scaling). The one major tunable is something called <span class="caps">MTU</span> (Maximum Transmission&nbsp;Unit).</p> <p>Data is transferred over Ethernet in packets; the <span class="caps">MTU</span> defines the size of those packets. A larger packet size means fewer packets are needed to send the same amount of data, reducing the amount of processing that needs to be done by your computer, switches, and routers. Your computer&#8217;s <span class="caps">NIC</span>, switches, and routers need to support large-size MTUs, a feature often advertised as &#8220;Ethernet jumbo frames.&#8221; Jeff Atwood wrote an article on <a href="http://www.codinghorror.com/blog/archives/001232.html">the promise and perils of jumbo frames</a> that you may want to read if you&#8217;re&nbsp;interested.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Linux" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Linux</a></div><div class="field-item odd"><a href="/tag/Computer-Hardware" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Computer Hardware</a></div><div class="field-item even"><a href="/tag/HPC" typeof="skos:Concept" property="rdfs:label skos:prefLabel">High Performance Computing</a></div><div class="field-item odd"><a href="/tag/Mac-OS-X" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Mac OS X</a></div></div></div> Sun, 15 Mar 2009 20:55:14 +0000 Samat Jain 154 at http://blog.samat.org Getting on the microblogging bandwagon http://blog.samat.org/2009/02/28/getting-on-the-microblogging-bandwagon <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>I&#8217;m usually a luddite when it comes to the latest Internet fads. I technically did not start blogging until 2003. I didn&#8217;t create a <a href="http://flickr.com/photos/tamasrepus">Flickr account</a> or a <a href="http://www.facebook.com/people/Samat-Jain/49008431">Facebook account</a> until 2006. I never bothered with MySpace. I turned samat.org into my OpenID in 2008. Given those things, I still hate YouTube (and all web video in general), and have yet to create a podcast or upload a video. I usually don&#8217;t think lolcats are funny,&nbsp;either.</p> <p>Joining in the past year&#8217;s latest fad, I&#8217;ve started microblogging. Also known as &#8220;twittering,&#8221; microblogging revolves around the publication of little 140-character notes. The idea is that you share via these little notes news, thoughts, ideas, or whatever you happen to be doing at the moment. These notes are also known as &#8220;twits,&#8221; &#8220;dents,&#8221;&nbsp;etc.</p> <p>Believe it or not, you&#8217;ve probably been doing a form of microblogging for a while. If you use an <span class="caps">IM</span> service and set &#8220;Away&#8221; messages, you&#8217;re microblogging. If you set your status on Facebook or LinkedIn, you&#8217;re microblogging as well. The currently accepted notion of microblogging is, started by the start-up company Twitter, a little different. Instead of messages being available to a select group of friends, your messages are global. Anyone in the world can read and respond to what you&#8217;re doing (that if, of course, if you have something interesting to say). Microblogging, Twitter-style, could be considered a type of global instant&nbsp;messaging.</p> <p><figure class="left"><img src="/sites/blog.samat.org/files/fail_whale.png"/></figure></p> <p>Twitter, however, is a closed service. Your posts, lists of friends, etc live in a silo owned and controlled by them, and it&#8217;s difficult to extract data from that silo. They dictate how and when you&#8217;ll use their service, most evidenced by the frequent downtimes (it&#8217;s been so bad they&#8217;ve started a new meme, &#8220;the fail whale&#8221;). They&#8217;re also, unfortunately, a company out to make out to profit, and at this point, it&#8217;s not clear how they will do that&#8212;what if they disappear&nbsp;tomorrow?</p> <p>Because of these and many other reasons, I&#8217;ve eschewed using Twitter and gone with <a href="http://identi.ca/">Identi.ca</a> instead. In it&#8217;s most simple description, it is an open-source Twitter clone, oriented around a new openly-developed standard for microblogging. You can download the software that runs Identi.ca (called <a href="http://laconi.ca">Laconica</a>) and run it yourself. Your data is also available in open formats: you can easily take your posts and friends lists with you. Best of all, you can still interact with other open microblogging sites in a large, distributed network, hopefully making reliability problems things of the&nbsp;past.</p> <p>I&#8217;ve been microblogging since the beginning of the year. Most of my entries are about the same topics as this blog&#8212;Linux, open-source software, etc. I notice that I also tend to write a lot of things about New York City. If you care about any of these things, please <a href="http://identi.ca/samatjain">subscribe to me on Identi.ca</a>. If you use Twitter, you can look read my cross-postings on <a href="http://twitter.com/SamatJain">my Twitter account</a>&nbsp;too.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Web-2.0" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Web 2.0</a></div></div></div> Sun, 01 Mar 2009 04:47:41 +0000 Samat Jain 153 at http://blog.samat.org Creating your own personal aspell dictionary http://blog.samat.org/2008/11/02/creating-your-own-personal-aspell-dictionary <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Something that has bothered me forever is that applications that use <a href="http://aspell.net/"><span class="caps">GNU</span> aspell</a> for spell checking kept marking my name as a misspelling (I&#8217;m looking at you, KMail). Most front-end applications don&#8217;t provide a way for you to add your own custom&nbsp;words.</p> <p>Apparently, <a href="http://aspell.net/man-html/Format-of-the-Personal-and-Replacement-Dictionaries.html#Format-of-the-Personal-and-Replacement-Dictionaries">creating your own personal dictionary is ridiculous easy with aspell</a>.</p> <p>If your language is English, create a file in your home directory called&nbsp;&#8221;.aspell.en.pws&#8221;:</p> <p><pre> personal_ws-1.1 en 0 Samat quasirhombicosidodecahedron </pre></p> <p>The first line is a required header. Every subsequent line is a word you want to add to your dictionary. I can&#8217;t believe I&#8217;ve let this sit for so long. Because it&#8217;s a nice text file, syncing this file between machines to take your dictionary with you is trivially&nbsp;easy.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Linux" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Linux</a></div><div class="field-item odd"><a href="/tag/Software" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Software</a></div></div></div> Sun, 02 Nov 2008 23:23:44 +0000 Samat Jain 150 at http://blog.samat.org Taking Drupal sites offline via mysql and the command line http://blog.samat.org/2008/10/31/taking-drupal-site-offline-mysql-and-command-line <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Drupal-powered websites can be put into an &#8220;offline mode.&#8221; This is much better than most alternatives (such as taking the web server offline), especially for search engines, as the message and <span class="caps">HTTP</span> status codes given to users and robots alike will tell them to patiently come back&nbsp;later.</p> <p>I&#8217;ve found that putting the site into offline mode makes database backups go much faster on heavily trafficked sites (which is obvious). However, for a particular site I was working with, this needed to be done in an automated manner, and on a dedicated database server that did not have access to the Drupal&nbsp;installation.</p> <p>Most people take their Drupal sites offline through Drupal&#8217;s web-based administration interface. They can also be put offline through the <a href="http://drupal.org/project/drush">Drupal Shell</a>. Neither were suitable for me: the former cannot be automated easily, and the latter requires access to the Drupal installation. Fortunately, Drupal sites can easily be taken offline by setting things in the database, which can easily be done via bash scripts and the command-line MySQL&nbsp;client.</p> <p>Given your database user is <i>my_db_user</i>, password <i>my_password</i>, and database <i>my_drupal_db</i>, the backup script would look something similar&nbsp;to:</p> <p><pre><code>&nbsp;&#35;!/bin/bash</p> <p>&#35; Take site offline mysql --user my_db_user --password=my_password my_drupal_db &lt;&lt; <span class="caps">EOF</span> <span class="caps">UPDATE</span> variable <span class="caps">SET</span> value='s:1:"1";' <span class="caps">WHERE</span> name = 'site_offline'; <span class="caps">DELETE</span> <span class="caps">FROM</span> cache <span class="caps">WHERE</span> <span class="caps">CID</span> = 'variables';&nbsp;<span class="caps">EOF</span></p> <p>&#35; Do stuff here while the site is offline (e.g.&nbsp;backup)</p> <p>&#35; Bring site online mysql --user my_db_user --password=my_password my_drupal_db &lt;&lt; <span class="caps">EOF</span> <span class="caps">UPDATE</span> variable <span class="caps">SET</span> value='s:1:"0";' <span class="caps">WHERE</span> name = 'site_offline'; <span class="caps">DELETE</span> <span class="caps">FROM</span> cache <span class="caps">WHERE</span> <span class="caps">CID</span> = 'variables'; <span class="caps">EOF</span> </code></pre></p> <p><strong>Update:</strong> The original version of this article had some problems on some setups with the variables table being cached. I added another <span class="caps">SQL</span> statement to make sure this cache is flushed so the site actually reflects its&nbsp;configuration.</p> <p><strong>Update:</strong> This method really doesn&#8217;t work that well, and the more I think about it, there isn&#8217;t a way to get around writing something that interacts with Drupal. I&#8217;m working on a script that will be more&nbsp;fool-proof.</p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Linux" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Linux</a></div><div class="field-item odd"><a href="/tag/Drupal" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Drupal</a></div><div class="field-item even"><a href="/tag/Bash" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Bash Shell</a></div></div></div> Sat, 01 Nov 2008 05:42:10 +0000 Samat Jain 149 at http://blog.samat.org Python-like tuple unpacking for PHP http://blog.samat.org/2008/10/29/python-tuple-unpacking-php <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Python provides a neat way for functions to return multiple arguments via &#8220;tuple unpacking&#8221;. For&nbsp;example:</p> <p><pre><code class="python">def blah: return ('one',&nbsp;'two')</p> <p>rval_1, rval_2 = blah() </code></pre></p> <p>The same can be done in <span class="caps">PHP</span> relatively easily via the <a href="http://php.net/list">list construct</a>:</p> <p><pre><code class="php">function blah() { return array('one', 'two');&nbsp;}</p> <p>list($rval_1, $rval_2) = blah(); </code></pre></p> </div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-inline clearfix"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Programming" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Programming</a></div><div class="field-item odd"><a href="/tag/Python" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Python</a></div><div class="field-item even"><a href="/tag/PHP" typeof="skos:Concept" property="rdfs:label skos:prefLabel">PHP</a></div></div></div> Wed, 29 Oct 2008 21:55:47 +0000 Samat Jain 148 at http://blog.samat.org Speeding up SpamAssassin rule processing on Debian and Ubuntu http://blog.samat.org/pages/speeding-up-spamassassin-rule-processing-on-debian-and-ubuntu.html <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><a href="http://spamassassin.apache.org/">SpamAssassin</a> is one of the most-used spam filtering systems in use today. Unfortunately, because there are so many different ways SpamAssassin can be used, SpamAssassin remains subject to many performance problems. Fortunately, there are several speed-ups and optimizations that can be applied to most SpamAssassin installations to speed up its rule processing, especially on Debian and Ubuntu <span class="caps">GNU</span>/Linux-based systems. These instructions can be adopted to other operating systems as&nbsp;well.</p> <p>This article does not discuss configuring your mail filtering system (i.e. procmail, maildrop). This depends completely on your setup, and more than likely there are plenty of other articles that describe the best way to setup what you want. </div></div></div><div class="field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Type:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/type/article" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Article</a></div></div></div><div class="field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-above"><div class="field-label">Topic:&nbsp;</div><div class="field-items"><div class="field-item even"><a href="/tag/Linux" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Linux</a></div><div class="field-item odd"><a href="/tag/Debian" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Debian</a></div><div class="field-item even"><a href="/tag/Ubuntu" typeof="skos:Concept" property="rdfs:label skos:prefLabel">Ubuntu</a></div><div class="field-item odd"><a href="/tag/E-mail" typeof="skos:Concept" property="rdfs:label skos:prefLabel">E-mail</a></div></div></div> Thu, 02 Oct 2008 19:01:57 +0000 Samat Jain 143 at http://blog.samat.org