<?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>Autarchy of the Private Cave &#187; Software</title> <atom:link href="https://bogdan.org.ua/categories/software/feed" rel="self" type="application/rss+xml" /><link>https://bogdan.org.ua</link> <description>Tiny bits of bioinformatics, [web-]programming etc</description> <lastBuildDate>Wed, 28 Dec 2022 16:09:04 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>https://wordpress.org/?v=3.8.27</generator> <item><title>Kite AI coding assistant is saying farewell</title><link>https://bogdan.org.ua/2022/12/28/kite-ai-coding-assistant-is-saying-farewell.html</link> <comments>https://bogdan.org.ua/2022/12/28/kite-ai-coding-assistant-is-saying-farewell.html#comments</comments> <pubDate>Wed, 28 Dec 2022 16:08:46 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[Machine learning]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Technologies]]></category> <category><![CDATA[copilot]]></category> <category><![CDATA[kite]]></category> <category><![CDATA[mutable]]></category> <category><![CDATA[tabnine]]></category> <guid
isPermaLink="false">https://bogdan.org.ua/?p=2578</guid> <description><![CDATA[I&#8217;m looking at AI/ML-powered coding assistants (such as mutable.ai, github&#8217;s CoPilot, tabnine, and even Alibaba AI assistant &#8211; but there everything was in Chinese so I didn&#8217;t proceed at all with it), and found &#8211; with sadness &#8211; that Kite, one of the longer-existing solutions (since 2014!) has gone out of business&#8230; Here is Kite&#8217;s [&#8230;]]]></description> <content:encoded><![CDATA[<p>I&#8217;m looking at AI/ML-powered coding assistants (such as <a
href="https://mutable.ai/pricing/" title="mutable.ai pricing" class="broken_link" rel="nofollow">mutable.ai</a>, <a
href="https://github.com/pricing" title="GitHub CoPilot pricing">github&#8217;s CoPilot</a>, <a
href="https://www.tabnine.com/pricing" title="tabnine pricing">tabnine</a>, and even Alibaba AI assistant &#8211; but there everything was in Chinese so I didn&#8217;t proceed at all with it), and found &#8211; with sadness &#8211; that Kite, one of the longer-existing solutions (since 2014!) has gone out of business&#8230;</p><p>Here is <a
href="https://www.kite.com/blog/product/kite-is-saying-farewell/" title="Kite farewell">Kite&#8217;s farewell</a> for you to read.</p><p>Kite did open-source many parts of <a
href="https://github.com/kiteco" title="Kite GitHub">their technology/software stack</a>, though I didn&#8217;t check how comprehensive those parts are, and if that is anywhere near enough to fork/continue their work.<br
/> I wonder if there already exists an open-source project focusing on ML-based code completion for e.g. Python &#8211; let me know in the comments if you know one!</p><p><span
id="more-2578"></span></p><p>Kite cites two reasons for a shutdown: <strong>1) technology not being quite there yet</strong>, and <strong>2) failure to monetize</strong>.<br
/> Kite had up to 500k daily developers using the platform, but apparently extremely few were willing to pay for it.<br
/> If you do look at current ML code assistants, there seems to always exist at least some free tier &#8211; I wonder if that is <em>forced</em> by the same lackluster, non-paying developers attitude as for Kite.</p><p>Kite&#8217;s farewell had another interesting number: <strong>18%</strong>.<br
/> That is by how much individual developer&#8217;s productivity could increase thanks to Kite&#8217;s assistance.<br
/> This isn&#8217;t bad at all; for a team of 5 largely independent developers, it&#8217;s almost one extra &#8220;affordable&#8221; developer.<br
/> Kite was striving to achieve a &#8220;10x improvement&#8221;, but at least to me the <strong>18% improvement</strong> sounds good enough for sales.</p><p>I&#8217;m very curious to try some of these assistants out.<br
/> I can imagine them to be very helpful for relatively experienced developers when starting to work with a new library/ecosystem &#8211; for example, OpenVision Python bindings.<br
/> Even the common autocomplete can significantly simplify &#8220;onboarding&#8221; to a new library &#8211; and a more intelligent autocomplete should be able to help with boilerplate code (that you usually don&#8217;t have when you begin), as well as with some <em>idiomatic</em> expressions and statements.</p><p>Have you already played with some of the <em>smarter</em> code assistants?<br
/> What was your experience?<br
/> Please share <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2022%2F12%2F28%2Fkite-ai-coding-assistant-is-saying-farewell.html&amp;linkname=Kite%20AI%20coding%20assistant%20is%20saying%20farewell" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2022%2F12%2F28%2Fkite-ai-coding-assistant-is-saying-farewell.html&amp;linkname=Kite%20AI%20coding%20assistant%20is%20saying%20farewell" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2022%2F12%2F28%2Fkite-ai-coding-assistant-is-saying-farewell.html&amp;linkname=Kite%20AI%20coding%20assistant%20is%20saying%20farewell" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2022%2F12%2F28%2Fkite-ai-coding-assistant-is-saying-farewell.html&amp;linkname=Kite%20AI%20coding%20assistant%20is%20saying%20farewell" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2022%2F12%2F28%2Fkite-ai-coding-assistant-is-saying-farewell.html&amp;linkname=Kite%20AI%20coding%20assistant%20is%20saying%20farewell" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2022%2F12%2F28%2Fkite-ai-coding-assistant-is-saying-farewell.html&#038;title=Kite%20AI%20coding%20assistant%20is%20saying%20farewell" data-a2a-url="https://bogdan.org.ua/2022/12/28/kite-ai-coding-assistant-is-saying-farewell.html" data-a2a-title="Kite AI coding assistant is saying farewell"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2022/12/28/kite-ai-coding-assistant-is-saying-farewell.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How to: enable metadata duplication on an existing btrfs filesystem</title><link>https://bogdan.org.ua/2016/12/30/how-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html</link> <comments>https://bogdan.org.ua/2016/12/30/how-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html#comments</comments> <pubDate>Fri, 30 Dec 2016 19:43:51 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[how-to]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[btrfs]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2474</guid> <description><![CDATA[Just one command: sudo btrfs balance start -v -mconvert=dup /toplevel/ where /toplevel/ is your mountpoint of the btrfs root, -v is there for verbosity (not too verbose, don&#8217;t worry), and -mconvert=dup literally says act on metadata only, convert data profile to DUP. This will duplicate both metadata and btrfs system data. Verify with: sudo btrfs [&#8230;]]]></description> <content:encoded><![CDATA[<p>Just one command: <code>sudo btrfs balance start -v -mconvert=dup  /toplevel/</code><br
/> where <code>/toplevel/</code> is your <a
href="http://bogdan.org.ua/2016/02/15/how-to-convert-your-vps-root-filesystem-to-btrfs-using-rescue-boot.html">mountpoint of the btrfs root</a>, <code>-v</code> is there for verbosity (not too verbose, don&#8217;t worry), and <code>-mconvert=dup</code> literally says <em>act on metadata only, convert data profile to DUP</em>.</p><p>This will duplicate both metadata and btrfs system data.<br
/> Verify with: <code>sudo btrfs fi df /toplevel</code>:</p><blockquote><p>Data, single: total=10.00GiB, used=3.88GiB<br
/> System, DUP: total=64.00MiB, used=4.00KiB<br
/> Metadata, DUP: total=512.00MiB, used=286.18MiB<br
/> GlobalReserve, single: total=96.00MiB, used=0.00B</p></blockquote><p>Explanation: on SSDs, mkfs.btrfs creates metadata in <em>single</em> mode (because of widely spread SSD deduplication algorithms negating duplicate entries). However, second copy of metadata increases recovery chances, especially so if your SSD does not deduplicate writes. Hence the desire to add metadata/systemdata duplication after the filesystem is created.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F30%2Fhow-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html&amp;linkname=How%20to%3A%20enable%20metadata%20duplication%20on%20an%20existing%20btrfs%20filesystem" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F30%2Fhow-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html&amp;linkname=How%20to%3A%20enable%20metadata%20duplication%20on%20an%20existing%20btrfs%20filesystem" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F30%2Fhow-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html&amp;linkname=How%20to%3A%20enable%20metadata%20duplication%20on%20an%20existing%20btrfs%20filesystem" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F30%2Fhow-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html&amp;linkname=How%20to%3A%20enable%20metadata%20duplication%20on%20an%20existing%20btrfs%20filesystem" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F30%2Fhow-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html&amp;linkname=How%20to%3A%20enable%20metadata%20duplication%20on%20an%20existing%20btrfs%20filesystem" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F30%2Fhow-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html&#038;title=How%20to%3A%20enable%20metadata%20duplication%20on%20an%20existing%20btrfs%20filesystem" data-a2a-url="https://bogdan.org.ua/2016/12/30/how-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html" data-a2a-title="How to: enable metadata duplication on an existing btrfs filesystem"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2016/12/30/how-to-add-enable-metadata-duplication-existing-btrfs-filesystem.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Mail-in-a-box, Sovereign, Modoboa, iRedMail, etc</title><link>https://bogdan.org.ua/2016/12/28/mail-in-a-box-sovereign-modoboa-iredmail-etc.html</link> <comments>https://bogdan.org.ua/2016/12/28/mail-in-a-box-sovereign-modoboa-iredmail-etc.html#comments</comments> <pubDate>Wed, 28 Dec 2016 14:43:17 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Comparison]]></category> <category><![CDATA[Links]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[mail-server]]></category> <category><![CDATA[self-hosted]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2465</guid> <description><![CDATA[Preparing to dismantle my physical server (and move different hosted things to one or more VPS), I&#8217;ve realized that an email server is necessary: to send website-generated emails, and also receive a few rare contact requests arriving at the websites. My current email server was configured eons ago, it works well, but I have no [&#8230;]]]></description> <content:encoded><![CDATA[<p>Preparing to dismantle my physical server (and move different hosted things to one or more VPS),<br
/> I&#8217;ve realized that an email server is necessary: to send website-generated emails, and also<br
/> receive a few rare contact requests arriving at the websites.</p><p>My current email server was configured eons ago, it works well,<br
/> but I have no desire to painfully transfer all the configuration&#8230;<br
/> Better install something new, shiny and exciting, right? <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p><p>I had 3 #self-hosted, #mail-server bookmarks:</p><ul><li><a
href="https://mailinabox.email/">Mail-in-a-box</a></li><li><a
href="http://www.iredmail.org/">iRedMail</a></li><li><a
href="https://modoboa.org/" class="broken_link" rel="nofollow">Modoboa</a></li><li><a
href="https://github.com/sovereign/sovereign">Sovereign</a></li></ul><p>(Sovereign, the 4th one, was addded after reading more about Mail-in-a-box.)</p><p>Here are my notes on what seemed important about these 4.<br
/> <span
id="more-2465"></span></p><ul><li><a
href="http://www.iredmail.org/">iRedMail</a></li><ul><li>has free and paid web-UIs</li><li>no DNSSEC, DMARC, HSTS</li><li>amavisd with clamav</li><li>has useful manual parts</li><li>containerized</li><li>not attractive</li></ul><li><a
href="https://modoboa.org/" class="broken_link" rel="nofollow">Modoboa</a></li><ul><li>less sophisticated than Sovereign or Mail-in-a-box</li><li>web-UI, also for amavisd filters</li><li>overall: focuses on better UI</li><li>has useful manual parts</li><li>recent (experimental?) LetsEncrypt support</li><li>has (some) unit tests</li><li>containerized</li><li>not that attractive</li></ul><li><a
href="https://github.com/sovereign/sovereign">Sovereign</a></li><ul><li>has more than I need, but components can be deactivated</li><li>has EncFS support (useful, but questionable because of reboots&#8230;)</li><li>no dedicated web-interface, configs are text</li><li>has proper testing against a vagrant virtual machine</li><li>can be dockerized using <a
href="https://github.com/kisamoto/dancible">github.com/kisamoto/dancible</a></li><li>attractive as &#8220;the next solution&#8221;, or to borrow EncFS support</li></ul><li><a
href="https://mailinabox.email/">Mail-in-a-box</a></li><ul><li>the most sophisticated email server (except for EncFS which is not used here)</li><li>simple but useful web-UI</li><li>no amavisd, clamav, UI for filters</li><li>has good relaying manual</li><li>more or less requires a separate machine (overwrites configs?)</li><li>has no well-established testing, not even for development; this is being worked on as of New Year 2017</li><li>problems with owncloud (which I don&#8217;t really need)</li><li><a
href="https://hub.docker.com/r/mtrnord/mailinabox/">hub.docker.com/r/mtrnord/mailinabox/</a> , <a
href="https://github.com/mail-in-a-box/mailinabox/blob/docker/containers/docker/run">github.com/mail-in-a-box/mailinabox/blob/docker/containers/docker/run</a></li><li><a
href="https://github.com/mail-in-a-box/mailinabox/issues/910">postscreen</a> is not yet configured, it is not obvious if it were beneficial</li><li>the most attractive; might be reasonable to fork and modify (e.g. drop owncloud?)</li></ul></ul><p><abbr
title="Mail-in-a-box">MIAB</abbr> appeared really attractive,<br
/> but then &#8211; do I really want to dedicate one of the VPS to the mail server only?<br
/> Not in my case &#8211; too low emails volume/traffic.</p><p>So running it in an <a
href="https://linuxcontainers.org/">LXC</a> (or some other) container would make sense.<br
/> And this is actually possible, some of the users over at MIAB&#8217;s <a
href="https://discourse.mailinabox.email/">discussion forum</a><br
/> have been running MIAB inside docker container for over a year now with no issues.<br
/> (An extra upside is that web-UI can be left unexposed, preventing external access to it.)<br
/> A possible long-term downside is, of course, lack of tests &#8211; Sovereign looks much better in this regard.</p><p>Sovereign looks very good overall. In fact, MIAB feels like<br
/> &#8220;Sovereign&#8217;s email component + webui for it&#8221; (MIAB was inspired by Sovereign).</p><p>One extra MIAB-specific feature is DNSSEC support.<br
/> MIAB takes on the role of your nameserver, and thus is able to setup (and refresh, when necessary)<br
/> all the DKIM/DNSSEC/etc-relevant DNS records for you.</p><p>As soon as I&#8217;ve started adding &#8220;containerization&#8221; to the mix, dozens of other projects entered my field of view:</p><ul><li><a
href="https://github.com/indiehosters/email">github.com/indiehosters/email</a>, inspired by MIAB, looks ok; lacks webmail, fail2ban, SPF, DANE, DNSSEC, but uses vimbadmin instead of a custom-coded MIAB UI</li><li><a
href="https://github.com/tomav/docker-mailserver">github.com/tomav/docker-mailserver</a> looks great! No UI, no SQL backend, only 2 text files (accounts and aliases) for all configuration &#8211; yay!</li><li><a
href="https://github.com/lava/dockermail">github.com/lava/dockermail</a>, much less active/polished, not really interesting</li><li><a
href="https://github.com/frankh/docker-compose-mailbox">github.com/frankh/docker-compose-mailbox</a> adds roundcube and vimbadmin containers; uses SQL; not sure why it has only 10 stars on github&#8230;</li><li><a
href="https://github.com/adaline/dockermail" class="broken_link" rel="nofollow">github.com/adaline/dockermail</a> &#8211; looks ok, less active and seems simpler than docker-mailserver</li><li><a
href="https://poste.io/">poste.io</a> : has free (downloadable) and 2 paid versions; packed with many features and containerized; there is no Dockerfile, but of course you can examine what&#8217;s inside the public image anyway; actually, looks good &#8211; not sure how posteio-specific the data directory structure is, though&#8230; still something to try</li><li><a
href="http://www.mailgun.com/">mailgun.com</a> &#8211; SMTP service with a more than sufficient free quota for a few low-traffic websites; can be coupled with some forwarding service to avoid any need in an email server; but not this time, I want a mail-server <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></li><li><a
href="https://yunohost.org/">yunohost.org</a> : I&#8217;m not entirely sure why this is here, maybe it does have email support built-in? ok, yes it does &#8211; this is a debian-based &#8220;home-server&#8221; software, which also includes LDAP and SSO and XMPP and DNS and nginx. Hmm, not bad. I wonder how well it works out of the box.</li><li><a
href="https://kolab.org/">kolab.org</a> : groupware; looks interesting as well, but I have no group (yet) to have a use for a full groupware solution</li><li>not reviewed: <a
href="https://mailcow.email/">mailcow.email</a>, <a
href="https://mailcow.email/dockerized/" class="broken_link" rel="nofollow">mailcow.email/dockerized</a>, <a
href="https://github.com/andryyy/mailcow" class="broken_link" rel="nofollow">github.com/andryyy/mailcow</a></li></ul><p>Finally, one can build an own LXC container, either by following this <a
href="http://arstechnica.com/information-technology/2014/02/how-to-run-your-own-e-mail-server-with-your-own-domain-part-1/">ArsTechnica</a> series,<br
/> or after examining the install scripts of MIAB or Sovereign.<br
/> Then automate all of this, keep it well-maintained &#8211; and there you have it, one more mail-server solution! <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p><p>To re-cap:</p><ul><li>MIAB looks very good &#8211; feature-rich, easy to install, and just works &#8211; you should try it!</li><li>docker-mailserver looks great &#8211; I should try it!</li><li>poste.io, yunohost.org and kolab.org are also some interesting solutions to try, along with Sovereign</li></ul><p>Not much of a summary, but this is definitely an accurate reflection of reality.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F28%2Fmail-in-a-box-sovereign-modoboa-iredmail-etc.html&amp;linkname=Mail-in-a-box%2C%20Sovereign%2C%20Modoboa%2C%20iRedMail%2C%20etc" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F28%2Fmail-in-a-box-sovereign-modoboa-iredmail-etc.html&amp;linkname=Mail-in-a-box%2C%20Sovereign%2C%20Modoboa%2C%20iRedMail%2C%20etc" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F28%2Fmail-in-a-box-sovereign-modoboa-iredmail-etc.html&amp;linkname=Mail-in-a-box%2C%20Sovereign%2C%20Modoboa%2C%20iRedMail%2C%20etc" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F28%2Fmail-in-a-box-sovereign-modoboa-iredmail-etc.html&amp;linkname=Mail-in-a-box%2C%20Sovereign%2C%20Modoboa%2C%20iRedMail%2C%20etc" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F28%2Fmail-in-a-box-sovereign-modoboa-iredmail-etc.html&amp;linkname=Mail-in-a-box%2C%20Sovereign%2C%20Modoboa%2C%20iRedMail%2C%20etc" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2016%2F12%2F28%2Fmail-in-a-box-sovereign-modoboa-iredmail-etc.html&#038;title=Mail-in-a-box%2C%20Sovereign%2C%20Modoboa%2C%20iRedMail%2C%20etc" data-a2a-url="https://bogdan.org.ua/2016/12/28/mail-in-a-box-sovereign-modoboa-iredmail-etc.html" data-a2a-title="Mail-in-a-box, Sovereign, Modoboa, iRedMail, etc"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2016/12/28/mail-in-a-box-sovereign-modoboa-iredmail-etc.html/feed</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>TSW-friendly task and note management software</title><link>https://bogdan.org.ua/2016/06/05/tsw-friendly-task-and-note-management-software.html</link> <comments>https://bogdan.org.ua/2016/06/05/tsw-friendly-task-and-note-management-software.html#comments</comments> <pubDate>Sat, 04 Jun 2016 23:39:43 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[Links]]></category> <category><![CDATA[Misc]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[evernote]]></category> <category><![CDATA[GTD]]></category> <category><![CDATA[TSW]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2432</guid> <description><![CDATA[A while ago I was looking for GTD/TSW-compatible android app. I ended up using Trello, Keep, and Calendar. But I always keep looking for new/improved tools, as right now I feel the best one does not exist&#8230; (If the best one can exist at all &#8211; requirements and conditions change all the time, so there [&#8230;]]]></description> <content:encoded><![CDATA[<p>A while ago I was looking for <a
href="http://bogdan.org.ua/2015/03/13/looking-for-a-perfect-android-app-for-tsw-gtd-use.html">GTD/TSW-compatible android app</a>.<br
/> I ended up using Trello, Keep, and Calendar.</p><p>But I always keep looking for new/improved tools, as right now I feel the best one does not exist&#8230;<br
/> (If <em>the best one</em> can exist at all &#8211; requirements and conditions change all the time, so there is no fixed <em>perfect immovable target</em>.)</p><p>I have been contemplating trying out the TSW methodology, but neither Keep nor Trello are quite there yet.<br
/> I ended up using Evernote; after recent management changes and actually trying to become profitable it may as well last long enough.</p><p>Everything was fine and calm until I have found <a
href="https://workflowy.com/invite/394bbbe3.lnx" title="this is a referral link with non-material bonus for me :)">workflowy</a> yesterday.<br
/> In essence, it is very similar to the text-file-based system that I have been using for at least half a year.</p><p>Briefly, it is a web-based text editor on steroids, with possibly infinite nesting lists and seemingly full keyboard shortcuts control &#8211; no mouse needed.<br
/> I recommend that you try the demo &#8211; it seems to be fully functional, and there is no need to sign up.</p><p>This discovery made me read through pages and pages of this class of software tools.<br
/> Here is a very brief summary of my findings:<span
id="more-2432"></span></p><ul><li><a
href="http://orgmode.org/">org-mode for emacs</a>: taking notes, organizing to-do lists and projects, writing structured text; I can definitely see the benefits &#8211; especially for tasks/projects management; however, for rich content &#8211; with attached/embedded files/images &#8211; this probably won&#8217;t work that well; see also <a
href="http://www.orgzly.com/">orgzly</a>;</li><li><a
href="https://www.tagspaces.org/">TagSpaces</a> (also on <a
href="https://github.com/tagspaces/tagspaces">github</a>) is a tags-based files manager; cross-platform, offline, stores tags in filenames (in square brackets) &#8211; this is probably the least interfering/locking-in solution, the only things changing are file names; TagSpaces users are expected to synchronize the tag-controlled filesystem (which can be some specific directory tree) using 3rd-party tools such as [BT]Sync, SyncThing, Dropbox, Box, etc;</li><li>many kinds of Evernote-like tools and wikis, that people also use to take notes; the two most mature and usable and feature-rich are probably <a
href="https://laverna.cc/">Laverna</a> (looks great, uses markdown, can be self-hosted, unclear how to search by multiple tags) and <a
href="http://paperwork.rocks/">Paperwork</a> (same thing with multiple tags); <a
href="https://www.wiz.cn/">WizNote</a> also deserves a mention; among other tools: <a
href="https://github.com/charlesthomas/magpie">git-backed magpie</a>, <a
href="http://yipgo.com/" class="broken_link" rel="nofollow">yipgo</a>, <a
href="https://github.com/kiasaki/marks" class="broken_link" rel="nofollow">Marks</a>, <a
href="http://keepnote.org/">KeepNote</a>, <a
href="http://zim-wiki.org/">zim</a>, etc;</li><li><a
href="https://github.com/galfarragem/hamster-gtd">hamster-GTD</a> is a (yet another?) variation of TSW/GTD &#8211; not a tool, but a system;</li><li><a
href="http://artificer.jboss.org/">Artificer</a> (formerly Overlord S-RAMP), a system for <em>any kind of interconnected, hierarchical data</em>; see also <a
href="https://github.com/ArtificerRepo/artificer/tree/master/demos/end-to-end-use-case/getting-things-done">Artificer GTD example</a>;</li><li><a
href="https://github.com/eflynch/magnolial">magnolial</a>, workflowy clone (haven&#8217;t tried it yet); another clone is <a
href="https://github.com/abhshkdz/HackFlowy">HackFlowy</a> &#8211; trying its offline demo shows that only a basic list functionality is present.</li></ul><p>Now that I think of it, TagSpaces is a neat idea&#8230;<br
/> Especially for photos &#8211; assigning tags actually updates filenames, which is great for photos.<br
/> And you can easily search by those tags later in TagSpaces.<br
/> In fact, TagSpaces looks very interesting for organizing lots of directory/file-based data.</p><p>Laverna looks quite exciting! And seems to be actively developed.<br
/> But there seems to be nothing quite comparable to WorkFlowy&#8230; Need to test it some more.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F06%2F05%2Ftsw-friendly-task-and-note-management-software.html&amp;linkname=TSW-friendly%20task%20and%20note%20management%20software" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F06%2F05%2Ftsw-friendly-task-and-note-management-software.html&amp;linkname=TSW-friendly%20task%20and%20note%20management%20software" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F06%2F05%2Ftsw-friendly-task-and-note-management-software.html&amp;linkname=TSW-friendly%20task%20and%20note%20management%20software" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F06%2F05%2Ftsw-friendly-task-and-note-management-software.html&amp;linkname=TSW-friendly%20task%20and%20note%20management%20software" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F06%2F05%2Ftsw-friendly-task-and-note-management-software.html&amp;linkname=TSW-friendly%20task%20and%20note%20management%20software" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2016%2F06%2F05%2Ftsw-friendly-task-and-note-management-software.html&#038;title=TSW-friendly%20task%20and%20note%20management%20software" data-a2a-url="https://bogdan.org.ua/2016/06/05/tsw-friendly-task-and-note-management-software.html" data-a2a-title="TSW-friendly task and note management software"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2016/06/05/tsw-friendly-task-and-note-management-software.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Evernote web-interface beta: how to fix: saved searches are crossed out and do not work</title><link>https://bogdan.org.ua/2016/05/09/evernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html</link> <comments>https://bogdan.org.ua/2016/05/09/evernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html#comments</comments> <pubDate>Mon, 09 May 2016 10:30:10 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[how-to]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[evernote]]></category> <category><![CDATA[fix]]></category> <category><![CDATA[problem]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2403</guid> <description><![CDATA[Another symptom is a message along the lines of the notebook you are searching in has been moved or renamed since the saved search was created (which is not true). I had this problem, and found a solution. Go to your Evernote on a client where you can edit saved searches (Windows for me), edit [&#8230;]]]></description> <content:encoded><![CDATA[<p>Another symptom is a message along the lines of</p><blockquote><p>the notebook you are searching in has been moved or renamed since the saved search was created</p></blockquote><p>(which is not true).</p><p>I had this problem, and found a <strong>solution</strong>.</p><p>Go to your Evernote on a client where you can <strong>edit saved searches</strong> (Windows for me),<br
/> edit all the searches, and make sure that <strong>notebook name is quoted</strong> in the search (and also, possibly, with all <strong>proper letter cases</strong>).</p><p>I found this solution by first creating a search from the web-beta interface, it looked like this: <code>notebook:"Mynotebook" tag:1-now</code><br
/> All the crossed-out searches (despite working totally fine on Windows) looked like this: <code>notebook:Mynotebook tag:1-now</code><br
/> or even like this (note the lower-case 1stÂ letter of the notebook name): <code>notebook:mynotebook tag:1-now</code>.</p><p>After editing saved searches and synchronizing, they all appear (and work) just fine in the beta web-interface.</p><p>If you cannot edit your searches right now, there is <strong>another workaround</strong>: all the saved searches <strong>work fine</strong> for me <strong>from the ShortcutsÂ menu</strong> (a star in the left panel).</p><p>Hope this helps!</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F05%2F09%2Fevernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html&amp;linkname=Evernote%20web-interface%20beta%3A%20how%20to%20fix%3A%20saved%20searches%20are%20crossed%20out%20and%20do%20not%20work" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F05%2F09%2Fevernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html&amp;linkname=Evernote%20web-interface%20beta%3A%20how%20to%20fix%3A%20saved%20searches%20are%20crossed%20out%20and%20do%20not%20work" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F05%2F09%2Fevernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html&amp;linkname=Evernote%20web-interface%20beta%3A%20how%20to%20fix%3A%20saved%20searches%20are%20crossed%20out%20and%20do%20not%20work" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F05%2F09%2Fevernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html&amp;linkname=Evernote%20web-interface%20beta%3A%20how%20to%20fix%3A%20saved%20searches%20are%20crossed%20out%20and%20do%20not%20work" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F05%2F09%2Fevernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html&amp;linkname=Evernote%20web-interface%20beta%3A%20how%20to%20fix%3A%20saved%20searches%20are%20crossed%20out%20and%20do%20not%20work" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2016%2F05%2F09%2Fevernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html&#038;title=Evernote%20web-interface%20beta%3A%20how%20to%20fix%3A%20saved%20searches%20are%20crossed%20out%20and%20do%20not%20work" data-a2a-url="https://bogdan.org.ua/2016/05/09/evernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html" data-a2a-title="Evernote web-interface beta: how to fix: saved searches are crossed out and do not work"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2016/05/09/evernote-web-interface-beta-how-to-fix-saved-searches-are-crossed-out-and-do-not-work.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How to: export only notes to PDF from LibreOffice Impress 5</title><link>https://bogdan.org.ua/2016/02/28/how-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html</link> <comments>https://bogdan.org.ua/2016/02/28/how-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html#comments</comments> <pubDate>Sun, 28 Feb 2016 19:44:32 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[how-to]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[export]]></category> <category><![CDATA[impress]]></category> <category><![CDATA[LibreOffice]]></category> <category><![CDATA[PDF]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2368</guid> <description><![CDATA[If you want to export Notes to a PDF from LibreOffice Impress 5, and dutifully set the appropriate checkbox in PDF export dialog, then you will get all slides twice: first just all the slides as with usual PDF export, and then all the Notes pages. There is an easy solution to get Notes-only without [&#8230;]]]></description> <content:encoded><![CDATA[<p>If you want to export Notes to a PDF from LibreOffice Impress 5,<br
/> and dutifully set the appropriate checkbox in PDF export dialog,<br
/> then you will get all slides twice: first just all the slides as with usual PDF export, and then all the Notes pages.</p><p>There is an easy solution to get Notes-only without editing the PDF.</p><p>If you have a PDf printer installed (most Linux distributions, and Windows 10), just do <strong>File -> Print</strong> from Impress,<br
/> then under the <strong>Print</strong> sub-header choose <strong>Notes</strong> from the <strong>Document</strong> drop-down (see picture).<br
/> Make sure to set the proper paper format for the PDF printer (A4 in my case).<br
/> Then <em>print</em>, and save the resulting PDF.<br
/> <span
id="more-2368"></span><br
/> <img
src="http://bogdan.org.ua/wp-content/uploads/2016/02/print_notes.jpg" alt="print dialog" width="722" height="483" class="aligncenter size-full wp-image-2369" /></p><p>Sources:</p><ul><li>question on <a
href="https://ask.libreoffice.org/en/question/13188/how-to-export-impress-notes-only/">ask.libreoffice.org</a></li><li>LibreOffice <a
href="https://bugs.documentfoundation.org/show_bug.cgi?id=39271&#038;redirected_from=fdo">bug report</a></li></ul><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F28%2Fhow-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html&amp;linkname=How%20to%3A%20export%20only%20notes%20to%20PDF%20from%20LibreOffice%20Impress%205" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F28%2Fhow-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html&amp;linkname=How%20to%3A%20export%20only%20notes%20to%20PDF%20from%20LibreOffice%20Impress%205" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F28%2Fhow-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html&amp;linkname=How%20to%3A%20export%20only%20notes%20to%20PDF%20from%20LibreOffice%20Impress%205" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F28%2Fhow-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html&amp;linkname=How%20to%3A%20export%20only%20notes%20to%20PDF%20from%20LibreOffice%20Impress%205" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F28%2Fhow-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html&amp;linkname=How%20to%3A%20export%20only%20notes%20to%20PDF%20from%20LibreOffice%20Impress%205" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F28%2Fhow-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html&#038;title=How%20to%3A%20export%20only%20notes%20to%20PDF%20from%20LibreOffice%20Impress%205" data-a2a-url="https://bogdan.org.ua/2016/02/28/how-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html" data-a2a-title="How to: export only notes to PDF from LibreOffice Impress 5"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2016/02/28/how-to-export-only-notes-to-pdf-from-libreoffice-impress-5.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How to use mkfifo named pipes with prinseq-lite.pl</title><link>https://bogdan.org.ua/2016/02/24/how-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html</link> <comments>https://bogdan.org.ua/2016/02/24/how-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html#comments</comments> <pubDate>Wed, 24 Feb 2016 11:39:37 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Bioinformatics]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[FIFO]]></category> <category><![CDATA[gist]]></category> <category><![CDATA[mkfifo]]></category> <category><![CDATA[patch]]></category> <category><![CDATA[prinseq-lite.pl]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2360</guid> <description><![CDATA[prinseq-lite.pl is a utility written in Perl for preprocessing NGS reads, also in FASTQ format. It can read sequences both from files and from stdin (if you only have 1 sequence). I wanted to use it with compressed (gzipped/bzipped2) FASTQ input files. As I do not need to store decompressed input files, the most efficient [&#8230;]]]></description> <content:encoded><![CDATA[<p><img
src="http://bogdan.org.ua/wp-content/uploads/2016/02/prinseq_logo_1.png" alt="prinseq_logo_1" width="204" height="32" class="alignleft size-full wp-image-2361" /><a
href="http://prinseq.sourceforge.net/">prinseq-lite.pl</a> is a utility written in Perl for preprocessing NGS reads, also in <a
href="https://en.wikipedia.org/wiki/FASTQ_format">FASTQ format</a>.<br
/> It can read sequences both from files and from stdin (if you only have 1 sequence).</p><p>I wanted to use it with compressed (gzipped/bzipped2) FASTQ input files.<br
/> As I do not need to store decompressed input files, the most efficient solution is to use pipes.<br
/> This works well for a single file, but not for 2 files (paired-end reads).</p><p>For 2 files, <a
href="https://en.wikipedia.org/wiki/Named_pipe">named pipes</a> (also known as <a
href="https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)">FIFO</a>s) can be used.<br
/> You can create a named pipe in Linux with the help of <code>mkfifo</code> command, for example <code>mkfifo R1_decompressed.fastq</code>.<br
/> To use it, start decompressing something into it (either in a different terminal, or in background), for example <code>zcat R1.fastq.gz > R1_decompressed.fastq &#038;</code>;<br
/> we can call this a writing/generating process, because it writes into a pipe.<br
/> (If you are writing software to use named pipes, any processes writing into them should be started in a new thread, as they will block until all the data is consumed.)<br
/> Now if you give the R1_decompressed.fastq as a file argument to some other program, it will see decompressed content (e.g. <code>wc -l R1_decompressed.fastq</code> will tell you the number of lines in the decompressed file); we can call program reading from the named pipe a reading/consuming process.<br
/> As soon as a consuming process had consumed (read) all of the data, the writing/generating process will finally exit.</p><p>This, however, does not work with prinseq-lite.pl (version 0.20.4 or earlier), with a <strong>broken pipe</strong> error.<span
id="more-2360"></span></p><p>Named pipes are very similar to usual files, with two <strong>major differences</strong>:</p><ul><li>named pipes are <strong>not seekable</strong>: you cannot move file pointer (at least not backwards, not sure about skipping forward);</li><li>you <strong>cannot</strong> arbitrarily close/<strong>re-open</strong> a named pipe from the consuming end: closing a pipe on the consuming end also closes it for the writing/generating process.</li></ul><p>The reason why prinseq-lite.pl does not work with named pipes is that it performs file format checking first &#8211; by opening the file, reading the first 3 lines, and closing it.<br
/> Closing a named pipe causes <strong>broken pipe</strong> for the writing process, and when prinseq-lite.pl attempts to open the pipe again &#8211; it succeeds, but there is no data there anymore, so it just sits and waits for data <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p><p>I&#8217;m ok with a quick and dirty solution, so here it is: <a
href="https://gist.github.com/spock/7d4e46e1158e2e4a46d4">prinseq-lite.pl patch to enable mkfifo named pipes as input files</a> (also local <a
href="http://bogdan.org.ua/wp-content/uploads/2016/02/prinseq-lite.pl_.patch_.txt">prinseq-lite.pl.patch</a>).<br
/> <strong>WARNING</strong>: this patch simply disables file format checking!</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F24%2Fhow-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html&amp;linkname=How%20to%20use%20mkfifo%20named%20pipes%20with%20prinseq-lite.pl" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F24%2Fhow-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html&amp;linkname=How%20to%20use%20mkfifo%20named%20pipes%20with%20prinseq-lite.pl" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F24%2Fhow-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html&amp;linkname=How%20to%20use%20mkfifo%20named%20pipes%20with%20prinseq-lite.pl" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F24%2Fhow-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html&amp;linkname=How%20to%20use%20mkfifo%20named%20pipes%20with%20prinseq-lite.pl" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F24%2Fhow-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html&amp;linkname=How%20to%20use%20mkfifo%20named%20pipes%20with%20prinseq-lite.pl" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F24%2Fhow-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html&#038;title=How%20to%20use%20mkfifo%20named%20pipes%20with%20prinseq-lite.pl" data-a2a-url="https://bogdan.org.ua/2016/02/24/how-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html" data-a2a-title="How to use mkfifo named pipes with prinseq-lite.pl"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2016/02/24/how-to-use-mkfifo-named-pipes-with-prinseq-lite-pl.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>ZFS is the FS for Containers in Ubuntu 16.04 and how it compares to btrfs</title><link>https://bogdan.org.ua/2016/02/20/zfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html</link> <comments>https://bogdan.org.ua/2016/02/20/zfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html#comments</comments> <pubDate>Sat, 20 Feb 2016 18:45:00 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[btrfs]]></category> <category><![CDATA[comparison]]></category> <category><![CDATA[ext4]]></category> <category><![CDATA[FreeNAS]]></category> <category><![CDATA[vs]]></category> <category><![CDATA[XFS]]></category> <category><![CDATA[ZFS]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2354</guid> <description><![CDATA[Recently in hacker news the following was posted: ZFS is the FS for Containers in Ubuntu 16.04. I must admit the 16.04 demo does look very pleasant to work with. However, bringing in ZFS into Linux reminded me of a fairly recent comparison of ZFS and btrfs that I had to do when building my [&#8230;]]]></description> <content:encoded><![CDATA[<p>Recently in hacker news the following was posted: <a
href="https://news.ycombinator.com/item?id=11125063">ZFS is the FS for Containers in Ubuntu 16.04</a>.</p><p>I must admit the 16.04 demo does look very pleasant to work with.</p><p>However, bringing in ZFS into Linux reminded me of a fairly recent comparison of ZFS and btrfs that I had to do when building my home NAS.<br
/> At that time, few months ago, I&#8217;ve arrived (among others) at the following conclusions:</p><ul><li>ZFS on FreeBSD is reliable, though a memory hog;</li><li>on Debian, OpenVault seems to be a good NAS web-management interface;</li><li>on FreeBSD, FreeNAS is good (there is also Nas4Free fork of an older version, but I haven&#8217;t looked into it deep enough);</li><li>running ZFS on linux (even as a kernel module) is the least efficient solution, at least partially because kernel&#8217;s file caching and ZFS&#8217;s ARC cache are two separate entities;</li><li>although btrfs offers features very similar to ZFS, as of few months ago OpenVault did not offer btrfs volumes support from the web-interface.</li></ul><p>In the end, I&#8217;ve decided to go with FreeNAS, and it seems to work well so far.</p><p>But had anything changed in the <em>btrfs vs ZFS on Linux</em> field?<br
/> <span
id="more-2354"></span><br
/> Luckily, in the comments section of the <a
href="http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html">original post</a> Brian Mullan linked to a recent Bachelor degree project titled <a
href="https://www.diva-portal.org/smash/get/diva2:822493/FULLTEXT01.pdf">A performance comparison of ZFS and btrfs on Linux</a> (<a
href="http://bogdan.org.ua/wp-content/uploads/2016/02/A_performance_comparison_of_ZFS_and_btrfs_on_Linux.pdf">local copy</a>). Here&#8217;s an excerpt from the abstract:</p><blockquote><p> The main conclusions that can be drawn from the analysis of the gathered data is that<br
/> Btrfs has improved greatly in recent years and is today showing great throughput whereas<br
/> ZFS on Linux is performing considerably worse than Btrfs.</p></blockquote><p>The document is definitely worth looking at &#8211; actual results start on page 22, and there are figures for easy comprehension <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /><br
/> XFS and ext4 are also added to the comparison, so if you are thinking about changing your FS &#8211; the document may help you, too.<br
/> The only area where ZFS excelled was database-like load; btrfs and XFS were the leaders in the majority of other tests.<br
/> (In fact, somewhat lower btrfs performance for database-like loads seems to be a well-known thing, and can be <em>cured</em> with the <code>nodatacow</code> mount option &#8211; see e.g. this <a
href="http://blog.pgaddict.com/posts/friends-dont-let-friends-use-btrfs-for-oltp" class="broken_link" rel="nofollow">nice rant about PostgreSQL on btrfs</a>.)</p><p>I do believe that ZFS is still more stable than btrfs, but I&#8217;m also still not convinced that <em>ZFS and Linux</em> are a good combination.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F20%2Fzfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html&amp;linkname=ZFS%20is%20the%20FS%20for%20Containers%20in%20Ubuntu%2016.04%20and%20how%20it%20compares%20to%20btrfs" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F20%2Fzfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html&amp;linkname=ZFS%20is%20the%20FS%20for%20Containers%20in%20Ubuntu%2016.04%20and%20how%20it%20compares%20to%20btrfs" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F20%2Fzfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html&amp;linkname=ZFS%20is%20the%20FS%20for%20Containers%20in%20Ubuntu%2016.04%20and%20how%20it%20compares%20to%20btrfs" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F20%2Fzfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html&amp;linkname=ZFS%20is%20the%20FS%20for%20Containers%20in%20Ubuntu%2016.04%20and%20how%20it%20compares%20to%20btrfs" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F20%2Fzfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html&amp;linkname=ZFS%20is%20the%20FS%20for%20Containers%20in%20Ubuntu%2016.04%20and%20how%20it%20compares%20to%20btrfs" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2016%2F02%2F20%2Fzfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html&#038;title=ZFS%20is%20the%20FS%20for%20Containers%20in%20Ubuntu%2016.04%20and%20how%20it%20compares%20to%20btrfs" data-a2a-url="https://bogdan.org.ua/2016/02/20/zfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html" data-a2a-title="ZFS is the FS for Containers in Ubuntu 16.04 and how it compares to btrfs"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2016/02/20/zfs-is-the-fs-for-containers-in-ubuntu-16-04-and-how-it-compares-to-btrfs.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>PGF vs PNG vs JPEG 2000 for long-term photo storage/archive</title><link>https://bogdan.org.ua/2015/05/26/pgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html</link> <comments>https://bogdan.org.ua/2015/05/26/pgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html#comments</comments> <pubDate>Mon, 25 May 2015 22:02:46 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[Comparison]]></category> <category><![CDATA[Links]]></category> <category><![CDATA[Misc]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[comparison]]></category> <category><![CDATA[JPEG2000]]></category> <category><![CDATA[PGF]]></category> <category><![CDATA[photo]]></category> <category><![CDATA[PNG]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2285</guid> <description><![CDATA[I am using an excellent photo-management suite digiKam, which offers 3 lossless compressed formats for photos versioning and storage: PNG, JPEG 2000, and PGF. I wanted to know which one should I use, which urged me to perform this comparison. This post is not intended to be an in-depth comparison, but should be sufficient to [&#8230;]]]></description> <content:encoded><![CDATA[<p>I am using an <a
href="https://www.digikam.org/">excellent photo-management suite digiKam</a>, which offers 3 lossless compressed formats for photos versioning and storage: PNG, JPEG 2000, and PGF. I wanted to know which one should I use, which urged me to perform this comparison.</p><p>This post is not intended to be an in-depth comparison, but should be sufficient to choose one of the three file formats for your purposes. For more format details and history simply follow the links provided. File formats are reviewed roughly in &#8220;historical&#8221; order.</p><p><strong>PNG</strong> (<a
href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">Portable Network Graphics</a>) was designed as <a
href="http://en.wikipedia.org/wiki/Graphics_Interchange_Format">GIF</a> replacement.</p><ul><li>It is lossless.</li><li>It is suitable for photos.</li><li>PNG is more space-efficient in the case of images with many pixels of the same color, such as diagrams/plots (as compared to PGF and JPEG2000). However, PNG photos are almost always larger than lossless PGF/JPEG2000 photos (real photo example: 9.9 MB in PNG, 7.0 MB in JPEG 2000).</li><li>PNG is fairly fast at (en|de)coding.</li><li>PNG is widely supported by web-browsers, image editors, and other software.</li><li>PNG uses CRCs internally for each data block, so if damage occurs only the damaged block(s) should be lost &#8211; theoretically. However, in practice, according to the <a
href="http://planets-project.eu/docs/papers/Heydegger_JustOneBit_ECDL2009.pdf">Just One Bit paper</a> (<a
href="http://bogdan.org.ua/wp-content/uploads/2015/05/Heydegger_JustOneBit_ECDL2009.pdf">local copy</a>), PNG is actually much less damage-resilient than JPEG 2000.</li></ul><p><span
id="more-2285"></span><br
/> <strong>JPEG 2000</strong> (<a
href="http://en.wikipedia.org/wiki/JPEG_2000">JPEG 2000</a>) was designed as <a
href="http://en.wikipedia.org/wiki/JPEG">JPEG</a> replacement.</p><ul><li>It has both lossless and lossy modes. Lossy mode is &#8220;better&#8221; (perceptually at the same file size) than JPEG.</li><li>Lossless mode is the smallest of all 3 file formats tested.</li><li>JPEG 2000 is slower at (en|de)coding than PGF and PNG.</li><li>JPEG 2000 has several associated ISO and other standards. Software support for JPEG 2000 is not as good as for PNG, but better than for PGF.</li><li>JPEG 2000 has good <a
href="http://www.dlib.org/dlib/july08/buonora/07buonora.html">bit errors resilience</a> (<a
href="http://bogdan.org.ua/wp-content/uploads/2015/05/A-study-on-JPEG2000-file-robustness.pdf">local copy</a>).</li></ul><p><strong>PGF</strong> (<a
href="http://en.wikipedia.org/wiki/Progressive_Graphics_File">Progressive Graphics File</a>) was also designed to replace/enhance <a
href="http://en.wikipedia.org/wiki/JPEG">JPEG</a>.</p><ul><li>PGF uses the same wavelet-based method as JPEG 2000, so it shares a lot of features with JPEG 2000, including support for lossless and lossy modes, with lossy being &#8220;better&#8221; than JPEG.</li><li>Lossless mode file is marginally larger than the same image in JPEG 2000 (real photo example: 7.0 MB in JPEG 2000, 7.4 MB in PGF).</li><li>It is much faster at (en|de)coding than JPEG 2000 (this is major difference #1 of 2).</li><li>Software support for PGF is not as good as for JPEG 2000 (this is major difference #2 of 2).<li>Being under-appreciated, PGF doesn&#8217;t seem to have received any error resilience testing, yet. However, one should expect error resilience similar to that of JPEG 2000, because essentially the same compression method is used (albeit with different &#8220;parameters&#8221;, resulting in a speed/size trade-off/gain). It is not clear if PGF has any <em>resilience features</em> like JPEG 2000.</li></ul><p><em>Fun fact #1</em> from the links above: best error resilience was observed for bitmap files.<br
/> <em>Fun fact #2</em>: after about 1% of data damage none of the compressed formats is able to reliably reproduce the original image.</p><p>I would be happy to use PGF for its speed, compression ratio, and features, but lacking software support is detrimental (in a self-reinforcing manner) to widespread adoption of PGF; being quite similar to the more popular (or better promoted) JPEG 2000, I do not know if PGF will gain sufficient traction to get e.g. browser support.</p><p>PNG has very good support, but produces noticeably larger files, and exhibits significantly lower error resilience than JPEG 2000.</p><p>So as of today my choice is JPEG 2000 (lossless, with resilience features).</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F05%2F26%2Fpgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html&amp;linkname=PGF%20vs%20PNG%20vs%20JPEG%202000%20for%20long-term%20photo%20storage%2Farchive" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F05%2F26%2Fpgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html&amp;linkname=PGF%20vs%20PNG%20vs%20JPEG%202000%20for%20long-term%20photo%20storage%2Farchive" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F05%2F26%2Fpgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html&amp;linkname=PGF%20vs%20PNG%20vs%20JPEG%202000%20for%20long-term%20photo%20storage%2Farchive" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F05%2F26%2Fpgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html&amp;linkname=PGF%20vs%20PNG%20vs%20JPEG%202000%20for%20long-term%20photo%20storage%2Farchive" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F05%2F26%2Fpgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html&amp;linkname=PGF%20vs%20PNG%20vs%20JPEG%202000%20for%20long-term%20photo%20storage%2Farchive" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2015%2F05%2F26%2Fpgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html&#038;title=PGF%20vs%20PNG%20vs%20JPEG%202000%20for%20long-term%20photo%20storage%2Farchive" data-a2a-url="https://bogdan.org.ua/2015/05/26/pgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html" data-a2a-title="PGF vs PNG vs JPEG 2000 for long-term photo storage/archive"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2015/05/26/pgf-vs-png-vs-jpeg-2000-for-long-term-photo-storage-archive.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Compressors galore: pbzip2, lbzip2, plzip, xz, and lrzip tested on a FASTQ file</title><link>https://bogdan.org.ua/2015/03/28/compressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html</link> <comments>https://bogdan.org.ua/2015/03/28/compressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html#comments</comments> <pubDate>Fri, 27 Mar 2015 23:34:14 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Comparison]]></category> <category><![CDATA[Links]]></category> <category><![CDATA[Misc]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[benchmark]]></category> <category><![CDATA[bzip2]]></category> <category><![CDATA[fastq]]></category> <category><![CDATA[lbzip2]]></category> <category><![CDATA[lrzip]]></category> <category><![CDATA[pbzip2]]></category> <category><![CDATA[plzip]]></category> <category><![CDATA[test]]></category> <category><![CDATA[xz]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2257</guid> <description><![CDATA[About 2 years ago I had already reviewed some parallel (and not) compressing utilities, settling at that time on pbzip2 &#8211; it scales quasi-linearly with the number of CPUs/cores, stores compressed data in relatively small 900k blocks, is fast, and has good compression ratio. pbzip2 was (and still is) a very good choice. Yesterday I [&#8230;]]]></description> <content:encoded><![CDATA[<p>About 2 years ago I had already <a
href="http://bogdan.org.ua/2013/10/17/favourite-file-compressor-gzip-bzip2-7z.html">reviewed some parallel (and not) compressing utilities</a>, settling at that time on <strong>pbzip2</strong> &#8211; it scales quasi-linearly with the number of CPUs/cores, stores compressed data in relatively small 900k blocks, is fast, and has good compression ratio. <strong>pbzip2</strong> was (and still is) a very good choice.</p><p>Yesterday I got somewhat distracted, and thus found <strong>lbzip2</strong> -</p><blockquote><p>an independent, multi-threaded implementation of bzip2. It is commonly the fastest SMP (and uniprocessor) bzip2 compressor and decompressor</p></blockquote><p>- as it says in the Debian package description. Is it really &#8220;commonly the fastest&#8221; one? How does it compare to <strong>pbzip2</strong>? Should I use <strong>lbzip2</strong> instead of <strong>pbzip2</strong>?</p><p>This minor distraction had grown into a full-scale web-search and comparison, adding to the mix <strong>plzip</strong> (a parallel version of <strong>lzip</strong>), <strong>xz</strong>, and <strong>lrzip</strong>. After reading thousands of characters, all of these were put to a simple test: compressing an about 2 gigabyte FASTQ file with default options.</p><p>All the external links and benchmarks, as well as my own mini-benchmark results, are provided below.</p><p><strong>The conclusion is that</strong> out of all the tested compressors <strong>lbzip2 is indeed the best one</strong> (for my <em>practical</em> use). It is only slightly better than the trusty <strong>pbzip2</strong>, which takes the second place. All the other compressors performed so poorly, that they do not get any place in my <em>practical</em> rating&#8230;</p><p>So, let us first ask internet wisdom/foolishness, <strong>if lbzip2 or pbzip2 is faster/better?</strong><br
/> <span
id="more-2257"></span></p><ul><li>this <a
href="http://askubuntu.com/questions/63224/what-should-i-rely-on-lbzip2-or-pbzip2">askubuntu question</a> shows that <strong>lbzip2</strong> is compressing faster (1:43) than <strong>pbzip2</strong> (2:34)</li><li>this <a
href="http://vbtechsupport.com/1614/">nice benchmark</a> also confirms that <strong>lbzip2</strong> is indeed faster at compressing; <strong>lbzip2</strong> also appears to use less RAM and a little bit less CPU during compression; during decompression, <strong>lbzip2</strong> (reportedly) uses much more RAM. <strong>lbzip2</strong> achieved at least as good (and even marginally better) compression ratios as <strong>pbzip2</strong>.</li><li><a
href="https://github.com/kjn/lbzip2">lbzip2 github</a> page and also <a
href="http://fibrevillage.com/sysadmin/81-parallel-compression-utilities-on-linux-lbzip2-pbzip2-and-pigz" class="broken_link" rel="nofollow">this unrelated page</a> both say that <strong>lbzip2</strong> is fully cross-compatible with <strong>bzip2</strong></li><li>probably most importantly, lbzip2 github readme says that even <strong>bzip2</strong>-compressed archives get a decompression speedup (which is definitely not the case with <strong>pbzip2</strong>)</li><li><strong>lbzip2</strong> also uses 100-900k blocks (900k by default)</li><li>it is not clear if <strong>lbzip2</strong> is somewhat less widely tested than <strong>pbzip2</strong></li><li><strong>lbzip2</strong>&#8216;s author has <a
href="https://lists.debian.org/debian-mentors/2009/02/msg00135.html">performed some testing</a> (back in 2009, mind you!), and these were the most important results:</li><ul><li><strong>lbzip2</strong> is better when decompressing from a pipe, no matter the producer, and also when the compressed input coming from a regular file is single stream</li><li><strong>pbzip2</strong> beats <strong>lbzip2</strong> when the compressed input is coming from a regular file and is multi-stream (yes, pbzip2 can decompress even lbzip2&#8242;s compressed output faster than lbzip2 itself, when it&#8217;s coming from a regular file) <em>note: if you check the vbsupport benchmark above, you&#8217;ll see that lbzip2 had probably fixed slight lagging behind pbzip2 for regular multi-stream files; this improvement is also confirmed by my testing</em></li></ul></ul><p>So, at least in theory <strong>lbzip2</strong> is indeed better than <strong>pbzip2</strong>, even if only at faster decompression of <strong>bzip2</strong>-compressed files.</p><p>While looking for benchmarks, I&#8217;ve found <a
href="https://aliver.wordpress.com/2010/06/22/huge-unix-file-compresser-shootout-with-tons-of-datagraphs/">this one</a> (old but good), which highly praises <strong>lzop</strong> compressor. Apparently, <strong>lzop</strong> is noticeably faster than even <strong>gzip</strong>, and compresses only a little bit worse. However, I am not really interested in a faster gzip: I need something with much better compression, but still fast enough for multi-gigabyte files.</p><p>Next, I have stumbled upon <a
href="http://www.nongnu.org/lzip/lzip.html">lzip</a> and <a
href="http://www.nongnu.org/lzip/plzip.html">plzip</a> (.lz). What are these compressors?</p><ul><li><strong>plzip</strong> is a parallel version of <strong>lzip</strong>, and fully lzip-compatible</li><li><strong>lzip</strong> is an LZMA compressor</li><li>reading the documentation leaves an impression that <strong>[p]lzip</strong> achieves better compression, is slower, and needs much more RAM than competing compressors</li><li>there is a special utility called <strong>lziprecover</strong>, which helps recover data from damaged lzip archives, by leveraging, on the one hand, CRC checksums of compressed blocks, and, on the other, multiple damaged copies of the archive (if available)</li><li>from the official website:<br
/><blockquote><p><strong>Lzip</strong> is a lossless data compressor with a user interface similar to the one of <strong>gzip</strong> or <strong>bzip2</strong>. <strong>Lzip</strong> is about as fast as <strong>gzip</strong>, compresses most files more than <strong>bzip2</strong>, and is better than both from a data recovery perspective.</p></blockquote></li><li>default &#8220;member&#8221; (compressed block/chunk) size is 4 <em>petabytes</em>, but can be set to a lower value (minimal 100kb), mimicking bzip2&#8242;s chunk size</li><li>supports multiple, independent volumes (loosing one volume will still allow recovering data from all other volumes)</li><li>with multiple cores, <strong>plzip</strong> creates multi-member files by default (but it is not clear, what is the size of these members? Default is said to be twice the dictionary size, but default for dictionary size is not specified in the manual &#8211; so lzip/plzip seem to require compression level -1&#8230;-9 specification)</li><li><a
href="https://aliver.wordpress.com/2010/06/22/huge-unix-file-compresser-shootout-with-tons-of-datagraphs/">here</a> <strong>lzip</strong> compresses a little bit better than <strong>xz</strong> without the <code>--extreme</code> option</li><li><strong>(l|p)bzip2</strong> should still be faster than either <strong>lzip</strong> or <strong>xz</strong></li><li>I started mentioning <strong>xz</strong>, because <strong>lzip</strong> and <strong>xz</strong> (at least historically) are competing LZMA-based compressors</li><li>a 1 year old <a
href="https://blogs.gentoo.org/mgorny/2014/02/22/a-few-words-on-lzip-compressor/">opinion</a> makes the following statements about lzip:</li><ul><li><strong>lzip</strong> is a marginal archiver with no real benefits since the appearance of <strong>xz</strong> (<em>note: <strong>xz</strong> is a successor of lzma-utils</em>)</li><li><strong>xz</strong> is more popular, more widely accepted</li><li><strong>xz</strong> has a community, while <strong>lzip</strong> has 1 author</li><li>performance of <strong>xz</strong> and <strong>lzip</strong> is comparable</li><li><strong>xz</strong> has more features</li><li>but <strong>lzip</strong> does indeed have a recovery utility that <strong>xz</strong> doesn&#8217;t</li></ul></ul><p>That doesn&#8217;t really tell us much on how <strong>plzip</strong>/<strong>lzip</strong> compare to, say, <strong>pbzip2</strong>. But before performance, let us pay some more attention to long-term storage features of <strong>lzip</strong>:</p><blockquote><p>The <strong>lzip</strong> file format is designed for data sharing and long-term archiving, taking into account both data integrity and decoder availability:</p><ul><li>The <strong>lzip</strong> format provides very safe integrity checking and some data recovery means. The <strong>lziprecover</strong> program can repair bit-flip errors (one of the most common forms of data corruption) in <strong>lzip</strong> files, and provides data recovery capabilities, including error-checked merging of damaged copies of a file.</li><li>The <strong>lzip</strong> format is as simple as possible (but not simpler). The <strong>lzip</strong> manual provides the code of a simple decompressor along with a detailed explanation of how it works, so that with the only help of the <strong>lzip</strong> manual it would be possible for a <em>digital archaeologist</em> to extract the data from a <strong>lzip</strong> file long after quantum computers eventually render LZMA obsolete.</li><li>Additionally, the <strong>lzip</strong> reference implementation is copylefted, which guarantees that it will remain free forever.</li></ul></blockquote><p>(I really liked the part about the <em>digital archaeologist</em>! And the copyleft, to a lesser extent.)</p><p>Looks really attractive! Because what I am using compressors for is, essentially, longer-term archiving, with unpredictable needs to sometimes decompress some of the files. And, of course, storage media will fail fully or partially, so recovering is important, too. But what is this <strong>xz</strong> compressor?.. I&#8217;ve seen it before, in the contexts with words &#8220;overtake the world&#8221; or similar&#8230;</p><p><strong>xz</strong></p><ul><li><strong>much</strong> more complex file format than <strong>lzip</strong>, but  maybe it has some benefits for client programs and/or recovery?</li><li>supports integrity checks and multiple compressed blocks</li><li>according to this <a
href="http://gcc.gnu.org/ml/gcc/2012-03/msg00549.html">post from 2012</a>, <strong>xz</strong> (single-threaded) both compressed and decompressed much faster than <strong>lzip</strong>&#8230; and <strong>lrzip</strong> (depends on settings, of course)</li><li><strong>lzip</strong> is older than <strong>xz</strong>, and was better than <strong>xz</strong> predecessor &#8211; <strong>lzma-utils</strong></li><li><strong>xz</strong> is adopted by some linux distributions and software projects for package compression</li><li><strong>xz</strong> does not seem to have an equivalent of <strong>lziprecover</strong></li><li><strong>tar</strong> supports both <code>--lzip</code> and <code>--xz</code>, also with <code>--auto-compress</code></li></ul><p>This hasn&#8217;t really added any clarity, has it? Moreover, we now have one more unknown &#8211; the <a
href="https://github.com/ckolivas/lrzip" title="long-range zip">lrzip</a> compressor. <strong>lrzip</strong> is a redundancy compressor with LZO, gzip, bzip2, ZPAQ and LZMA back-ends. It is highly efficient for highly redundant data, even if redundancies are separated with long stretches of other data. (FASTQ files are fairly redundant, though <strong>bzip2</strong> seems to utilize that fairly well already; can <strong>lrzip</strong> do better?)</p><p>However, what if a part of the archive is damaged? How much information is lost then? Is it at all possible to recover some of the data from damaged .lrz archives?<br
/> <a
href="http://ck.kolivas.org/apps/lrzip/README.benchmarks">Author&#8217;s benchmarks</a> showcase how good <strong>lrzip</strong> is at redundant data compression (although <strong>lrzip</strong> is multithreaded, so comparison in the benchmark to non-multithreaded algorithm implementations is not quite correct&#8230;). Damaged archive recovery concerns would have prevented me from using <strong>lrzip</strong> anyway, but I was really interested if a &#8220;long-range redundancy&#8221; compressor can do better than usual, &#8220;short-range redundancy&#8221; compressors.</p><p><strong>My testing setup</strong></p><blockquote><ul><li>Debian testing 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt7-1 (2015-03-01) x86_64 GNU/Linux</li><li>Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (4 physical cores with HT enabled: 8 hardware threads)</li><li>16GiB RAM</li><li>test file name: test.fastq</li><li>test file size: 2 223 860 346 bytes (a little over 2 gigabytes)</li><li>test file was copied once to RAM-mounted /tmp, to exclude any I/O bottleneck effects on compression speeds</li><li>bzip2: 1.0.6</li><li>lbzip2: 2.5</li><li>pbzip2: 1.1.9</li><li>xz: 5.1.0alpha</li><li>plzip: 1.2</li><li>lrzip: 0.616</li><li>command execution time and maximal process RSS memory were measured with <code>/usr/bin/time -f '%C: %e s, %M Kb' compressor arguments</code> (note: this is <strong>not</strong> bash&#8217;s built-in <strong>time</strong>); please note that memory measurement can be incorrect for multithreaded compressors</li></ul></blockquote><p>Below come testing results. I have not put them into a single table, but I do comment the results in a few places. Entire testing followed this pattern:</p><ul><li>compress test.fastq, deleting the original</li><li>test compressed archive (<em>note: this was done only for some compressors, not all</em>)</li><li>decompress archive back to test.fastq, delete archive</li><li>if 3 previous steps are fast enough: repeat 1-2 more times (but only show the best result below); otherwise continue</li><li>repeat with the next compressor</li></ul><p><strong>bzip2: 309 159 275 bytes</strong><br
/> <strong>bzip2</strong> was used as a baseline, to highlight speed benefits of both <strong>lbzip2</strong> and <strong>pbzip2</strong>.</p><blockquote><p> test.fastq:  7.193:1,  1.112 bits/byte, 86.10% saved, 2223860346 in, 309159275 out.<br
/> <strong>bzip2</strong> -v test.fastq: <strong>190.63 s</strong>, 7608 Kb<br
/> <strong>bzip2</strong> -v -d test.fastq.bz2: <strong>51.58 s</strong>, 4620 Kb</p></blockquote><p><strong>Bzip2</strong> is neither particularly slow, nor particularly fast. It also seems to have modest memory requirements.</p><p><strong>pbzip2: 310 462 610 bytes</strong><br
/> <strong>pbzip2</strong> is the currently used reference. For any other compressor to become a successor of <strong>pbzip2</strong>, that other compressor must be either a little faster (while compressing as good as <strong>pbzip2</strong>), or a little better compressor (while being as fast as <strong>pbzip2</strong>), or both. Note that compressed file size is only a tiny bit larger than with <strong>bzip2</strong>.</p><blockquote><p> &#8220;test.fastq.bz2&#8243;: compression ratio is 1:7.163, space savings is 86.04%<br
/> <strong>pbzip2</strong> -v test.fastq: <strong>46.22 s</strong>, 67436 Kb<br
/> <strong>pbzip2</strong> -dv test.fastq.bz2: <strong>19.80 s</strong>, 46672 Kb</p></blockquote><p>Interestingly, <code>pbzip2 --test</code> uses 1 thread only (but also consumes only 6MB RAM), resulting in decompression times similar to those of <strong>bzip2</strong>. <strong>lbzip2</strong> uses all 8 threads also during testing.</p><p><strong>lbzip2: 311 040 543 bytes</strong></p><blockquote><p> lbzip2: compressing &#8220;test.fastq&#8221; to &#8220;test.fastq.bz2&#8243;<br
/> lbzip2: &#8220;test.fastq&#8221;: compression ratio is 1:7.150, space savings is 86.01%<br
/> <strong>lbzip2</strong> -v test.fastq: <strong>22.67 s</strong>, 49812 Kb</p><p>lbzip2: decompressing &#8220;test.fastq.bz2&#8243; to &#8220;test.fastq&#8221;<br
/> lbzip2: &#8220;test.fastq.bz2&#8243;: compression ratio is 1:7.150, space savings is 86.01%<br
/> <strong>lbzip2</strong> -vd test.fastq.bz2: <strong>18.86 s</strong>, 46652 Kb</p></blockquote><p>I repeated <strong>pbzip2</strong> and <strong>lbzip2</strong> tests several times, and it was always that <strong>lbzip2</strong> compressed this same file about twice as fast&#8230; Wow! Decompression speed is about the same, compressed file size is marginally larger than with <strong>pbzip2</strong>. Overall, <strong>lbzip2</strong> does look like a new drop-in replacement of <strong>bzip2</strong>/<strong>pbzip2</strong> for me.</p><p><strong>xz -0 &ndash;&ndash;threads=8: 517 967 372 bytes</strong><br
/> I would call this one <em>major test disappointment</em>. Default setting, -6, was way too slow (estimated 28 minutes to compress!!!). Even the fastest -0 setting was still too slow! And here&#8217;s one of the reasons, straight from the <strong>xz</strong> man page:</p><blockquote><p> Multithreaded compression and decompression are not implemented yet, so this option has no effect for now. As of writing (2010-09-27), it hasn&#8217;t been decided if threads will be used by default on multicore systems once support for threading has been implemented.</p></blockquote><p>Also, I forgot to use the <code>--block-size=900k</code> option, but that seems to be of no concern with such results:</p><blockquote><p> 100 %     492.5 MiB / 2,120.8 MiB = 0.232    18 MiB/s       1:59<br
/> <strong>xz</strong> -0 -v test.fastq: <strong>119.25 s</strong>, 4780 Kb<br
/> <strong>xz</strong> &ndash;&ndash;test &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq.xz: <strong>36.00 s</strong>, 2568 Kb<br
/> 100 %     492.5 MiB / 2,120.8 MiB = 0.232    58 MiB/s       0:36<br
/> <strong>xz</strong> -d -v test.fastq.xz: <strong>36.54 s</strong>, 2500 Kb</p></blockquote><p><strong>xz -0</strong> was both slower and had significantly worse compression when compared to <strong>lbzip2</strong> and <strong>pbzip2</strong>. <strong>xz -0</strong> was faster than good old <strong>bzip2</strong>, but had significantly worse compression&#8230; Really, <em>major test disappointment</em>.</p><p><strong>plzip: between 407 696 562 and 498 708 539 bytes</strong><br
/> One more <em>major test disappointment</em>. (Or am I somehow using these compressors in a wrong way?&#8230;) I haven&#8217;t found a way to set block/member size (for <strong>lzip</strong>, that would be the <code>-b</code> option). Default speed setting -6 was also way too slow, but settings -1 to -3 were comparable to <strong>pbzip2</strong>, so I did all three.</p><p><strong>plzip -1: 498 708 539 bytes</strong></p><blockquote><p> test.fastq:  4.459:1,  1.794 bits/byte, 77.57% saved, 2223860346 in, 498708539 out.<br
/> <strong>plzip</strong> -1 &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq: <strong>30.27 s</strong>, 126360 Kb (this seems to be per-thread memory&#8230;)<br
/> <strong>plzip</strong> &ndash;&ndash;test &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq.lz: <strong>6.86 s</strong>, 11640 Kb<br
/> <strong>plzip</strong> -d &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq.lz: <strong>7.24 s</strong>, 11644 Kb</p></blockquote><p>Compression speed and ratio: both worse than <strong>lbzip2</strong>. But the fastest testing and decompression so far.</p><p><strong>plzip -2: 456 301 558 bytes</strong></p><blockquote><p> test.fastq:  4.874:1,  1.641 bits/byte, 79.48% saved, 2223860346 in, 456301558 out.<br
/> <strong>plzip</strong> -2 &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq: <strong>38.81 s</strong>, 193416 Kb<br
/> <strong>plzip</strong> &ndash;&ndash;test &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq.lz: <strong>6.26 s</strong>, 14828 Kb<br
/> <strong>plzip</strong> -d &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq.lz: <strong>6.38 s</strong>, 14736 Kb</p></blockquote><p>Compression time worse than <strong>lbzip2</strong>, a little better than <strong>pbzip2</strong>, but compression ratio worse than any one of these. But even faster testing and decompression.</p><p><strong>plzip -3: 407 696 562 bytes</strong></p><blockquote><p> test.fastq:  5.455:1,  1.467 bits/byte, 81.67% saved, 2223860346 in, 407696562 out.<br
/> <strong>plzip</strong> -3 &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq: <strong>63.74 s</strong>, 245756 Kb<br
/> <strong>plzip</strong> &ndash;&ndash;test &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq.lz: <strong>5.82 s</strong>, 18936 Kb<br
/> <strong>plzip</strong> -d &ndash;&ndash;verbose &ndash;&ndash;threads=8 test.fastq.lz: <strong>6.10 s</strong>, 18944 Kb</p></blockquote><p>Even faster testing and decompression! But compression ratio and speed are still worse than <strong>lbzip2</strong> and <strong>pbzip2</strong>.</p><p>And the final contestant, <strong>lrzip</strong>! All 5 back-ends were tested: LZO, gzip, bzip2, LZMA, ZPAQ.</p><p><strong>lrzip</strong> has several peculiarities, which hinder its use as a drop-in replacement for, say, <strong>bzip2</strong>. Most importantly, when a file is compressed, it is not deleted, unless a <code>-D</code> options is specified. Unlike <strong>pbzip2</strong> and <strong>lbzip2</strong>, which use all available CPUs/cores by default, <strong>lrzip</strong> only uses 2 by default (<code>-p 8</code> in the results below requests use of 8 cores). Another unusual feature is that during testing a file is uncompressed to a storage medium, and then deleted; almost all the other compressors only verify the decompressed data stream, which is then immediately discarded and never written to storage medium. Related feature is a <code>-c</code> option, which performs file verification after decompression by reading the decompressed file from storage medium and comparing it to the decompressed stream. <strong>lrzip</strong> also stores MD5 hashes of data, and allows verifying these. <strong>lrzip</strong> comes with several helper scripts &#8211; for example, one which allows tarballing and lrzipping a chosen directory in a single command. Actually, <strong>lrzip</strong> is more of an archive utility, and not just a compressor.</p><p><strong>lrzip -D -p 8: 334 504 383 bytes</strong><br
/> In this default (LZMA) mode, <strong>lrzip</strong> starts with 1 thread, but eventually uses more and more cores (though never all 8, or I haven&#8217;t noticed this). Decompressing seems to use more threads, but that also depends on the back-end used (the slower it is &#8211; the more threads will be used, e.g. ZPAQ versus LZO).</p><blockquote><p> test.fastq &#8211; Compression Ratio: 6.648. Average Compression Speed:  3.113MB/s.<br
/> Total time: 00:11:21.85<br
/> <strong>lrzip</strong> -D -p 8 test.fastq: <strong>681.84 s</strong>, 3331080 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB<br
/> Average DeCompression Speed: 124.706MB/s<br
/> [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:00:17.13<br
/> <strong>lrzip</strong> -t -p 8 test.fastq.lrz: <strong>17.21 s</strong>, 2567608 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB<br
/> Average DeCompression Speed: 117.778MB/s<br
/> Output filename is: test.fastq: [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:00:17.59<br
/> <strong>lrzip</strong> -d -p 8 -D test.fastq.lrz: <strong>17.67 s</strong>, 2567664 Kb</p></blockquote><p>In the default LZMA mode, lrzip is significantly slower than even bzip2, and has somewhat worse compression ratio. Yes, this is the 3rd <em>major test disappointment</em>.</p><p><strong>gzip back-end: lrzip -g -L 9 -D -p 8: 430 013 769 bytes</strong><br
/> Despite specifying <code>-p 8</code>, <strong>lrzip</strong> mostly operates in 1 thread, and only sometimes in 2 (probably invokes <strong>gzip</strong> library). Testing is also done with 1 thread only, but is very fast (but slower than <strong>plzip</strong>). The <code>-L 9</code> option is supposed to be translated into -9 for gzip; as this normally has nearly no effect, it wasn&#8217;t used in the following <strong>lrzip</strong> tests.</p><blockquote><p> test.fastq &#8211; Compression Ratio: 5.172. Average Compression Speed:  0.704MB/s.<br
/> Total time: 00:50:11.34<br
/> <strong>lrzip</strong> -p 8 -g -L 9 -D test.fastq: <strong>3011.34 s</strong>, 2745520 Kb</p><p>100%    2120.84 /   2120.84 MB<br
/> Average DeCompression Speed: 163.077MB/s<br
/> [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:00:12.71<br
/> <strong>lrzip</strong> -t -p 8 test.fastq.lrz: <strong>12.79 s</strong>, 2577632 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB<br
/> Average DeCompression Speed: 163.077MB/s<br
/> Output filename is: test.fastq: [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:00:12.88<br
/> <strong>lrzip</strong> -d -p 8 -D test.fastq.lrz: <strong>12.95 s</strong>, 2577728 Kb</p></blockquote><p>And again, compression speed <strong>and</strong> ratio are worse than for <strong>bzip2</strong>&#8230;</p><p><strong>LZO back-end: lrzip -l -D -p 8: 766 520 776 bytes</strong></p><blockquote><p> test.fastq &#8211; Compression Ratio: 2.901. Average Compression Speed:  4.690MB/s.<br
/> Total time: 00:07:32.89<br
/> <strong>lrzip</strong> -l -D -p 8 test.fastq: <strong>452.88 s</strong>, 2714452 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB<br
/> Average DeCompression Speed: 212.000MB/s<br
/> [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:00:10.58<br
/> <strong>lrzip</strong> -t -p 8 test.fastq.lrz: <strong>10.66 s</strong>, 2582516 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB<br
/> Average DeCompression Speed: 192.727MB/s<br
/> Output filename is: test.fastq: [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:00:11.32<br
/> <strong>lrzip</strong> -d -p 8 -D test.fastq.lrz: <strong>11.39 s</strong>, 2582504 Kb</p></blockquote><p>No comments.</p><p><strong>bzip2 back-end: lrzip -b -D -p 8: 353 473 476 bytes</strong></p><blockquote><p> test.fastq &#8211; Compression Ratio: 6.291. Average Compression Speed:  4.473MB/s.<br
/> Total time: 00:07:53.95<br
/> <strong>lrzip</strong> -b -D -p 8 test.fastq: <strong>473.94 s</strong>, 2781104 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB<br
/> Average DeCompression Speed: 68.387MB/s<br
/> [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:00:30.69<br
/> <strong>lrzip</strong> -t -p 8 test.fastq.lrz: <strong>30.77 s</strong>, 2583156 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB<br
/> Average DeCompression Speed: 66.250MB/s<br
/> Output filename is: test.fastq: [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:00:31.92<br
/> <strong>lrzip</strong> -d -p 8 -D test.fastq.lrz: <strong>32.00 s</strong>, 2583108 Kb</p></blockquote><p>Hadn&#8217;t I done all of these simple tests myself, by now I&#8217;d think that this test was <em>rigged</em> to show how good <strong>pbzip2</strong> and <strong>lbzip2</strong> are at compressing FASTQ files <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /></p><p><strong>ZPAQ back-end: lrzip -z -D -p 8: 292 380 439 bytes</strong></p><blockquote><p> test.fastq &#8211; Compression Ratio: 7.606. Average Compression Speed:  2.804MB/s.%  7:100%<br
/> Total time: 00:12:36.51<br
/> <strong>lrzip</strong> -z -D -p 8 test.fastq: <strong>756.51 s</strong>, 3585740 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB	1:100%  2:100%  3:100%  4:100%  5:100%  6:100%  7:100%<br
/> Average DeCompression Speed:  3.970MB/s<br
/> [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:08:54.57<br
/> <strong>lrzip</strong> -t -p 8 test.fastq.lrz: <strong>534.65 s</strong>, 2583424 Kb</p><p>Decompressing&#8230;<br
/> 100%    2120.84 /   2120.84 MB	1:100%  2:100%  3:100%  4:100%  5:100%  6:100%  7:100%<br
/> Average DeCompression Speed:  3.759MB/s<br
/> Output filename is: test.fastq: [OK] &#8211; 2223860346 bytes<br
/> Total time: 00:09:24.27<br
/> <strong>lrzip</strong> -d -p 8 -D test.fastq.lrz: <strong>564.36 s</strong>, 2583460 Kb</p></blockquote><p><strong>Finally!!!</strong> We have compression better than <strong>bzip2</strong>! But it is also much slower than <strong>bzip2</strong> (and some 12 times slower than <strong>pbzip2</strong>), so not really an option. Alas. And decompression time is the worst in the test &#8211; almost <strong>10 minutes</strong> for what <strong>plzip</strong> does in under <strong>7 seconds</strong>! (I do realize that compression ratio is also different &#8211; but not <strong>that</strong> much.) I wonder if slow <strong>lrzip</strong> speeds have anything to do with test.fastq being effectively in RAM? I do not know if there are any performance penalties to <strong>mmap</strong>ing a file which is already on a RAM-mounted partition.</p><p>The test.fastq file that I&#8217;ve used was somehow really hard for the tested compressors to tackle as fast and as good as <strong>lbzip2</strong> and <strong>pbzip2</strong> could&#8230;</p><p>Questions? Comments? Improvements, including plots of these figures? Comment below.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F28%2Fcompressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html&amp;linkname=Compressors%20galore%3A%20pbzip2%2C%20lbzip2%2C%20plzip%2C%20xz%2C%20and%20lrzip%20tested%20on%20a%20FASTQ%20file" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F28%2Fcompressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html&amp;linkname=Compressors%20galore%3A%20pbzip2%2C%20lbzip2%2C%20plzip%2C%20xz%2C%20and%20lrzip%20tested%20on%20a%20FASTQ%20file" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F28%2Fcompressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html&amp;linkname=Compressors%20galore%3A%20pbzip2%2C%20lbzip2%2C%20plzip%2C%20xz%2C%20and%20lrzip%20tested%20on%20a%20FASTQ%20file" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F28%2Fcompressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html&amp;linkname=Compressors%20galore%3A%20pbzip2%2C%20lbzip2%2C%20plzip%2C%20xz%2C%20and%20lrzip%20tested%20on%20a%20FASTQ%20file" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F28%2Fcompressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html&amp;linkname=Compressors%20galore%3A%20pbzip2%2C%20lbzip2%2C%20plzip%2C%20xz%2C%20and%20lrzip%20tested%20on%20a%20FASTQ%20file" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F28%2Fcompressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html&#038;title=Compressors%20galore%3A%20pbzip2%2C%20lbzip2%2C%20plzip%2C%20xz%2C%20and%20lrzip%20tested%20on%20a%20FASTQ%20file" data-a2a-url="https://bogdan.org.ua/2015/03/28/compressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html" data-a2a-title="Compressors galore: pbzip2, lbzip2, plzip, xz, and lrzip tested on a FASTQ file"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2015/03/28/compressors-galore-pbzip2-lbzip2-plzip-xz-and-lrzip-tested-on-a-fastq-file.html/feed</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Looking for a perfect Android app for TSW/GTD use</title><link>https://bogdan.org.ua/2015/03/13/looking-for-a-perfect-android-app-for-tsw-gtd-use.html</link> <comments>https://bogdan.org.ua/2015/03/13/looking-for-a-perfect-android-app-for-tsw-gtd-use.html#comments</comments> <pubDate>Thu, 12 Mar 2015 22:49:31 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[Comparison]]></category> <category><![CDATA[Links]]></category> <category><![CDATA[Misc]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Calendar]]></category> <category><![CDATA[GTD]]></category> <category><![CDATA[Keep]]></category> <category><![CDATA[productivity]]></category> <category><![CDATA[project management]]></category> <category><![CDATA[RTM]]></category> <category><![CDATA[task management]]></category> <category><![CDATA[time management]]></category> <category><![CDATA[Trello]]></category> <category><![CDATA[TSW]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2250</guid> <description><![CDATA[I have recently realized that my planning habits are quite similar to what The Secret Weapon promotes. However, my planning is not as elaborate and detailed/structured as TSW, and I am using several tools: Google Keep, an awesome note-taking and to-do lists application with a really good web-interface, and free; Trello, convenient lists/projects/tasks management platform [&#8230;]]]></description> <content:encoded><![CDATA[<p>I have recently realized that my planning habits are quite similar to what <a
href="http://www.thesecretweapon.org/">The Secret Weapon</a> promotes. However, my planning is not as elaborate and detailed/structured as <abbr
title="The Secret Weapon">TSW</abbr>, and I am using several tools:</p><ul><li><a
href="https://play.google.com/store/apps/details?id=com.google.android.keep">Google Keep</a>, an awesome note-taking and to-do lists application with a really good web-interface, and free;</li><li><a
href="https://play.google.com/store/apps/details?id=com.trello">Trello</a>, convenient lists/projects/tasks management platform (especially for group work), and free;</li><li><a
href="https://play.google.com/store/apps/details?id=com.google.android.calendar">Google Calendar</a>, the <em>de facto</em> calendar standard for Android phones, and free;</li><li>my A5 format <a
href="http://www.amazon.de/weekview-compact-2015-clevere-Wochenplaner/dp/B00EDHZR9U">weekly paper planner</a>, and&#8230; the only not free component.</li></ul><p>It is easy to see that I am using too many tools.</p><p>In an effort to use less tools, and also to try some of the features of <abbr
title="The Secret Weapon">TSW</abbr>, I&#8217;ve performed a brief search for <abbr
title="Getting Things Done">GTD</abbr>/<abbr
title="The Secret Weapon">TSW</abbr>-compatible Android apps.</p><p><a
href="http://www.thesecretweapon.org/">TSW website</a> is built around the Evernote app. However, I am not sure if this would be a good solution for me, as I have been already using Evernote since several years for longer-term note-keeping, and thus already have a bunch of notepads, notes, and tags there. Moreover, Evernote&#8217;s website mentions something about &#8220;offline notes&#8221; in the Premium (non-free) tier for mobile apps; this hints at the requirement to have internet connectivity to be able to work with TSW+Evernote efficiently through the day.</p><p>Oh, before I forget: all the 4 tools that I am using have their purpose, with overlap between Keep and Trello.<br
/> My A5 format paper planner (weekview compact 2015) is not a simple weekly planner; it has a structure that stimulates goal-oriented planning.<br
/> More specifically, it provides means to plan:<br
/> <span
id="more-2250"></span></p><ul><li>the entire life, by specifying (succinct) goals in several categories (personal, work, family, social, and some others);</li><li>the next several years (there is enough space for just a few keywords for each year);</li><li>the entire current year (as an overview or a list of goals, without too many details);</li><li>each quarter of the current year (with more details: goals/tasks can have specific days or date ranges assigned, and have 3 priorities);</li><li>each week has 3 priorities for what you would like to accomplish;</li><li>there are also other important, useful, and well-designed elements, all with high attention to details.</li></ul><p>I mostly use the paper planner for quarter-level goals and tasks.</p><p>Trello is my primary project and task management tool, both for work and personal matters (using different boards).<br
/> It also really simplifies my weekly reports: I only have to check the <strong>Done</strong> list of the primary/project work board,<br
/> and show it to my supervisor &#8211; which (showing/sharing) is also easy with Trello.</p><p>I&#8217;m using Calendar for all the events which have specific dates/times, like meetings, deadlines, celebrations, etc.</p><p>Finally, I&#8217;ve started using Keep not that long ago as a to-do list and note-taking application. It is extremely easy and quick to use, which explains this new adoption. I use it mostly as a short-term buffer for quick (shorter than 2 hours) tasks. I have 3 separate lists: home, work, and shopping <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> The only component which is missing if I want to use TSW is tagging of individual checklist items, together with tags search. Other than that, Google Keep is plain perfect.</p><p>The first app I had a look at was <a
href="https://play.google.com/store/apps/details?id=com.dg.gtd.android.lite">DGT GTD (alpha)</a>:</p><ul><li>has &#8220;@-contexts&#8221;;</li><li>has tags;</li><li>has search for arbitrary tag combinations (both <strong>AND</strong> and <strong>OR</strong> logic);</li><li>no web interface, uses toodledo/dropbox/ftp for sync;</li><li>web-interface might be available through toodledo (which has its own limitations, see below);</li><li>overall: alpha, no easy-to-use web-interface, unclear future&#8230; though otherwise seems good.</li></ul><p>Next, I had a look at <a
href="https://play.google.com/store/apps/details?id=com.kiwlm.mytoodle">Toodledo</a>:</p><ul><li>has a free, but (seemingly quite strongly) limited version; in addition, it felt</li><li>somehow not easy to register, thus I have not tried it.</li></ul><p>Next was <a
href="https://play.google.com/store/apps/details?id=net.mylifeorganized.mlo">MyLifeOrganized</a>:</p><ul><li>way too commercial all over &#8211; you seem to need many pieces of (paid) software, (paid) cloud sync, (paid) plans&#8230;</li><li>no web-interface and no Linux support, only Win/Mac/iOS/Android, thus have not tried this one as well.</li></ul><p>I was leaving better contestants (like RTM, <a
href="https://play.google.com/store/apps/details?id=com.rememberthemilk.MobileRTM">Remember The Milk</a>) for later:</p><ul><li>nice, convenient, light, keyboard-friendly web-interface;</li><li>free version syncs with web, but only once every 24 hours;</li><li>has locations (GPS-based) and tags;</li><li>has inbox, personal, work, study, sent pre-defined lists of tasks; you can define your own (and delete 3 of the pre-defined, if you wish);</li><li>can search for multiple tags using brackets, logical operators, and multiple per-task attribute filters (like timeEstimate, dueDate, etc &#8211; many of these!);</li><li>can save searches as smart lists (at least in the Android app);</li><li>tasks cannot be ordered manually, they can only be sorted by priority, due date, or name.</li></ul><p>I can see myself using RTM, which feels like a quality tasks-management environment. Syncing once every 24 hours is the only free version limitation that I am sensitive to, because I tend to use web-versions (Trello, Keep) while at the computer. If you are using for planning your phone only, then RTM might be a very good fit for you.</p><p>Another detail which I find inconvenient is the inability to manually sort tasks. As I know from using Keep, manually sorting smaller tasks into their logical order by dragging is quick and easy. This RTM drawback could be worked around by sorting task list by name, and devoting the first 2 characters of the task text to its number (e.g. &#8217;06 start scaffolding&#8217;). I am still unsure about RTM.</p><p>Given the failure of the new contestants to fit my needs, I also had a quick formal look at the tools I am already using.</p><p><a
href="https://play.google.com/store/apps/details?id=com.evernote">Evernote</a>:</p><ul><li>recommended by TSW website;</li><li>has tags and saved tag searches;</li><li>not sure if it keeps all notes available offline &#8211; it likely needs connection to function; it may keep the most recent notes offline, though &#8211; still have to test this;</li><li>not exactly a to-do list, thus (much more?) cumbersome to use than Google Keep (again, this wasn&#8217;t tested yet &#8211; consider this a prejudice);</li><li>free version has a 60 MB/month data upload limit, which should be more than enough for tasks management.</li></ul><p>I am going to try Evernote with TSW, and see if that works good enough. I&#8217;ll update the post with the results.</p><p><a
href="https://play.google.com/store/apps/details?id=com.google.android.keep">Google Keep</a>:</p><ul><li>very easy and convenient to use checklists;</li><li>keeps all tasks local and always available; works offline, syncs when you have connection;</li><li>has an efficient, quick-to-use web-interface;</li><li>does not have tagging (only colors for notes);</li><li>lightweight in terms of size and resources needed.</li></ul><p>I&#8217;ll keep using keep, even if some other app becomes my primary for tasks management. It is simply too good not to use.</p><p><a
href="https://play.google.com/store/apps/details?id=com.trello">Trello</a>:</p><ul><li>has a fairly convenient web-interface (though more complicated than Keep because of more features);</li><li>allows easy collaboration;</li><li>supports multiple boards, containing task lists, containing tasks, containing checklists and other elements, which all together enable fairly complex project management;</li><li>phone app caches tasks/boards that you access while online, and can later show those while offline, but</li><li>phone app does not allow changes while offline &#8211; you must have connection for the changes to have effect;</li><li>has tags (labels), but these are board-specific, so it is impossible to get a flat list of all tasks from all boards filtered by some labels/criteria.</li></ul><p>Right now I have tons of tasks in Trello, so I am not going to abandon it any time soon (unless I find a perfect alternative solution). I have already seen recipes online to adapt Trello to TSW/GTD use. This will not fix the necessity for internet connection for the app to work, though. It is also quite possible that tags + global flat list of all tasks from all boards might get introduced as new features into Trello, as it is developing dynamically and new features do get added quite often&#8230; Maybe I should leave a feature request for the developers, together with a thank-you for their excellent product.</p><p>That&#8217;s it for now, I&#8217;ll update after some more app testing.</p><p><ins
datetime="2015-03-26T20:15:46+00:00">Update 1</ins>: Trello can be quite convenient as a general GTD-like (but not quite TSW-like) app. I&#8217;ve set up a separate <strong>GTD</strong> board, with lists <strong>inbox</strong>, <strong>now</strong>, <strong>next</strong>, <strong>later</strong>, 8 project/watching/reading lists, 2 goal lists (one for the current year, one with general goals), <strong>some day</strong>, <strong>contemplate</strong> (no clear decision if an item has to be done at all), <strong>waiting</strong>, <strong>done</strong>, and <strong>discarded</strong> (something from any of the other lists which is [no longer] worth doing).</p><p><ins
datetime="2015-03-26T20:15:46+00:00">Update 2</ins>: Google Keep now has labels (<abbr
title="also known as">aka</abbr> tags)! (It now also has recurring reminders, which is cool as well.) Tags seemed to be the only thing keeping (no pun intended) Keep from being a perfectly simple and lightweight GTD/TSW app! Or so I thought. Unfortunately, there does not appear to be any way to search by several labels right now. You can search by note colors, and can select a single label to list all notes that have it, but no multiple labels&#8230; One last step missing to perfection?</p><p>Leave comments if some of my statements seem wrong, or if you know a solution which would be capable of satisfying my needs <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F13%2Flooking-for-a-perfect-android-app-for-tsw-gtd-use.html&amp;linkname=Looking%20for%20a%20perfect%20Android%20app%20for%20TSW%2FGTD%20use" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F13%2Flooking-for-a-perfect-android-app-for-tsw-gtd-use.html&amp;linkname=Looking%20for%20a%20perfect%20Android%20app%20for%20TSW%2FGTD%20use" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F13%2Flooking-for-a-perfect-android-app-for-tsw-gtd-use.html&amp;linkname=Looking%20for%20a%20perfect%20Android%20app%20for%20TSW%2FGTD%20use" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F13%2Flooking-for-a-perfect-android-app-for-tsw-gtd-use.html&amp;linkname=Looking%20for%20a%20perfect%20Android%20app%20for%20TSW%2FGTD%20use" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F13%2Flooking-for-a-perfect-android-app-for-tsw-gtd-use.html&amp;linkname=Looking%20for%20a%20perfect%20Android%20app%20for%20TSW%2FGTD%20use" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2015%2F03%2F13%2Flooking-for-a-perfect-android-app-for-tsw-gtd-use.html&#038;title=Looking%20for%20a%20perfect%20Android%20app%20for%20TSW%2FGTD%20use" data-a2a-url="https://bogdan.org.ua/2015/03/13/looking-for-a-perfect-android-app-for-tsw-gtd-use.html" data-a2a-title="Looking for a perfect Android app for TSW/GTD use"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2015/03/13/looking-for-a-perfect-android-app-for-tsw-gtd-use.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>My smartd.conf, explained</title><link>https://bogdan.org.ua/2015/02/28/my-smartd-conf-explained.html</link> <comments>https://bogdan.org.ua/2015/02/28/my-smartd-conf-explained.html#comments</comments> <pubDate>Fri, 27 Feb 2015 23:01:11 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[how-to]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[SMART]]></category> <category><![CDATA[smartd]]></category> <category><![CDATA[smartd.conf]]></category> <category><![CDATA[smartmontools]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2216</guid> <description><![CDATA[After fixing offline uncorrectable sector warning email, I have taken a closer look at my /etc/smartd.conf, and now it looks like this: DEFAULT -d sat -H -f -p -t -W 0,40,45 -n standby -S on -m example@example.com # Attributes 1, 230, and 231 are very important (-r 1! -r 230! -R 230! -r 231! -R [&#8230;]]]></description> <content:encoded><![CDATA[<p>After <a
href="http://bogdan.org.ua/2015/02/26/how-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html">fixing offline uncorrectable sector warning email</a>, I have taken a closer look at my /etc/<strong>smartd.conf</strong>, and now it looks like this:</p><blockquote><p> DEFAULT -d sat -H -f -p -t -W 0,40,45 -n standby       -S on -m example@example.com<br
/> # Attributes 1, 230, and 231 are very important (-r 1! -r 230! -R 230! -r 231! -R 231!), but likely covered by -t.<br
/> /dev/sda -s (S/../../6/01|L/../(01|02|03|04|05|06|07)/7/00) -C 0 -I 189 -I 194<br
/> # -a implies -f and -p (through -t)<br
/> DEFAULT -d sat -a -I 194   -W 0,40,45 -n standby -o on -S on -m example@example.com<br
/> /dev/sdb -s (S/../../6/02|L/../(01|02|03|04|05|06|07)/7/02)<br
/> # This drive does not decrement Offline_Uncorrectable (198) after re-allocation,<br
/> # so only monitoring for increase, not for non-zero value.<br
/> /dev/sdc -s (S/../../6/03|L/../(01|02|03|04|05|06|07)/7/04) -U 198+<br
/> # This drive has 40 &#8220;normally&#8221;.<br
/> /dev/sdd -s (S/../../6/04|L/../(01|02|03|04|05|06|07)/7/06) -W 0,42,45</p></blockquote><p><em>Note: explanations below are intentionally simplified; please consult <strong>man smartd.conf</strong> for more precise, complete, and up-to-date information.</em></p><p>Ok, so what do these settings mean, and how is this different from default settings?<br
/> <span
id="more-2216"></span></p><p>By default, <strong>smartd</strong> assumes a <code>DEVICESCAN</code> directive, which auto-detects all HDDs, and enables reasonable default monitoring of SMART attributes.<br
/> However, there are several benefits to individually specifying your disks:</p><ul><li>less verbose smartd startup log messages (no messages about auto-detection and missing attributes)</li><li>ability to run scheduled offline, short, and long SMART self-tests</li><li>ability to monitor or exclude attributes individually for each drive (including temperature)</li></ul><p><em>Reasonable default</em> mentioned above is the <strong>-a</strong> option, equivalent to the following individual options:</p><blockquote><p>-H -f -t -l error -l selftest -C 197 -U 198</p></blockquote><p>This is important to know, because my only SSD has no attribute 197, no self-test log, no error log, and no automatic offline testing.<br
/> But I still want to start with quasi-default settings, and that is why the first configuration line includes all the options from <strong>-a</strong>, except those that my SSD does not support:</p><blockquote><p>DEFAULT -d sat -H -f -p -t -W 0,40,45 -n standby       -S on -m example@example.com</p></blockquote><p>Here and in the <strong>-a</strong> options above,</p><ul><li><strong>-H</strong>: monitor overall health status (passed/failed)</li><li><strong>-d sat</strong>: HDD type is SATA</li><li><strong>-f</strong>: check if any of the Usage attributes (those not marked as Pre-fail) are below the manufacturer-set thresholds</li><li><strong>-p</strong>: report changes in Pre-fail attributes (implied by <strong>-t</strong> below, so can be omitted)</li><li><strong>-t</strong>: same as <strong>-p</strong> (above) with <strong>-u</strong> (report changes in Usage attributes)</li><li><strong>-W 0,40,45</strong>: log a message if drive&#8217;s temperature goes above 40 degrees Celsius; log a critical messages if above 45</li><li><strong>-n standby</strong>: do not wake-up (spin-up) the HDD if it is in sleep or standby mode (in which platters do not spin)</li><li><strong>-S on</strong>: enable attributes auto-saving</li><li><strong>-m example@example.com</strong>: address (or several comma-separated addresses) to receive warnings from smartd</li></ul><p>The <code>DEFAULT</code> directive is for convenience: options set by this directive apply to all the individual disk configuration lines below, until a different <code>DEFAULT</code> line is encountered.<br
/> Here, I had used it to separate all /dev/sda options into 2 logical groups: supported defaults, and drive-specific configuration.<br
/> SSD&#8217;s configuration is</p><blockquote><p>/dev/sda -s (S/../../6/01|L/../(01|02|03|04|05|06|07)/7/00) -C 0 -I 189 -I 194</p></blockquote><p>Here,</p><ul><li><strong>-C 0</strong>: explicitly disable attribute 197 monitoring (which is not present in this SSD)</li><li><strong>-I 189</strong> and <strong>-I 194</strong>: ignore attributes 189 and 194 (they both show temperature in this SSD)</li><li><strong>-s (S/../../6/01|L/../(01|02|03|04|05|06|07)/7/00)</strong>: schedule for short and long tests</li></ul><p>As for the tests&#8230;<br
/> I want short self-tests every Saturday night, between 1 AM and 5 AM (shifted by 1H for every disk).<br
/> I want long self-tests on the 1st Sunday of every month, between midnight and 8 AM (shifted by 2H for every disk).<br
/> This is exactly what is encoded in my configuration for all drives. The easiest way to figure out the format is to read the relevant section of <strong>man smartd.conf</strong>.</p><p>The remaining 3 drives are all HDDs, so I had defined a different common <code>DEFAULT</code> for them.<br
/> The only new option that we see is <strong>-U 198+</strong>, which instructs smartd to only report increases of the Offline_Uncorrectable (198) attribute.<br
/> This is necessary because my /dev/sdc <a
href="http://bogdan.org.ua/2015/02/26/how-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html">does not decrement this attribute after sector re-allocation</a>.</p><p>I hope you found this post helpful.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F28%2Fmy-smartd-conf-explained.html&amp;linkname=My%20smartd.conf%2C%20explained" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F28%2Fmy-smartd-conf-explained.html&amp;linkname=My%20smartd.conf%2C%20explained" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F28%2Fmy-smartd-conf-explained.html&amp;linkname=My%20smartd.conf%2C%20explained" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F28%2Fmy-smartd-conf-explained.html&amp;linkname=My%20smartd.conf%2C%20explained" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F28%2Fmy-smartd-conf-explained.html&amp;linkname=My%20smartd.conf%2C%20explained" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F28%2Fmy-smartd-conf-explained.html&#038;title=My%20smartd.conf%2C%20explained" data-a2a-url="https://bogdan.org.ua/2015/02/28/my-smartd-conf-explained.html" data-a2a-title="My smartd.conf, explained"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2015/02/28/my-smartd-conf-explained.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How to fix Offline Uncorrectable sector outside of a partition</title><link>https://bogdan.org.ua/2015/02/26/how-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html</link> <comments>https://bogdan.org.ua/2015/02/26/how-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html#comments</comments> <pubDate>Wed, 25 Feb 2015 22:20:09 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[how-to]]></category> <category><![CDATA[Software]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2210</guid> <description><![CDATA[A few days ago my smartd daemon (from the smartmontools package) notified me about a +1 increase in Current_Pending_Sector (197) and Offline_Uncorrectable (198) SMART attributes. The 2.5&#8243; Fujitsu laptop hard-drive these appeared on is very old, and it also has been working 24/365 since a little over a year. Running a short SMART self-test (sudo [&#8230;]]]></description> <content:encoded><![CDATA[<p>A few days ago my smartd daemon (from the smartmontools package) notified me about a +1 increase in Current_Pending_Sector (197) and Offline_Uncorrectable (198) SMART attributes. The 2.5&#8243; Fujitsu laptop hard-drive these appeared on is very old, and it also has been working 24/365 since a little over a year.</p><p>Running a short SMART self-test (<code>sudo smartctl -t short /dev/sdc</code>) produced a read error at sector 1289:</p><blockquote><p> Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error<br
/> 1 Short offline Completed: read failure 80% 22339 <strong>1289</strong></p></blockquote><p>Looking at the partition table of /dev/sdc, we see that this sector is outside of the only RAID partition on the disk, which starts at sector 2048:</p><blockquote><p> Device Boot Start End Blocks Id System<br
/> /dev/sdc1 <strong>2048</strong> 117209087 58605088 fd Lnx RAID auto</p></blockquote><p><span
id="more-2210"></span></p><p>To make sure that sector 1289 is re-allocated, some data needs to be written to it, e.g. with <code>sudo dd if=/dev/zero of=/dev/sdc count=1 seek=1289</code>.<br
/> You may also try to read the sector first, then &#8211; if successful &#8211; write it back to the disk:<br
/> <code>i=1289 ; sudo dd if=/dev/sdc of=/tmp/sector count=1 skip=$i &#038;&#038; sleep 1 &#038;&#038; sudo dd if=/tmp/sector of=/dev/sdc count=1 seek=$i</code></p><p>Another solution (<strong>untested!</strong>) would be to read/write a bunch of sectors around the problematic one (this is similar to what <code>badblocks -n</code> does):<br
/> <code><br
/> export i=1280<br
/> while [ $i -lt 1300 ]<br
/> do echo $i<br
/> # read once (count=1) 512 bytes (default ibs/obs values of dd) to a temporary file, skipping first $i ibs-sized blocks (skip=$i);<br
/> # if successful, then (wait a bit and) write the same data back to disk, skipping $i obs-sized blocks (seek=$i)<br
/> dd if=/dev/sdc of=/tmp/sector count=1 skip=$i &#038;&#038; sleep 1 &#038;&#038; dd if=/tmp/sector of=/dev/sdc count=1 seek=$i<br
/> let i+=1<br
/> done<br
/> </code></p><p>After sector re-allocation both Reallocated_Sector_Ct (5) and Reallocated_Event_Count (196) SMART attributes increased from 0 to 1, while Current_Pending_Sector (197) decreased from 1 to 0. In addition, running <code>badblocks /dev/sdc</code> and <code>diskscan --output diskscan-sdc-out-25-02-2015.json /dev/sdc</code> (both in read-only mode, of course) has not shown any read errors, and another short SMART self-test also finished successfully. So, is the problem solved?</p><p>Unfortunately, Offline_Uncorrectable (198) stayed at 1, and I kept getting warning emails. Apparently, my HDD simply does not decrease the Offline_Uncorrectable (198) attribute after sector re-allocation.</p><p>In this case the proper solution is to edit <code>/etc/smartd.conf</code> so that it only sends emails if Offline_Uncorrectable (198) attribute increases, and not if it is non-zero. Just add this option to your HDD scan line in <code>smartd.conf</code>: <strong><code>-U 198+</code></strong>.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F26%2Fhow-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html&amp;linkname=How%20to%20fix%20Offline%20Uncorrectable%20sector%20outside%20of%20a%20partition" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F26%2Fhow-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html&amp;linkname=How%20to%20fix%20Offline%20Uncorrectable%20sector%20outside%20of%20a%20partition" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F26%2Fhow-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html&amp;linkname=How%20to%20fix%20Offline%20Uncorrectable%20sector%20outside%20of%20a%20partition" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F26%2Fhow-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html&amp;linkname=How%20to%20fix%20Offline%20Uncorrectable%20sector%20outside%20of%20a%20partition" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F26%2Fhow-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html&amp;linkname=How%20to%20fix%20Offline%20Uncorrectable%20sector%20outside%20of%20a%20partition" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2015%2F02%2F26%2Fhow-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html&#038;title=How%20to%20fix%20Offline%20Uncorrectable%20sector%20outside%20of%20a%20partition" data-a2a-url="https://bogdan.org.ua/2015/02/26/how-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html" data-a2a-title="How to fix Offline Uncorrectable sector outside of a partition"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2015/02/26/how-to-fix-offline-uncorrectable-sector-outside-of-a-partition.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Mini-review: offline navigators for Android</title><link>https://bogdan.org.ua/2014/10/18/mini-review-offline-navigators-for-android.html</link> <comments>https://bogdan.org.ua/2014/10/18/mini-review-offline-navigators-for-android.html#comments</comments> <pubDate>Sat, 18 Oct 2014 15:54:38 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[Comparison]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[navigation]]></category> <category><![CDATA[offline]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2179</guid> <description><![CDATA[Sygic, Waze, Osmand, Navfree, Navigator, or (Nokia&#8217;s) Here Navigation beta: which is a better offline navigation solution for your Android? Sygic no way to store maps on the card navigation isn&#8217;t free (there is a 7-day trial) Waze not offline, needs internet has nice social features Osmand Allows maps on SD Free navigation Allows only [&#8230;]]]></description> <content:encoded><![CDATA[<p>Sygic, Waze, Osmand, Navfree, Navigator, or (Nokia&#8217;s) Here Navigation beta: which is a better offline navigation solution for your Android?</p><p><span
id="more-2179"></span><br
/> <strong>Sygic</strong></p><ul><li>no way to store maps on the card</li><li>navigation isn&#8217;t free (there is a 7-day trial)</li></ul><p><strong>Waze</strong></p><ul><li>not offline, needs internet</li><li>has nice <em>social</em> features</li></ul><p><strong>Osmand</strong></p><ul><li>Allows maps on SD</li><li>Free navigation</li><li>Allows only 10 maps; for Germany, this means only 10 federal lands</li></ul><p><strong>Navfree</strong></p><ul><li>Allows 1 country map for free</li><li>Not sure about SD support</li><li>Works good</li></ul><p><strong>Navigator</strong></p><ul><li>Unlimited maps on SD with payment</li></ul><p><strong>Here Navigation beta</strong></p><ul><li>stores maps on the SD card; voices are stored in the phone&#8217;s memory</li><li>navigation is free, both online and offline</li><li>you can download the entire Earth navigation maps for offline use (over 20 GB as of 2014-11-26)</li><li>navigation test: works, but in my case GPS signal was slow to acquire and lost for some seconds quite often; could be the device, though.</li></ul><p>Will update as soon as I am forced to really use any of these (usually I have my Garmin with me).</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F10%2F18%2Fmini-review-offline-navigators-for-android.html&amp;linkname=Mini-review%3A%20offline%20navigators%20for%20Android" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F10%2F18%2Fmini-review-offline-navigators-for-android.html&amp;linkname=Mini-review%3A%20offline%20navigators%20for%20Android" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F10%2F18%2Fmini-review-offline-navigators-for-android.html&amp;linkname=Mini-review%3A%20offline%20navigators%20for%20Android" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F10%2F18%2Fmini-review-offline-navigators-for-android.html&amp;linkname=Mini-review%3A%20offline%20navigators%20for%20Android" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F10%2F18%2Fmini-review-offline-navigators-for-android.html&amp;linkname=Mini-review%3A%20offline%20navigators%20for%20Android" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2014%2F10%2F18%2Fmini-review-offline-navigators-for-android.html&#038;title=Mini-review%3A%20offline%20navigators%20for%20Android" data-a2a-url="https://bogdan.org.ua/2014/10/18/mini-review-offline-navigators-for-android.html" data-a2a-title="Mini-review: offline navigators for Android"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2014/10/18/mini-review-offline-navigators-for-android.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How to update a multisite Drupal 6/7 installation using Drush</title><link>https://bogdan.org.ua/2014/08/25/how-to-update-a-multisite-drupal-6-7-installation-using-drush.html</link> <comments>https://bogdan.org.ua/2014/08/25/how-to-update-a-multisite-drupal-6-7-installation-using-drush.html#comments</comments> <pubDate>Mon, 25 Aug 2014 15:35:27 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Drupal]]></category> <category><![CDATA[how-to]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[D6]]></category> <category><![CDATA[D7]]></category> <category><![CDATA[drupal]]></category> <category><![CDATA[drush]]></category> <category><![CDATA[update]]></category> <category><![CDATA[upgrade]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2167</guid> <description><![CDATA[There are quite a lot of posts on how to do this, but my differs a tiny little bit, so I&#8217;m saving it for my own future reference, and also for the benefits of the wider audience. I am updating a multisite Drupal 6 installation. To the best of my knowledge, the only difference for [&#8230;]]]></description> <content:encoded><![CDATA[<p>There are quite a lot of posts on how to do this, but my differs a tiny little bit, so I&#8217;m saving it for my own future reference, and also for the benefits of the wider audience.</p><p>I am updating a multisite Drupal 6 installation. To the best of my knowledge, the only difference for Drupal 7 is that instead of the <strong>site_offline</strong> D6 variable the <strong>maintenance_mode</strong> variable is used in D7.</p><p>On Debian stable and later, you can <code>sudo aptitude install drush</code> and then just use it immediately after that.</p><p>Note: I recommend <code>su webuser</code> (or <code>sudo -s</code> followed by <code>sudo -s -u webuser</code>) before you run any non-testing <a
href="http://drush.ws/">drush</a> commands, where <em>webuser</em> is the user which owns your web-exposed files (e.g. Debian&#8217;s default is, I think, <strong>www-data</strong>). I&#8217;ve seen a lot of recommendations to run drush as a super-user, but that does not make sense, and may actually cause problems with file ownership.</p><p>One last thing before we start: if your <a
href="http://bogdan.org.ua/2014/08/25/drush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html">drush seems to work fine but hangs when untarring modules &#8211; check this solution</a>.</p><p><span
id="more-2167"></span></p><ol><li>Run some innocent command in drush to see if it produces any PHP warnings/errors you may want to fix before running actual update: <code>drush @sites core-status</code>. In my case, all the sites had the <a
href="https://www.drupal.org/project/cacherouter" class="broken_link" rel="nofollow">CacheRouter</a> module for in-RAM caching with a server daemon back-end, which was not initialized properly when drush bootstrapped Drupal from the command line. In my case, the only working solution was to edit <code>settings.php</code> files of every site to comment out the CacheRouter configuration for the period of update. If you get no warnings/errors, proceed to the next step. <em>Note: I was running drush from the Drupal&#8217;s root (directory which has top-level <code>index.php</code> and <code>.htaccess</code> files), but this should also work if you run from <code>sites/</code> or even <code>sites/sitename</code>.</em></li><li>Here would be several more steps &#8211; copying your production website(s) to a dev-server (if you do not have one already), performing an update on the dev-server first to see if anything breaks and needs fixes, then migrating updated website(s) from the dev-server to production server. Drush actually has tools to simplify all of these procedures. However, the websites I was updating were not critical, and short downtime was not a problem, so I was updating <strong>live</strong> websites. Modify these steps as you see fit to make the process more reliable.</li><li>Backup databases of all your sites. With drush: <code>drush @sites sql-dump --result-file --gzip</code>. This puts backups somewhere into the home directory of your <em>webuser</em>. Backups are named with a human-readable timestamp. Of course, you can also create a manual <a
href="https://www.drupal.org/project/backup_migrate" class="broken_link" rel="nofollow">Backup and Migrate</a> backup, or use phpMyAdmin, or just <code>mysqldump</code>.</li><li>Backup your site&#8217;s files. This step might be unnecessary, as drush seems to backup modules it is upgrading. I would still recommend making a backup, e.g. with <code>tar -acf multidrupal.tar.bz2 html</code>, where <em>html</em> is the directory containing your multisite Drupal&#8217;s root <code>index.php</code>.</li><li>Put the websites into maintenance mode and clear all caches; see the D7-specific note above: <code>drush @sites variable-set site_offline 1 ; drush @sites cache-clear all</code>.</li><li>The actual update! The easiest way would probably be to <code>drush @sites pm-update</code>, but I haven&#8217;t tested that and used a process which I understand better, and which seems more reliable to me (if anything goes wrong). If in your drupal root you have <strong>sites/site1</strong> and <strong>sites/site2</strong>, then run:<br
/> <code><br
/> drush site1 pm-updatecode<br
/> drush @sites updatedb<br
/> drush site2 pm-updatecode<br
/> drush @sites updatedb<br
/> </code><br
/> The <code>pm-updatecode</code> command only updates files, and does not run database update. So with these commands I am first updating modules from site1, then running database update on all sites, then update modules of site2, and run database update on all sites again. Running <code>drush @sites updatedb</code> multiple times, even when there are no updates, should be safe. Take note of any warnings/errors reported, you will want to fix them later, for example:</p><blockquote><p>WARNING:  Updating core will discard any modifications made to Drupal core files, most noteworthy among these are .htaccess and robots.txt.  If you have made any modifications to these files, please back them up before updating so that you can re-create your modifications in the updated version of the file.</p></blockquote></li><li>Disable maintenance mode. Cleaning the cache seems unnecessary, as <code>updatedb</code> command does that. <code>drush @sites variable-set site_offline 0</code>.</li><li>Finalize: re-enable anything disabled before the updates, fix warnings/errors you noted during the update.</li></ol><p>This worked well for me, and I hope it works well for you.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fhow-to-update-a-multisite-drupal-6-7-installation-using-drush.html&amp;linkname=How%20to%20update%20a%20multisite%20Drupal%206%2F7%20installation%20using%20Drush" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fhow-to-update-a-multisite-drupal-6-7-installation-using-drush.html&amp;linkname=How%20to%20update%20a%20multisite%20Drupal%206%2F7%20installation%20using%20Drush" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fhow-to-update-a-multisite-drupal-6-7-installation-using-drush.html&amp;linkname=How%20to%20update%20a%20multisite%20Drupal%206%2F7%20installation%20using%20Drush" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fhow-to-update-a-multisite-drupal-6-7-installation-using-drush.html&amp;linkname=How%20to%20update%20a%20multisite%20Drupal%206%2F7%20installation%20using%20Drush" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fhow-to-update-a-multisite-drupal-6-7-installation-using-drush.html&amp;linkname=How%20to%20update%20a%20multisite%20Drupal%206%2F7%20installation%20using%20Drush" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fhow-to-update-a-multisite-drupal-6-7-installation-using-drush.html&#038;title=How%20to%20update%20a%20multisite%20Drupal%206%2F7%20installation%20using%20Drush" data-a2a-url="https://bogdan.org.ua/2014/08/25/how-to-update-a-multisite-drupal-6-7-installation-using-drush.html" data-a2a-title="How to update a multisite Drupal 6/7 installation using Drush"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2014/08/25/how-to-update-a-multisite-drupal-6-7-installation-using-drush.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>drush pm-update fails: tar hangs when extracting *.tar.gz module archives from drupal.org</title><link>https://bogdan.org.ua/2014/08/25/drush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html</link> <comments>https://bogdan.org.ua/2014/08/25/drush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html#comments</comments> <pubDate>Mon, 25 Aug 2014 14:53:10 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Drupal]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[archive]]></category> <category><![CDATA[drupal]]></category> <category><![CDATA[extract]]></category> <category><![CDATA[hangs]]></category> <category><![CDATA[module]]></category> <category><![CDATA[strace]]></category> <category><![CDATA[tar]]></category> <category><![CDATA[trace]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2164</guid> <description><![CDATA[Drush is awesome, especially for updating multisite Drupal installations. I had only started using it a few days ago, and I&#8217;ve immediately hit a problem, to which I did find a workaround. Symptoms running drush @sites pm-update results in normal execution up to after answering &#8216;y[es]&#8216;; then drush seems to hang indefinitely (haven&#8217;t waited beyond [&#8230;]]]></description> <content:encoded><![CDATA[<p><a
href="http://drush.ws/">Drush</a> is awesome, especially for <a
href="http://bogdan.org.ua/2014/08/25/how-to-update-a-multisite-drupal-6-7-installation-using-drush.html">updating multisite Drupal installations</a>.<br
/> I had only started using it a few days ago, and I&#8217;ve immediately hit a problem, to which I did find a workaround.</p><p><strong>Symptoms</strong></p><ul><li>running <code>drush @sites pm-update</code> results in normal execution up to after answering &#8216;y[es]&#8216;; then drush seems to hang indefinitely (haven&#8217;t waited beyond about 10 minutes, maybe it does produce an error after a long while);</li><li>running the same command with <code>--debug</code> shows that drush hangs when trying to untar the downloaded module.tar.gz archive; there are no errors/warnings, it just hangs with no CPU usage;</li><li>trying to untar any of the modules downloaded from drupal.org manually is also unsuccessful: <code>tar -xzvf module.tar.gz</code> seems to do nothing, it also hangs with zero CPU usage/time and no warnings/errors;</li><li>interestingly, if I create some <code>test.tar.gz</code> locally, <code>tar</code> does happily extract that;</li><li>finally, running <code>strace tar -xzvf module.tar.gz</code> shows a number of unexpected lines, such as references to NSS and libnss files (I am only showing some of the lines of strace output, including the last line):<br
/><blockquote><p>open(&#8220;/etc/nsswitch.conf&#8221;, O_RDONLY)    = 4<br
/> read(4, &#8220;# /etc/nsswitch.conf\n#\n# Example&#8221;&#8230;, 4096) = 683<br
/> open(&#8220;/lib/x86_64-linux-gnu/libnss_nis.so.2&#8243;, O_RDONLY) = 4<br
/> open(&#8220;/lib/x86_64-linux-gnu/libnss_files.so.2&#8243;, O_RDONLY) = 4<br
/> open(&#8220;/etc/passwd&#8221;, O_RDONLY|O_CLOEXEC) = 4<br
/> open(&#8220;/usr/lib/x86_64-linux-gnu/libnss_mysql.so.2&#8243;, O_RDONLY) = 4<br
/> open(&#8220;/etc/group&#8221;, O_RDONLY|O_CLOEXEC)  = 4<br
/> open(&#8220;/etc/libnss-mysql.cfg&#8221;, O_RDONLY) = -1 EACCES (Permission denied)<br
/> open(&#8220;/etc/libnss-mysql-root.cfg&#8221;, O_RDONLY) = -1 EACCES (Permission denied)<br
/> futex(0x7fd0816e8c48, FUTEX_WAIT_PRIVATE, 2, NULL</p></blockquote></li></ul><p><span
id="more-2164"></span></p><p><strong>Analysis</strong><br
/> <code>strace</code> output provided enough information to understand the issue and generate a workaround. Briefly, we see tar querying users and groups information. On the system where this problem was identified, MySQL is used as a name-service back-end. This is why we see references to mysql libraries in the trace. Apparently, <code>tar</code> is trying to resolve some user/groups information, but for some reason does not get what it is asking in a timely manner, or possibly never gets it and will only fail/proceed when the request times out.</p><p><strong>Workaround</strong><br
/> <em>Not a solution</em>, but works: <code>tar -xzv --numeric-owner -f module.tar.gz</code>. The <code>--numeric-owner</code> switch asks <code>tar</code> to use numeric file/directory owner information as-is, without trying to resolve the name of the owner. This works. I have not checked <code>strace</code> for the workaround, but I expect to see no MySQL/NSS references in it with the switch.</p><p>To actually be able to use drush with this workaround, I had to edit <code>drush.inc</code> somewhere under <code>/usr/share/drush/</code>; look for &#8216;tar &#8216; string, and add <code>--numeric-owner</code> where necessary. Do not forget that <code>-f</code> has to be just in front of the archive filename, otherwise your edits will not work.</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fdrush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html&amp;linkname=drush%20pm-update%20fails%3A%20tar%20hangs%20when%20extracting%20%2A.tar.gz%20module%20archives%20from%20drupal.org" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fdrush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html&amp;linkname=drush%20pm-update%20fails%3A%20tar%20hangs%20when%20extracting%20%2A.tar.gz%20module%20archives%20from%20drupal.org" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fdrush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html&amp;linkname=drush%20pm-update%20fails%3A%20tar%20hangs%20when%20extracting%20%2A.tar.gz%20module%20archives%20from%20drupal.org" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fdrush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html&amp;linkname=drush%20pm-update%20fails%3A%20tar%20hangs%20when%20extracting%20%2A.tar.gz%20module%20archives%20from%20drupal.org" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fdrush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html&amp;linkname=drush%20pm-update%20fails%3A%20tar%20hangs%20when%20extracting%20%2A.tar.gz%20module%20archives%20from%20drupal.org" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2014%2F08%2F25%2Fdrush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html&#038;title=drush%20pm-update%20fails%3A%20tar%20hangs%20when%20extracting%20%2A.tar.gz%20module%20archives%20from%20drupal.org" data-a2a-url="https://bogdan.org.ua/2014/08/25/drush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html" data-a2a-title="drush pm-update fails: tar hangs when extracting *.tar.gz module archives from drupal.org"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2014/08/25/drush-pm-update-fails-tar-hangs-when-extracting-tar-gz-module-archives-from-drupal-org.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How to cite PHYLIP</title><link>https://bogdan.org.ua/2014/01/10/how-to-cite-phylip.html</link> <comments>https://bogdan.org.ua/2014/01/10/how-to-cite-phylip.html#comments</comments> <pubDate>Fri, 10 Jan 2014 15:29:07 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[Links]]></category> <category><![CDATA[Science]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[citation]]></category> <category><![CDATA[PHYLIP]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2083</guid> <description><![CDATA[Official PHYLIP FAQ does suggest a few ways to cite the software, but I believe that the best citation is mentioned in the wikipedia PHYLIP article: pubmed reference for PMID 7288891. This PubMed citations seems the best, because it does mention the software tool implementing the maximum likelihood approach, it is likely the earliest mention [&#8230;]]]></description> <content:encoded><![CDATA[<p><a
href="http://evolution.genetics.washington.edu/phylip/faq.html#citation">Official PHYLIP FAQ</a> does suggest a few ways to cite the software, but I believe that the best citation is mentioned in the <a
href="http://en.wikipedia.org/wiki/PHYLIP">wikipedia PHYLIP article</a>: <a
href="http://www.ncbi.nlm.nih.gov/pubmed/7288891">pubmed reference for PMID 7288891</a>. This PubMed citations seems the best, because</p><ul><li>it does mention the software tool implementing the maximum likelihood approach,</li><li>it is likely the earliest mention of the PHYLIP software (which was distributed since around 1980),</li><li>it refers to a journal indexed by pubmed, and</li><li>according to Google Scholar, it was already cited over 6660  times <img
src="https://bogdan.org.ua/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></li></ul><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F01%2F10%2Fhow-to-cite-phylip.html&amp;linkname=How%20to%20cite%20PHYLIP" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F01%2F10%2Fhow-to-cite-phylip.html&amp;linkname=How%20to%20cite%20PHYLIP" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F01%2F10%2Fhow-to-cite-phylip.html&amp;linkname=How%20to%20cite%20PHYLIP" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F01%2F10%2Fhow-to-cite-phylip.html&amp;linkname=How%20to%20cite%20PHYLIP" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2014%2F01%2F10%2Fhow-to-cite-phylip.html&amp;linkname=How%20to%20cite%20PHYLIP" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2014%2F01%2F10%2Fhow-to-cite-phylip.html&#038;title=How%20to%20cite%20PHYLIP" data-a2a-url="https://bogdan.org.ua/2014/01/10/how-to-cite-phylip.html" data-a2a-title="How to cite PHYLIP"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2014/01/10/how-to-cite-phylip.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Brief comparison: Dropbox vs BitTorrent Sync vs AeroFS vs SparkleShare</title><link>https://bogdan.org.ua/2013/11/24/brief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html</link> <comments>https://bogdan.org.ua/2013/11/24/brief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html#comments</comments> <pubDate>Sun, 24 Nov 2013 15:25:58 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[Links]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[AeroFS]]></category> <category><![CDATA[BitTorrent Sync]]></category> <category><![CDATA[BTSync]]></category> <category><![CDATA[Dropbox]]></category> <category><![CDATA[SparkleShare]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2051</guid> <description><![CDATA[Right now I&#8217;m mostly using Dropbox, and recently started BitTorrent Sync for my music collection sync between all the PCs and my backups server, as well as for sharing larger files at work (thanks to direct LAN connections, this is much faster with BTSync than with Dropbox, which has to first upload the file to [&#8230;]]]></description> <content:encoded><![CDATA[<p>Right now I&#8217;m mostly using Dropbox, and recently started BitTorrent Sync for my music collection sync between all the PCs and my backups server, as well as for sharing larger files at work (thanks to direct LAN connections, this is much faster with BTSync than with Dropbox, which has to first upload the file to Dropbox server). I&#8217;m also considering syncing a TrueCrypt container of my photos archive using BTSync. SparkleShare is potentially interesting, but given my trend to move to <a
href="http://bogdan.org.ua/2012/08/29/free-private-git-repository-hosting.html">free code-hosting services</a>, I do not yet see a need for it.</p><p>Below is a short summary table I&#8217;ve used to compare available solutions. Feel free to contribute to the table in the comments &#8211; I&#8217;ll update the post, then.</p><p><span
id="more-2051"></span></p><table
id="tablepress-2" class="tablepress tablepress-id-2"><thead><tr
class="row-1 odd"><th
class="column-1"><div>&nbsp;</div></th><th
class="column-2"><div>Dropbox</div></th><th
class="column-3"><div>BitTorrent Sync</div></th><th
class="column-4"><div>AeroFS</div></th><th
class="column-5"><div>SparkleShare</div></th></tr></thead><tbody
class="row-hover"><tr
class="row-2 even"><td
class="column-1">Open-source</td><td
class="column-2">No</td><td
class="column-3">No</td><td
class="column-4">No</td><td
class="column-5">Yes</td></tr><tr
class="row-3 odd"><td
class="column-1">Free plans</td><td
class="column-2">2 GB + 16 GB referral bonuses</td><td
class="column-3">Yes</td><td
class="column-4">Yes, up to 3 collaborators</td><td
class="column-5">Yes</td></tr><tr
class="row-4 even"><td
class="column-1">All files are in a single directory</td><td
class="column-2">Yes</td><td
class="column-3">No</td><td
class="column-4">Yes</td><td
class="column-5">Yes</td></tr><tr
class="row-5 odd"><td
class="column-1">Client supports throttling</td><td
class="column-2">Yes</td><td
class="column-3">Yes</td><td
class="column-4">?</td><td
class="column-5">?</td></tr><tr
class="row-6 even"><td
class="column-1">Mobile app exists</td><td
class="column-2">Yes</td><td
class="column-3">Yes</td><td
class="column-4">?</td><td
class="column-5">?</td></tr><tr
class="row-7 odd"><td
class="column-1">File storage is centralized</td><td
class="column-2">Yes, Dropbox servers</td><td
class="column-3">No</td><td
class="column-4">No</td><td
class="column-5">No</td></tr><tr
class="row-8 even"><td
class="column-1">Sharing: access levels separation</td><td
class="column-2">No; read-only public access with web URLs</td><td
class="column-3">Yes: read, read/write, expiring access</td><td
class="column-4">?</td><td
class="column-5">?</td></tr><tr
class="row-9 odd"><td
class="column-1">Best for</td><td
class="column-2">whatever</td><td
class="column-3">large files (video)</td><td
class="column-4">whatever</td><td
class="column-5">text files</td></tr></tbody></table><h2 class="tablepress-table-name tablepress-table-name-id-2">Dropbox vs BitTorrent Sync vs AeroFS vs SparkleShare</h2><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F11%2F24%2Fbrief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html&amp;linkname=Brief%20comparison%3A%20Dropbox%20vs%20BitTorrent%20Sync%20vs%20AeroFS%20vs%20SparkleShare" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F11%2F24%2Fbrief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html&amp;linkname=Brief%20comparison%3A%20Dropbox%20vs%20BitTorrent%20Sync%20vs%20AeroFS%20vs%20SparkleShare" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F11%2F24%2Fbrief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html&amp;linkname=Brief%20comparison%3A%20Dropbox%20vs%20BitTorrent%20Sync%20vs%20AeroFS%20vs%20SparkleShare" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F11%2F24%2Fbrief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html&amp;linkname=Brief%20comparison%3A%20Dropbox%20vs%20BitTorrent%20Sync%20vs%20AeroFS%20vs%20SparkleShare" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F11%2F24%2Fbrief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html&amp;linkname=Brief%20comparison%3A%20Dropbox%20vs%20BitTorrent%20Sync%20vs%20AeroFS%20vs%20SparkleShare" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2013%2F11%2F24%2Fbrief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html&#038;title=Brief%20comparison%3A%20Dropbox%20vs%20BitTorrent%20Sync%20vs%20AeroFS%20vs%20SparkleShare" data-a2a-url="https://bogdan.org.ua/2013/11/24/brief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html" data-a2a-title="Brief comparison: Dropbox vs BitTorrent Sync vs AeroFS vs SparkleShare"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2013/11/24/brief-comparison-dropbox-vs-bittorrent-sync-vs-aerofs-vs-sparkleshare.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Alternatives to GNU make</title><link>https://bogdan.org.ua/2013/10/19/alternatives-to-gnu-make.html</link> <comments>https://bogdan.org.ua/2013/10/19/alternatives-to-gnu-make.html#comments</comments> <pubDate>Sat, 19 Oct 2013 00:49:38 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[alternative]]></category> <category><![CDATA[anduril]]></category> <category><![CDATA[doit]]></category> <category><![CDATA[make]]></category> <category><![CDATA[paver]]></category> <category><![CDATA[rake]]></category> <category><![CDATA[ruffus]]></category> <category><![CDATA[SCons]]></category> <category><![CDATA[snakemake]]></category> <category><![CDATA[waf]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=2019</guid> <description><![CDATA[Right now, when I see that I have to often repeat/retype some sets and sequences of commands, I&#8217;m trying to wrap them up into some kind of a script, every time choosing the most appropriate language &#8211; shell when I need to start lots of existing command-line tools, Python when there&#8217;s some data handling and [&#8230;]]]></description> <content:encoded><![CDATA[<p>Right now, when I see that I have to often repeat/retype some sets and sequences of commands, I&#8217;m trying to wrap them up into some kind of a script, every time choosing the most appropriate language &#8211; shell when I need to start lots of existing command-line tools, Python when there&#8217;s some data handling and processing involved, and R when I&#8217;m invoking commands from R packages. So far I have been avoiding the fairly popular makefile-based approach to automating pipelines and workflows which rely heavily on existing tools. However, being curious, I&#8217;ve compiled a short list of modern make-like alternatives, to possibly explore&#8230; sometime later&#8230;</p><ul><li>First comes <a
href="http://software-carpentry.org/v4/make/index.html" class="broken_link" rel="nofollow">make</a> itself &#8211; the oldest and the most widely used software build tool. Stable and powerful. Still, even people who got used to using <strong>make</strong>, have some gripes about it. The most detailed list of gripes is probably <a
href="http://www.conifersystems.com/whitepapers/gnu-make/">here</a>.</li><li><a
href="http://www.scons.org/">SCons</a> is a build tool written in Python. I guess I like that &#8220;configuration files are Python scripts&#8221; &#8211; maybe knowing Python is enough to use SCons, which makes SCons a better choice than <strong>make</strong> for me. SCons seems to have gained <a
href="http://software-carpentry.org/blog/2010/07/popular-fast-or-usable-pick-one.html">some support</a> (scroll down for comments/discussion). There were some doubts about SCons performance (<a
href="http://www.electric-cloud.com/blog/2010/03/08/how-scalable-is-scons/">1</a>, <a
href="http://www.electric-cloud.com/blog/2010/07/21/a-second-look-at-scons-performance/">2</a>, and <a
href="http://www.electric-cloud.com/blog/2010/08/11/the-last-word-on-scons-performance/">3</a>); not sure where SCons is at right now in that regard.</li><li><a
href="http://code.google.com/p/waf/" class="broken_link" rel="nofollow">waf</a>, a Python-based framework for configuring, compiling and installing applications.</li><li>py<a
href="http://pydoit.org/">DoIt</a> is a Python automation tool. It seems to use Python syntax. It aims at bringing the power of build-tools to execute <em>any</em> kind of task, where a task describes some computation to be done (actions), and contains some extra meta-data. Based on the description alone, I&#8217;m quite intrigued! I wonder if anyone had already worked with pyDoIt and can share experiences?&#8230;</li><li>Rake &#8211; Ruby make &#8211; is a simple build program with capabilities similar to those of make. Had seen a lot of positive feedback about this one &#8211; mostly regarding simplicity of use. Still [py]DoIt so far looks more attractive to me personally.</li><li><a
href="http://code.google.com/p/ruffus/">Ruffus</a> is a lightweight python module for running computational pipelines. Sounds like some good competition to [py]DoIt!</li><li><a
href="http://www.anduril.org/anduril/site/">Anduril</a> is an open source component-based workflow framework for scientific data analysis. Sounds promising, though the latest downloadable version is over 400 MBs&#8230; It probably already contains a bunch of binaries and maybe even data and complete workflows for data analysis. Probably worth a look, but may turn out a little overweight for simple pipelining.</li><li><a
href="https://bitbucket.org/johanneskoester/snakemake/wiki/Home">snakemake</a> is a scalable bioinformatics workflow engine. I get the feeling that Python is truly dominating the pipelines/workflows world: snakemake, as even the name suggests, is in Python, too. The front-page example is so simple and clear, that snakemake immediately pushes DoIt down from the 1st place! Awesome.</li><li><a
href="http://paver.github.io/paver/">Paver</a> is a yet-another Python-based software project scripting tool along the lines of Make or Rake, designed to help out with repetitive tasks with the convenience of Pythonâ€™s syntax. Sounds similar to DoIt. Have no idea how they actually compare to each other.</li></ul><p>That is it for now.</p><p>What were your experiences with automating repetitive tasks and building simple pipelines?</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F19%2Falternatives-to-gnu-make.html&amp;linkname=Alternatives%20to%20GNU%20make" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F19%2Falternatives-to-gnu-make.html&amp;linkname=Alternatives%20to%20GNU%20make" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F19%2Falternatives-to-gnu-make.html&amp;linkname=Alternatives%20to%20GNU%20make" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F19%2Falternatives-to-gnu-make.html&amp;linkname=Alternatives%20to%20GNU%20make" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F19%2Falternatives-to-gnu-make.html&amp;linkname=Alternatives%20to%20GNU%20make" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F19%2Falternatives-to-gnu-make.html&#038;title=Alternatives%20to%20GNU%20make" data-a2a-url="https://bogdan.org.ua/2013/10/19/alternatives-to-gnu-make.html" data-a2a-title="Alternatives to GNU make"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2013/10/19/alternatives-to-gnu-make.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>GUIs for R</title><link>https://bogdan.org.ua/2013/10/17/guis-for-r.html</link> <comments>https://bogdan.org.ua/2013/10/17/guis-for-r.html#comments</comments> <pubDate>Thu, 17 Oct 2013 20:59:01 +0000</pubDate> <dc:creator><![CDATA[Bogdan]]></dc:creator> <category><![CDATA[*nix]]></category> <category><![CDATA[Notepad]]></category> <category><![CDATA[Programming]]></category> <category><![CDATA[Science]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[cantor]]></category> <category><![CDATA[deducer]]></category> <category><![CDATA[ipython]]></category> <category><![CDATA[notebook]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[R]]></category> <category><![CDATA[rkward]]></category> <category><![CDATA[rstudio]]></category> <guid
isPermaLink="false">http://bogdan.org.ua/?p=1870</guid> <description><![CDATA[I&#8217;ve tried [briefly] Cantor (which also supports Octave and KAlgebra as backends), rkward, deducer/JGR, R Commander, and RStudio. My personal choice was RStudio: it is good-looking, intuitive, easy-to-use, while powerful. Next step would be using some R-equivalent of the excellent ipython&#8217;s Mathematica-like Notebook webinterface&#8230;]]></description> <content:encoded><![CDATA[<p>I&#8217;ve tried [briefly] Cantor (which also supports Octave and KAlgebra as backends), rkward, deducer/JGR, R Commander, and RStudio.</p><p>My personal choice was RStudio: it is good-looking, intuitive, easy-to-use, while powerful.</p><p>Next step would be using some R-equivalent of the excellent ipython&#8217;s Mathematica-like Notebook webinterface&#8230;</p><p><a
class="a2a_button_citeulike" href="https://www.addtoany.com/add_to/citeulike?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F17%2Fguis-for-r.html&amp;linkname=GUIs%20for%20R" title="CiteULike" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F17%2Fguis-for-r.html&amp;linkname=GUIs%20for%20R" title="Pocket" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_kindle_it" href="https://www.addtoany.com/add_to/kindle_it?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F17%2Fguis-for-r.html&amp;linkname=GUIs%20for%20R" title="Kindle It" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_evernote" href="https://www.addtoany.com/add_to/evernote?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F17%2Fguis-for-r.html&amp;linkname=GUIs%20for%20R" title="Evernote" rel="nofollow noopener" target="_blank"></a><a
class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F17%2Fguis-for-r.html&amp;linkname=GUIs%20for%20R" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a
class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fbogdan.org.ua%2F2013%2F10%2F17%2Fguis-for-r.html&#038;title=GUIs%20for%20R" data-a2a-url="https://bogdan.org.ua/2013/10/17/guis-for-r.html" data-a2a-title="GUIs for R"><img
src="https://static.addtoany.com/buttons/share_save_120_16.png" alt="Share"></a></p>]]></content:encoded> <wfw:commentRss>https://bogdan.org.ua/2013/10/17/guis-for-r.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>