<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">

<channel>
	<title>G-Loaded Journal</title>
	
	<link>http://www.g-loaded.eu</link>
	<description>An open-source software and technology related journal</description>
	<lastBuildDate>Thu, 14 Feb 2013 07:36:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/GLoaded" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="gloaded" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Back to blogging</title>
		<link>http://www.g-loaded.eu/2013/02/13/back-to-blogging/</link>
		<comments>http://www.g-loaded.eu/2013/02/13/back-to-blogging/#comments</comments>
		<pubDate>Wed, 13 Feb 2013 15:53:47 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2863</guid>
		<description><![CDATA[Well, it&#8217;s been a while since my last post and I think it&#8217;s about time I started posting some new stuff here. During all these months I spent my free time οn various things. As far as tech is concerned I mostly spent time on Linux servers and a little bit on software development. Digging [...]]]></description>
				<content:encoded><![CDATA[<p>Well, it&#8217;s been a while since my last post and I think it&#8217;s about time I started posting some new stuff here. During all these months I spent my free time οn various things. As far as tech is concerned I mostly spent time on Linux servers and a little bit on software development. Digging into the Linux Desktop is not a top priority for me any more since I only use it on secondary desktop boxes or virtual machines, so there isn&#8217;t much to write about it. So, I&#8217;ll be getting my notes together and I&#8217;ll try to post some cool and interesting guides in the next months.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2013/02/13/back-to-blogging/">Back to blogging</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2010/09/16/the-g-loaded-experiment-5-years-of-tech-blogging/" rel="bookmark">The G-Loaded Experiment &#8211; 5 years of tech blogging</a></li>
<li><a href="http://www.g-loaded.eu/2007/10/18/dual-booting-again-after-30-months/" rel="bookmark">Dual-booting again after 30 months</a></li>
<li><a href="http://www.g-loaded.eu/2009/04/09/yum-priorities-configuration-for-a-centos-desktop/" rel="bookmark">YUM-Priorities Configuration for a CentOS Desktop</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2013/02/13/back-to-blogging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Some thoughts about Copyright related activism</title>
		<link>http://www.g-loaded.eu/2012/05/29/some-thoughts-about-copyright-related-activism/</link>
		<comments>http://www.g-loaded.eu/2012/05/29/some-thoughts-about-copyright-related-activism/#comments</comments>
		<pubDate>Tue, 29 May 2012 15:13:52 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[License]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2804</guid>
		<description><![CDATA[There has been much controversy about Copyright and file-sharing on the internet during the last decade. Admittedly, the All Rights Reserved statement is incompatible with the nature of communications in the Digital Age and thus a new more flexible content and media licensing scheme is required. A permission system would be the natural solution to [...]]]></description>
				<content:encoded><![CDATA[<p>There has been much controversy about Copyright and file-sharing on the internet during the last decade. Admittedly, the <em>All Rights Reserved</em> statement is incompatible with the nature of communications in the Digital Age and thus a new more flexible content and media licensing scheme is required. A <strong>permission system</strong> would be the natural solution to the All-Rights-Reserved problem (it could even be extended to Patents, but this is outside the scope of this post). Such a permission system is imposed by Free Software licenses, Creative Commons licenses and others. Although it&#8217;s not perfect, it does provide an acceptable and realistic solution for content, media and software publishing in the Digital Era.<br />
<span id="more-2804"></span><br />
Surprisingly though, regardless of the fact that such a permission system has not been fully adopted yet by the industry, there are several activist groups worldwide, which go several steps further suggesting that the current copyright and patent systems should be thrown to the trash bin without second thoughts. OK. But what&#8217;s the alternative plan and how can it keep us humans motivated to advance our civilization? I&#8217;m afraid a proper alternative plan does not currently exist. It&#8217;s all about thoughts and beliefs combined with highly subjective estimates.</p>
<p>I generally try to keep an open mind to any suggested change no matter how radical it might be, but in this particular case I think it is quite moronic to believe that a transition from point A (copyright) to point C (no copyright) without at least trying to go through B (permission system) is possible, without severe negative effects on the technological progress. Such a transition does not make sense. Consequently, fighting for such a transition does not make sense as well.</p>
<p>And when activism does not make sense in terms of serving a greater good, then the only explanation I can give is that such activism is driven by each individual activist&#8217;s own benefit. This might be just the fun involved in being different (IMHO the vast majority of activists), public relations driven activism, promotion of services etc. The kind of activism which does not serve the greater good has so many faces.</p>
<p>Nevertheless, the problem still remains. The industry has missed the train of the digital world. So, what can we do about that? In my opinion, the very first thing that needs to be done is that both the industry and all those activist and especially hacktivist groups stop acting like morons. Conflict is not the right solution as it leads with mathematical precision to the end of the internet as we know it today. On the other hand, a permission system seems like a good possible solution for most of the existing problems. Let&#8217;s stop being part of the problem. That&#8217;s a good start.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2012/05/29/some-thoughts-about-copyright-related-activism/">Some thoughts about Copyright related activism</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2007/05/16/some-thoughts-about-epiphany-extensions/" rel="bookmark">Some thoughts about Epiphany extensions</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2012/05/29/some-thoughts-about-copyright-related-activism/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Why ReactOS leads the way with their decision to hire full-time developers</title>
		<link>http://www.g-loaded.eu/2012/05/03/why-reactos-leads-the-way-with-their-decision-to-hire-full-time-developers/</link>
		<comments>http://www.g-loaded.eu/2012/05/03/why-reactos-leads-the-way-with-their-decision-to-hire-full-time-developers/#comments</comments>
		<pubDate>Wed, 02 May 2012 23:07:50 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[ReactOS]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2768</guid>
		<description><![CDATA[Software has become part of our lives. Businesses, homes and even individuals more and more rely on software to meet their goals and serve their needs. Recently, I had tried to have a discussion with people who are active in the FLOSS ecosystem about if and how the development process of free software could be [...]]]></description>
				<content:encoded><![CDATA[<p>Software has become part of our lives. Businesses, homes and even individuals more and more rely on software to meet their goals and serve their needs. Recently, I <del>had</del> tried to have a discussion with people who are active in the <abbr title="Free Libre Open-Source Software">FLOSS</abbr> ecosystem about if and how the development process of free software could be improved in order to increase its quality and efficiency. As usual, the conservative minds within the community did not let the discussion get far. This was not the first time nor the first place I tried to start a discussion like that. Nevertheless, the outcome has always been the same.<br />
<span id="more-2768"></span><br />
A few minutes ago I ran across a news item about the <a href="http://www.reactos.org">ReactOS</a> community seeking to raise funds in order to hire developers who will work full-time on the project. The community realizes the fact that dedication to the project is the determinant factor in the process of creating a high quality product. In their <a href="http://www.reactos.org/en/news_page_75.html">announcement</a> we read:</p>
<blockquote><p>
This year we want to do something different, something even grander. ReactOS is quite close to transitioning to beta testing and we are constantly improving the development process itself. However for many core developers ReactOS remains a hobby in which they participate in their spare time as all have other real life obligations to meet. All of the developers are extremely skilled and every contribution they make helps significantly improve ReactOS&#8217; quality.</p>
<p>For the first time ever, the ReactOS Foundation seeks to go beyond the usual small fundraising campaigns aimed at paying infrastructure expenses. We wish to raise money to formally hire as many core developers as possible, to work on the project they believe in, the project they&#8217;ve been working on, to transform a hobby into a job so they can dedicate all of their time to the ReactOS project.</p>
<p>In light of the significant advances the project enjoyed thanks to work done as part of Google&#8217;s Summer of Code 2011, it became even more obvious that the fastest way to accelerate the development of ReactOS is by directly funding developers to contribute to ReactOS. As such, the project is reaching out to our many fans and believers to help make this happen. Together, we can make ReactOS into a true competitor and alternative for computer users worldwide.
</p></blockquote>
<p>I could not agree more! In my opinion, <strong>paid development</strong> is a key step in the evolution of the development of free software. The benefits are pretty obvious:</p>
<ol>
<li>The current development model mainly involves people working on FLOSS projects in their spare time. As a result, it has become customary to release incomplete and buggy &#8220;stable&#8221; releases for us to debug. On the contrary, there are several companies which pay developers to work on FLOSS projects or invest their own capital on the development of a FLOSS project. Comparing the quality of the two kinds of projects, it is quite obvious that paid development results in a higher quality product. Money alone cannot produce quality. But, <strong>money can greatly help with the creation of the right environment for the right people to produce a high quality product</strong>.</li>
<li>Usually, a <em>Do-It-Yourself</em> mentality reigns the FLOSS ecosystem. No matter how important the &#8220;<em>freedom to customize</em>&#8221; is, it is also extremely difficult for people who are not software engineers or who are extremely busy with other things to follow such practices. Donations currently do not work as they should. Contributing money to a FLOSS project should buy nothing more or less than <strong>dedication</strong>.</li>
<li>Funding the development of FLOSS projects will preserve <strong>stability</strong> and help them survive in the long run. The users will have a greater assurance that a project won&#8217;t be suddenly abandoned or dramatically change its goals. This is very important, especially if you base your own work upon such a project.</li>
</ol>
<p>Today, there is an abundance of free software out there. But in several cases quality is below par. Both users and developers can change things. In my humble opinion, &#8220;<em>paid development</em>&#8221; and <strong>micro-donations</strong> (in the form of a <strong>subscription</strong>) is the necessary next step in the evolution of the model of FLOSS development.</p>
<p>The ReactOS <a href="http://www.reactos.org/en/foundation_donate.html">fundraising campaign</a>&#8216;s goal for 2012 is set at 30000 EUR. This means that if 6000 people donated 5 EUR each, the goal would be met. Quite easy I guess for a vast community like the FLOSS ecosystem. I just donated my 5 EUR. Now, it&#8217;s your turn. I&#8217;m sure this money won&#8217;t be wasted. Even if it is, hell, that&#8217;s just 5 euros. But&#8230; on the other hand, if this plan works out, it will act as a <strong>great example</strong> for other open source and free software projects about how they should go ahead. It will also be a great example for us users about how important a micro-donation can be and how much it can change things.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2012/05/03/why-reactos-leads-the-way-with-their-decision-to-hire-full-time-developers/">Why ReactOS leads the way with their decision to hire full-time developers</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2008/12/12/release-time/" rel="bookmark">Release Time</a></li>
<li><a href="http://www.g-loaded.eu/2010/10/04/full-g-loaded-content-in-planet-feeds/" rel="bookmark">Full G-Loaded content in Planet feeds</a></li>
<li><a href="http://www.g-loaded.eu/2007/07/12/issue-addressed-author-feeds-deliver-full-content/" rel="bookmark">Issue addressed: Author feeds deliver full content</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2012/05/03/why-reactos-leads-the-way-with-their-decision-to-hire-full-time-developers/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>gzip and deflate compression support by web browsers</title>
		<link>http://www.g-loaded.eu/2012/04/30/gzip-and-deflate-compression-support-by-web-browsers/</link>
		<comments>http://www.g-loaded.eu/2012/04/30/gzip-and-deflate-compression-support-by-web-browsers/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 03:42:54 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Compression]]></category>
		<category><![CDATA[HTTP]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2650</guid>
		<description><![CDATA[There are several ways to improve the performance of a web site. One of them is HTTP compression. Moreover, compressing the web server responses can save tons of bandwidth without adding any significant amount of extra CPU load on the server. Two of the most common compression algorithms used in HTTP are gzip and deflate. [...]]]></description>
				<content:encoded><![CDATA[<p>There are several ways to improve the performance of a web site. One of them is HTTP compression. Moreover, compressing the web server responses can save tons of bandwidth without adding any significant amount of extra CPU load on the server. Two of the most common compression algorithms used in HTTP are <strong>gzip</strong> and <strong>deflate</strong>. An article containing step-by-step instructions on how to configure Apache to <a href="http://www.g-loaded.eu/2008/05/10/use-mod_deflate-to-compress-web-content-delivered-by-apache/" title="Configure httpd to compress output using mod_deflate">compress web server responses using mod_deflate</a> had been published on G-Loaded a long time ago. This post is about the web browser support for the gzip, deflate and raw deflate compression algorithms. The following page contains the results of several <a href="http://www.vervestudios.co/projects/compression-tests/results">compression tests</a> run by various modern and older web browsers. In case you had been looking for such information, that&#8217;s a good place to start.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2012/04/30/gzip-and-deflate-compression-support-by-web-browsers/">gzip and deflate compression support by web browsers</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2008/05/10/use-mod_deflate-to-compress-web-content-delivered-by-apache/" rel="bookmark">Use mod_deflate to Compress Web Content delivered by Apache</a></li>
<li><a href="http://www.g-loaded.eu/2008/01/24/viceo-backend-for-sane-with-libusb-support/" rel="bookmark">Viceo Backend for SANE with libusb support</a></li>
<li><a href="http://www.g-loaded.eu/2011/03/28/dd-wrt-support-for-wireless-n-routers/" rel="bookmark">DD-WRT support for Wireless N Routers</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2012/04/30/gzip-and-deflate-compression-support-by-web-browsers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Mobile version of G-Loaded</title>
		<link>http://www.g-loaded.eu/2012/04/29/mobile-version-of-g-loaded/</link>
		<comments>http://www.g-loaded.eu/2012/04/29/mobile-version-of-g-loaded/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 13:51:46 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Mobiles]]></category>
		<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Planning]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2689</guid>
		<description><![CDATA[I tested the website using the default browser of a smartphone and I realized that it is needed to improve the theme to make the content easier to read on mobile devices. If you think such a task is easy, you&#8217;re way outline! From a quick web search I noticed that there are many things [...]]]></description>
				<content:encoded><![CDATA[<p>I tested the website using the default browser of a smartphone and I realized that it is needed to improve the theme to make the content easier to read on mobile devices. If you think such a task is easy, you&#8217;re way outline! From a quick web search I noticed that there are many things to take into consideration before making any changes. I&#8217;m currently gathering information that will help me decide what would be the best way to serve two versions of the content, one suitable for mobile devices (smartphones and tablets) and one of PCs (desktops, laptops). If you&#8217;ve gone through this procedure and care to provide some insight, feel free.<span id="more-2689"></span><br />
Update: A mobile friendly version of the current theme has been scheduled and will be applied to the web site soon. Stay tuned.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2012/04/29/mobile-version-of-g-loaded/">Mobile version of G-Loaded</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2007/03/15/cc-configurator-plugin-version-10-is-out/" rel="bookmark">CC Configurator plugin version 1.0 is out!</a></li>
<li><a href="http://www.g-loaded.eu/2007/07/28/send-a-text-file-as-sms-with-a-sony-ericsson-mobile/" rel="bookmark">Send a text file as SMS with a Sony-Ericsson mobile</a></li>
<li><a href="http://www.g-loaded.eu/2007/02/25/abstractia-theme-for-wordpress/" rel="bookmark">Abstractia Theme for WordPress</a></li>
<li><a href="http://www.g-loaded.eu/2007/03/10/glossyblue-theme-for-wordpress/" rel="bookmark">GlossyBlue theme for WordPress</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2012/04/29/mobile-version-of-g-loaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Lessons learned from a recent OS upgrade</title>
		<link>http://www.g-loaded.eu/2012/04/28/lessons-learned-from-a-recent-os-upgrade/</link>
		<comments>http://www.g-loaded.eu/2012/04/28/lessons-learned-from-a-recent-os-upgrade/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 07:28:33 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Maintenance]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2664</guid>
		<description><![CDATA[From the time I had set up my first server at home over a decade ago, I&#8217;ve performed numerous operating system upgrades. Usually, it used to take me several hours &#8211; if not days &#8211; to complete each upgrade and make sure that everything would work as expected. During all these years, I&#8217;ve been working [...]]]></description>
				<content:encoded><![CDATA[<p>From the time I had set up my first server at home over a decade ago, I&#8217;ve performed numerous operating system upgrades. Usually, it used to take me several hours &#8211; if not days &#8211; to complete each upgrade and make sure that everything would work as expected. During all these years, I&#8217;ve been working hard whenever time permitted it in order to make several pieces of software work flawlessly together requiring the least possible time for manual maintenance. Despite the deployment of my services having reached a high level of automation, I recently spent almost a whole day upgrading CentOS in one of my remote boxes.<br />
<span id="more-2664"></span><br />
According to my initial plan this procedure shouldn&#8217;t have taken longer than 2-3 hours. I had simulated it in Virtualbox at home and I knew exactly what to expect. Unfortunately, I didn&#8217;t strictly follow the plan, but deviated from it 2 times and this almost cost me the whole day.</p>
<p>The first thing that went wrong had to do with testing my backup, a step that was not in my original plan. I keep my server data in encrypted containers on Amazon S3 using <em>duplicity</em>. Although I have restored data from the backup numerous times and I was certain it worked OK, I had this strange idea to test the restoration of the data to a virtual machine at home just to make sure. For that purpose I happened to use a VM whose state had been saved several days ago, meaning that its time was way out of sync. That was a detail I had n&#8217;t taken into account. So, when I tried to restore the data on that box, I got a glorious exception from duplicity informing me that it could not find any signatures on the S3 bucket. That message was really unhelpful and it resulted in wasting many hours trying to figure out what was wrong with my backup or duplicity, until I finally realized that it was the box&#8217;s wrong time that had caused the exception. Once the time was updated, duplicity worked like a charm.</p>
<p>The second thing that went wrong had to do with pvGRUB, which is based on the grub 0.97 code and used to boot Xen DomUs (guests). Due to some limitations of the VPS provider regarding pvgrub, I have to use a very small partition that contains a GRUB configuration file which eventually boots CentOS (root LVM setup). This small partition was initially formatted using ext3. Again, I had a strange hunch to reformat that small partition to ext4! This would have absolutely no benefit, but at that moment I had just thought &#8220;why not?&#8221;. I was completely unaware that grub 0.97 and eventually pvgrub did not support the <em>ext4</em> filesystem. To make things even worse, pvgrub deceptively reported that it had recognized the partition as ext2, but could not locate the file I had configured it to load. Disaster. It was a few hours later, after having gone through several bug trackers and mailing lists, that I realized that pvgrub did not actually support reading from ext4. I reformatted the small partition to ext3 and everything went on smoothly.</p>
<p>If I had stuck to the original plan, none of the incidents above would have taken place. No matter how much I trust free software, deciding to experiment with it while I should be doing a specific job is admittedly one of the worst decisions possible. Regardless of how popular a piece of free software might be, it can still have serious bugs and limitations hidden in the last place you&#8217;d ever look. Lesson learned: <em>stay on your path and strictly follow the plan</em>.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2012/04/28/lessons-learned-from-a-recent-os-upgrade/">Lessons learned from a recent OS upgrade</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2006/09/05/mediawiki-upgrade-procedure/" rel="bookmark">MediaWiki Upgrade Procedure</a></li>
<li><a href="http://www.g-loaded.eu/2007/07/25/hard-disk-upgrade-on-an-old-motherboard/" rel="bookmark">Hard disk upgrade on an old motherboard</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2012/04/28/lessons-learned-from-a-recent-os-upgrade/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Limit the number of stored revisions per post in WordPress</title>
		<link>http://www.g-loaded.eu/2012/04/28/limit-the-number-of-stored-revisions-per-post-in-wordpress/</link>
		<comments>http://www.g-loaded.eu/2012/04/28/limit-the-number-of-stored-revisions-per-post-in-wordpress/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 02:52:28 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2662</guid>
		<description><![CDATA[It&#8217;s been a while since WordPress implemented revisions for posts and pages. Being able to revert a post or page to a previous state is a useful feature. However, I recently realized that WP creates a revision of the content every time it is saved, but there is no upper limit for the number of [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been a while since WordPress implemented revisions for posts and pages. Being able to revert a post or page to a previous state is a useful feature. However, I recently realized that WP creates a revision of the content every time it is saved, but there is no upper limit for the number of stored revisions. So, if you save your work quite often, it is very possible that the WordPress database is filled with numerous revisions of the content, which make the database grow in size quite aggressively. After thinking about it for a while, I realized that all those revisions are pretty useless to me. All I really care about is having a couple of recent revisions of each post or page available, so as to be able to get an idea of my recent changes.<br />
<span id="more-2662"></span><br />
It was only a matter of minutes to find out that it is possible to limit the number of stored revisions per post in WordPress. Open <code>wp-config.php</code> in your favorite editor and add the following:</p>
<pre class="codesnp">
/**
 * Revision management. Store 5 (+1 autosave) revisions per post.
 */
define('WP_POST_REVISIONS', 5);
</pre>
<p>The above setting forces WordPress to store only the 5 most recent revisions of the content. One extra revision is also saved because of the <em>autosave</em> feature.</p>
<p>The acceptable values for <code>WP_POST_REVISIONS</code> and their meanings are:</p>
<ul>
<li><strong>-1</strong>: store every revision (this is the <em>default</em>)</li>
<li><strong>0</strong>: do not store any revisions except for the one used for the autosave feature</li>
<li><strong>N (integer) > 0</strong>: store N revisions per post. Revisions are rotated so that only the N most recent recent ones are available.</li>
</ul>
<p>After getting rid of all those useless revisions that had piled up over the last months, I&#8217;m now quite happy with the size of the database. Although the idea of <em>automatic revisions</em> is fine, in my case, <em>on-demand revisions</em> would have been more useful and would make more sense in the way I author these posts.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2012/04/28/limit-the-number-of-stored-revisions-per-post-in-wordpress/">Limit the number of stored revisions per post in WordPress</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2007/02/02/wordpress-tip-schedule-the-publishing-of-a-post/" rel="bookmark">WordPress Tip: Schedule the publishing of a post</a></li>
<li><a href="http://www.g-loaded.eu/2007/11/06/move-comments-to-another-post-in-wordpress/" rel="bookmark">Move comments to another post in WordPress</a></li>
<li><a href="http://www.g-loaded.eu/2007/02/25/abstractia-theme-for-wordpress/" rel="bookmark">Abstractia Theme for WordPress</a></li>
<li><a href="http://www.g-loaded.eu/2007/03/10/glossyblue-theme-for-wordpress/" rel="bookmark">GlossyBlue theme for WordPress</a></li>
<li><a href="http://www.g-loaded.eu/2006/01/15/simple-recent-comments-wordpress-plugin/" rel="bookmark">Simple-Recent-Comments WordPress Plugin</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2012/04/28/limit-the-number-of-stored-revisions-per-post-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Restore original configuration files from RPM packages</title>
		<link>http://www.g-loaded.eu/2012/03/26/restore-original-configuration-files-from-rpm-packages/</link>
		<comments>http://www.g-loaded.eu/2012/03/26/restore-original-configuration-files-from-rpm-packages/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 20:24:27 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[System]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2619</guid>
		<description><![CDATA[By default, when the user installs software through the RPM Package Manager or through YUM, usually, the software&#8217;s configuration files included in the RPM do not replace the existing configuration files on the filesystem, but, if they differ from those that currently exist, they are saved with the rpmnew extension. In case the rpm is [...]]]></description>
				<content:encoded><![CDATA[<p>By default, when the user installs software through the <em>RPM Package Manager</em> or through <em>YUM</em>, usually, the software&#8217;s configuration files included in the RPM do not replace the existing configuration files on the filesystem, but, if they differ from those that currently exist, they are saved with the <em>rpmnew</em> extension. In case the rpm is already installed and is the latest version, the quickest way to get the original configuration file back is to uninstall and install the package again. Today, while on CentOS 6.2, I needed to restore the original <code>/etc/sysctl.conf</code> file, which is part of the <em>initscripts</em> package. In this case, uninstalling initscripts was out of the question as it would also remove half of the installed packages due to dependencies. So, I grabbed the chance to figure out and document what would be the quickest and easiest way to restore <code>/etc/sysctl.conf</code>, excluding downloading the package itself and <a href="http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/" title="How to extract the files contained in an RPM package">extract the RPM contents</a>. Fortunately, as soon as I opened yum&#8217;s man page and having spotted the new <strong>reinstall</strong> command, the solution was quite obvious.<br />
<span id="more-2619"></span><br />
For completeness, I hereby document the whole procedure that involves the verification and restoration of the original <code>/etc/sysctl.conf</code> hoping that new users might find these notes helpful.</p>
<p>First of all, I needed to know whether the <code>/etc/sysctl.conf</code> I had on my box differed from the original one. But, before doing that, I had to know which RPM package had installed that file. So, I used the <strong>rpm command</strong> to query this file:</p>
<pre class="console">
# rpm -qf /etc/sysctl.conf
initscripts-9.03.27-1.el6.centos.1.i686
</pre>
<p>So, the <em>initscripts</em> package had installed <code>/etc/sysctl.conf</code>.</p>
<p>Then I verified the initscripts package:</p>
<pre class="console">
# rpm -V initscripts
S.5....T.  c /etc/sysconfig/init
S.5....T.  c /etc/sysctl.conf
</pre>
<p>According to the following table:</p>
<pre class="codesnp">
S file Size differs
M Mode differs (includes permissions and file type)
5 MD5 sum differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ
</pre>
<p>the attributes: size, MD5 checksum and the modification time of <code>/etc/sysctl.conf</code> that existed on my system differed from the attributes of the original file.</p>
<p>Since I had no idea the exact changes I had made to that file at some earlier time, I needed to restore the original and re-modify it from scratch. The new yum &#8220;<strong>reinstall</strong>&#8221; command could be used to to do this quite easily.</p>
<p>First, I kept a copy of the current file:</p>
<pre class="console">
# mv /etc/sysctl.conf /etc/sysctl.conf.modified
</pre>
<p>Then I reinstalled initscripts using YUM&#8217;s reinstall command:</p>
<pre class="console">
# yum reinstall initscripts
Loaded plugins: downloadonly, fastestmirror, priorities
Setting up Reinstall Process
Loading mirror speeds from cached hostfile
 * base: ftp.ntua.gr
 * epel: ftp.ntua.gr
 * extras: ftp.ntua.gr
 * ius: mirror.rackspace.co.uk
 * updates: centosr3.centos.org
6 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package initscripts.i686 0:9.03.27-1.el6.centos.1 will be reinstalled
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================
 Package                              Arch                          Version                                           Repository                        Size
=============================================================================================================================================================
Reinstalling:
 initscripts                          i686                          9.03.27-1.el6.centos.1                            updates                          934 k

Transaction Summary
=============================================================================================================================================================
Reinstall     1 Package(s)

Total download size: 934 k
Installed size: 5.4 M
Is this ok [y/N]: y
Downloading Packages:
initscripts-9.03.27-1.el6.centos.1.i686.rpm                                                                                           | 934 kB     00:02
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : initscripts-9.03.27-1.el6.centos.1.i686                                                                                                   1/1

Installed:
  initscripts.i686 0:9.03.27-1.el6.centos.1

Complete!
</pre>
<p>Verify the initscripts package again:</p>
<pre class="console">
# rpm -V initscripts
S.5....T.  c /etc/sysconfig/init
</pre>
<p>No verification errors for <code>/etc/sysctl.conf</code>. Note that reinstalling the package did not touch the <code>/etc/sysconfig/init</code> file. It has been mentioned previously that rpm packages do not overwrite existing configuration files.</p>
<p>I had the original file back and I could then start customizing it from scratch.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2012/03/26/restore-original-configuration-files-from-rpm-packages/">Restore original configuration files from RPM packages</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2009/04/09/yum-priorities-configuration-for-a-centos-desktop/" rel="bookmark">YUM-Priorities Configuration for a CentOS Desktop</a></li>
<li><a href="http://www.g-loaded.eu/2006/04/05/how-to-build-rpm-packages-on-fedora/" rel="bookmark">How To Build RPM Packages on Fedora</a></li>
<li><a href="http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/" rel="bookmark">How to extract RPM or DEB packages</a></li>
<li><a href="http://www.g-loaded.eu/2011/05/12/running-supervisor-3-on-centos-5/" rel="bookmark">Running supervisor 3 on CentOS 5</a></li>
<li><a href="http://www.g-loaded.eu/2011/03/02/rhel-kernel-source-released-with-patches-already-applied/" rel="bookmark">RHEL kernel source released with patches already applied</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2012/03/26/restore-original-configuration-files-from-rpm-packages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>The 1st Rule of Discussion</title>
		<link>http://www.g-loaded.eu/2012/02/09/the-1st-rule-of-discussion/</link>
		<comments>http://www.g-loaded.eu/2012/02/09/the-1st-rule-of-discussion/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 06:28:02 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[World]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2603</guid>
		<description><![CDATA[I cannot overstate how disappointed I am after having a discussion with people who tend to partially mix the various declarations of Rights and the Law in order to make a point valid enough to justify their actions. I am not really the one to tell whether such behavior derives from competence or incompetence. What [...]]]></description>
				<content:encoded><![CDATA[<p>I cannot overstate how disappointed I am after having a discussion with people who tend to partially mix the various declarations of Rights and the Law in order to make a point valid enough to justify their actions. I am not really the one to tell whether such behavior derives from competence or incompetence. What i do know is that I will never again join any discussion which, at least, is not based on <a href="http://en.wikipedia.org/wiki/Common_sense">common sense</a>. Ever.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2012/02/09/the-1st-rule-of-discussion/">The 1st Rule of Discussion</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2011/03/01/forking-apache-licensed-software-on-github-and-bitbucket/" rel="bookmark">Forking Apache-licensed software on Github and Bitbucket</a></li>
<li><a href="http://www.g-loaded.eu/2007/02/24/creative-commons-v30-licenses-launched/" rel="bookmark">Creative Commons v3.0 Licenses Launched</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2012/02/09/the-1st-rule-of-discussion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Speed up Apache by including htaccess files into httpd.conf</title>
		<link>http://www.g-loaded.eu/2011/11/28/speed-up-apache-by-including-htaccess-files-into-httpd-conf/</link>
		<comments>http://www.g-loaded.eu/2011/11/28/speed-up-apache-by-including-htaccess-files-into-httpd-conf/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 05:12:59 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.g-loaded.eu/?p=2522</guid>
		<description><![CDATA[It is widely known that, if virtual hosts in Apache (httpd) are configured to permit vhost administrators override specific configuration options at the directory level using htaccess files, the web server consumes valuable time in order to check whether an htaccess file exists in every directory included in the requested path and parse it. On [...]]]></description>
				<content:encoded><![CDATA[<p>It is widely known that, if virtual hosts in Apache (httpd) are configured to permit vhost administrators override specific configuration options at the directory level using htaccess files, the web server consumes valuable time in order to check whether an htaccess file exists in every directory included in the requested <em>path</em> and parse it. On the other hand, many popular web applications utilize htaccess files, especially those residing in the <em>DocumentRoot</em>, in order to implement pretty URLs or HTTP redirections, which is extremely convenient since the virtual host owner does not have to edit httpd&#8217;s configuration directly. So, I had the idea to include the htaccess file of the DocumentRoot directory on the filesystem into the virtual host&#8217;s configuration.<br />
<span id="more-2522"></span><br />
Suppose we have the <code>/home/example.org/public_html/</code> directory on the filesystem, which serves as the document root of our virtualhost. The relevant httpd configuration for that vhost would look like this:</p>
<pre class="codesnp">
&lt;VirtualHost 123.123.123.123:80&gt;
  ServerName example.org:80
  ...
  DocumentRoot /home/example.org/public_html
  &lt;Directory /home/example.org/public_html&gt;
    AllowOverride All
    ...
  &lt;/Directory&gt;
  ...
&lt;/VirtualHost&gt;
</pre>
<p>In order to prevent the htaccess lookups on the filesystem without losing the htaccess functionality &#8211; at least at the DocumentRoot level- I transformed the configuration to the following:</p>
<pre class="codesnp">
&lt;VirtualHost 123.123.123.123:80&gt;
  ServerName example.org:80
  ...
  DocumentRoot /home/example.org/public_html
  &lt;Directory /home/example.org/public_html&gt;
    AllowOverride None
    Include /home/example.org/public_html/.htaccess
    ...
  &lt;/Directory&gt;
  ...
&lt;/VirtualHost&gt;
</pre>
<p>Let&#8217;s see what we have accomplished with this:</p>
<ol>
<li>httpd does not waste any time looking for and parsing htaccess files resulting in faster request processing,</li>
<li>the virtual host administrator can still override the configuration options of the document root manually or through the web interface of the web application.</li>
</ol>
<p>Seems like a win-win situation performance and functionality wise.</p>
<p>But, as usual, there is no win-win situation without a downside. In this case, the above trick weakens the server&#8217;s security. Let&#8217;s see how.</p>
<p>Although the configuration of a directory can be set in both <code>httpd.conf</code> and the directory&#8217;s htaccess file, not all directives can be used in both contexts. htaccess files support a subset of the directives that can be used in the <code>Directory</code> context within <code>httpd.conf</code>. By including the htaccess file in httpd&#8217;s configuration the vhost admin is no longer restricted to that subset of directives.</p>
<p>This means that by implementing the above configuration the virtual host administrator is granted more privileges regarding the configuration of the virtual host. This also means that a potential attacker, that would exploit a vulnerability of the web application, would be granted the same privileges once he got write access to that htaccess file.</p>
<p>So, although this trick may seem like a good idea at first, it is in fact a rather <strong>bad idea</strong> and <em>should never be used in production, unless you trust the virtual host administrator and the web application</em>. I do not intend to use such a configuration and I do not recommend it. There are by far better ways to speed up Apache.</p>
<p>Your comments and suggestions are welcome.</p>
<p class="cc-block"><em><a href="http://www.g-loaded.eu/2011/11/28/speed-up-apache-by-including-htaccess-files-into-httpd-conf/">Speed up Apache by including htaccess files into httpd.conf</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>.</p><div class='yarpp-related-rss'>

<h4>Related Articles</h4>

<ul><li><a href="http://www.g-loaded.eu/2007/02/21/htaccess-cheat-sheet/" rel="bookmark">.htaccess Cheat Sheet</a></li>
<li><a href="http://www.g-loaded.eu/2007/08/10/ssl-enabled-name-based-apache-virtual-hosts-with-mod_gnutls/" rel="bookmark">SSL-enabled Name-based Apache Virtual Hosts with mod_gnutls</a></li>
<li><a href="http://www.g-loaded.eu/2010/03/28/script-apache-error-report/" rel="bookmark">Script for Apache Error Report</a></li>
<li><a href="http://www.g-loaded.eu/2008/05/10/use-mod_deflate-to-compress-web-content-delivered-by-apache/" rel="bookmark">Use mod_deflate to Compress Web Content delivered by Apache</a></li>
<li><a href="http://www.g-loaded.eu/2011/09/09/mozilla-thunderbird-speed-up/" rel="bookmark">Mozilla Thunderbird speed up</a></li></ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2011/11/28/speed-up-apache-by-including-htaccess-files-into-httpd-conf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Object Caching 1388/1527 objects using apc

Served from: www.g-loaded.eu @ 2013-05-23 16:13:57 -->
