<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkYERX0_eip7ImA9WhRaE0o.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816</id><updated>2012-02-16T08:41:44.342+01:00</updated><category term="BBC" /><category term="Antwerp" /><category term="home made" /><category term="sysadmin" /><category term="mentor summit" /><category term="new start" /><category term="shopping" /><category term="FOSDEM" /><category term="offline" /><category term="GSoC 2010" /><category term="Windows" /><category term="Apple" /><category term="add-on" /><category term="upgrade" /><category term="time management" /><category term="Gent" /><category term="insight" /><category term="convention" /><category term="test" /><category term="rename multiple tables" /><category term="encryption" /><category term="travel" /><category term="git" /><category term="trains" /><category term="iPod" /><category term="retraining" /><category term="vim" /><category term="hard disk space" /><category term="future" /><category term="weather" /><category term="scripting" /><category term="xfs" /><category term="reading" /><category term="waiting" /><category term="MySQL" /><category term="wifi" /><category term="san francisco" /><category term="exams" /><category term="GSoC 2011" /><category term="security" /><category term="semantic web" /><category term="going out" /><category term="LHC" /><category term="apt" /><category term="battery" /><category term="UGent" /><category term="social web" /><category term="bash" /><category term="memory effect" /><category term="computers" /><category term="working" /><category term="Firefox" /><category term="iPhone" /><category term="software" /><category term="April's Fool day" /><category term="fun" /><category term="energy saving" /><category term="Intel" /><category term="moving" /><category term="Python" /><category term="mail" /><category term="resolutions" /><category term="spare parts" /><category term="New Year" /><category term="to do" /><category term="developing" /><category term="universal power adaptor" /><category term="web development" /><category term="gadget" /><category term="conference" /><category term="electricity" /><category term="e-government" /><category term="archive" /><category term="memories" /><category term="MicroClient Jr DX" /><category term="shell" /><category term="plugin" /><category term="internet" /><category term="concept" /><category term="layout" /><category term="physics" /><category term="squeeze" /><category term="microcode" /><category term="dual boot" /><category term="firewall" /><category term="e-learning" /><category term="update" /><category term="hardware" /><category term="science" /><category term="database" /><category term="linux" /><category term="math" /><category term="birthday" /><category term="vacation" /><category term="Debian" /><category term="php" /><category term="programming" /><category term="phpmyadmin" /><category term="party" /><category term="music" /><category term="games" /><category term="aniversary" /><category term="syntax highlighting" /><category term="blog" /><category term="Google" /><category term="relaxing" /><category term="television" /><category term="Open Source" /><category term="idle wondering" /><category term="stock exchange" /><category term="RIP" /><category term="kernel" /><category term="ATI" /><category term="house" /><category term="drupal" /><category term="structure" /><category term="looking for a job" /><category term="server" /><category term="chaos" /><category term="Ubuntu" /><category term="iptables" /><category term="health" /><category term="replication" /><title>Pool of oblivion</title><subtitle type="html">Because the World Wide Web keeps on growing - as the universe does - chances are that most that is added to it, will be lost or forgotten.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://ruleant.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>113</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/poolofoblivion" /><feedburner:info uri="poolofoblivion" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DU4HSX84eyp7ImA9WhRbGEw.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-9197343514503384781</id><published>2012-02-09T21:05:00.000+01:00</published><updated>2012-02-09T21:05:38.133+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-09T21:05:38.133+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="FOSDEM" /><category scheme="http://www.blogger.com/atom/ns#" term="Open Source" /><title>Fosdem 2012 impressions</title><content type="html">&lt;div&gt;Back from FOSDEM 2012 and it was great again. More than 400 talks, about 5000 people attending, spread over multiple devrooms on ULB campus Solbosch in Brussels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Listing everything I've done and seen is almost impossible, so I'll mention some highlights:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.coreboot.org/Welcome_to_coreboot"&gt;Coreboot&lt;/a&gt; is now available for a limited set of laptops&lt;/li&gt;
&lt;li&gt;CERN is using Open Source Hardware&lt;/li&gt;
&lt;li&gt;Tips and tricks for caching in web development&lt;/li&gt;
&lt;li&gt;History of Open Source licenses, and other license related stuff&lt;/li&gt;
&lt;li&gt;Team meeting with phpMyAdmin, outlining the future of the project &lt;/li&gt;
&lt;li&gt;The talk of &lt;a href="https://www.freedomboxfoundation.org/"&gt;Freedombox&lt;/a&gt; mentions &lt;a href="https://www.globalscaletechnologies.com/t-dreamplugdetails.aspx"&gt;dreamplug&lt;/a&gt; : looks like a nice toy :)&lt;/li&gt;
&lt;li&gt;Meeting a lot of people, both from my own team, people I've met at GSoC mentor summit, people from UGent and people I haven't met before&lt;/li&gt;
&lt;li&gt; Community building : what works&lt;/li&gt;
&lt;li&gt;Why Open Source should get non-geeks involved in their projects&lt;/li&gt;
&lt;/ul&gt;And much, much more.&lt;br /&gt;
&lt;br /&gt;
Looking forward to the next edition already : about 360 days to go. :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-9197343514503384781?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/9197343514503384781/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=9197343514503384781" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/9197343514503384781?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/9197343514503384781?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/aV7fdjGELlU/fosdem-2012-impressions.html" title="Fosdem 2012 impressions" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2012/02/fosdem-2012-impressions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMMQH4-fip7ImA9WhRbEkU.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-8623345221697227975</id><published>2012-02-03T17:43:00.001+01:00</published><updated>2012-02-03T17:44:41.056+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-03T17:44:41.056+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="phpmyadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="FOSDEM" /><category scheme="http://www.blogger.com/atom/ns#" term="Open Source" /><title>Fosdem 2012</title><content type="html">&lt;div&gt;&lt;p&gt;The yearly meeting of Free and Open Source Software Developers and enthousiasts is about to start. This weekend about 5000 people will come to Brussels for &lt;a href="http://fosdem.org"&gt;FOSDEM&lt;/a&gt;, to attend presentations, meet people and share knowledge.&lt;br&gt;
I intend to go as well, if my health allows : I was hit by a virus in the beginning of this week and I am still recovering.&lt;br&gt;
Anyway, apart from a lot of talks and presentations I want to go to, there is also a team meeting planned of my project, &lt;a href="http://www.phpmyadmin.net"&gt;phpMyAdmin&lt;/a&gt;. And, at some point, I hope to run into some people I met at GSoC mentor summit last year.&lt;/p&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-8623345221697227975?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/8623345221697227975/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=8623345221697227975" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/8623345221697227975?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/8623345221697227975?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/-Eb0fouOMeo/fosdem-2012.html" title="Fosdem 2012" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2012/02/fosdem-2012.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4DQ38zeSp7ImA9WhRWFk8.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-285461015063641261</id><published>2012-01-03T22:42:00.001+01:00</published><updated>2012-01-03T22:42:52.181+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T22:42:52.181+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="home made" /><category scheme="http://www.blogger.com/atom/ns#" term="concept" /><category scheme="http://www.blogger.com/atom/ns#" term="physics" /><title>Concept of a home made icy transistor</title><content type="html">Some time ago I found out that ice (solid water) is a semi-conductor, like f.e. silicon and germanium. So this means that theoretically a diode or transistor can be made out of it, even at home with common products.&lt;br /&gt;
&lt;br /&gt;
What follows is a back of the envelope reasoning, not a proof of concept, as I haven't tried it, but it might work.&lt;br /&gt;
&lt;br /&gt;
First some rudimentary background about &lt;a href="https://en.wikipedia.org/wiki/Semi-conductor"&gt;semi-conductors&lt;/a&gt; and how to make a simple component, like a diode or a transistor. A semi-conductor is basically an insulator that conducts electricity only in some circumstances, for instance when a semi-conductor is doped with another material to add electrons (negative, n-type) or to create '&lt;a href="https://en.wikipedia.org/wiki/Electron_hole"&gt;holes&lt;/a&gt;' (positive, p-type), which can conduct electricity.&lt;br /&gt;
If a n-type semiconductor is joined by a p-type, you get a diode. If another p-type or n-type is added to create a npn or pnp-sandwich, you get a transistor.&lt;br /&gt;
&lt;br /&gt;
So if frozen water (pure water (H2O), distilled) forms a semi-conductor lattice, it needs to be doped with something else to create the holes and electrons. More research is necessary to find suitable candidates, but for instance kitchen salt consists of sodium (Na) and chlorine (Cl) atoms which, when diluted in (pure) water, become positively and negatively charged ions.&lt;br /&gt;
By adding an electrical charge on two sides of the solution (pure water with f.e. a little bit of kitchen salt), most of the positively charged ions would be transfered to one side and the negatively charged ions to the other side. Freezing the solution at that moment would create an ice cube with a p-type and an n-type side, thus a diode.&lt;br /&gt;
Cutting a second diode ice cube in half and joining it with the other one, creating a npn or pnp sandwich results in a transistor.&lt;br /&gt;
&lt;br /&gt;
This is just an idea, a lot of things need to be solved to make it work. For instance, what materials should be used to make n-type and p-type semi-conductors out of frozen water? How much of the material is needed? Will this work on a macroscopic scale (regular sized ice-cubes), or should the ice-cube be very tiny?&lt;br /&gt;
Where should the electrodes be positioned to separate the ions and what charge is necesarry?&lt;br /&gt;
Should the ions be evenly spread, and how can this be achieved? &lt;br /&gt;
And if it works, is it a practical diode? It would need subzero temperatures to remain solid, but it could melt by the heat dissipation of the electrical current flowing in the icy diode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-285461015063641261?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/285461015063641261/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=285461015063641261" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/285461015063641261?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/285461015063641261?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/yey4xXPby2Q/concept-of-home-made-icy-transistor.html" title="Concept of a home made icy transistor" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2012/01/concept-of-home-made-icy-transistor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcESX08eCp7ImA9WhRWFk8.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-208805969190532772</id><published>2012-01-01T00:01:00.002+01:00</published><updated>2012-01-03T22:43:28.370+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T22:43:28.370+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="resolutions" /><category scheme="http://www.blogger.com/atom/ns#" term="New Year" /><title>What a year</title><content type="html">&lt;div&gt;2011 has been amazing. There were a lot of firsts and a few big changes in my life : &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://ruleant.blogspot.com/2011/05/house.html"&gt;I bought a house&lt;/a&gt;. One of my &lt;a href="http://ruleant.blogspot.com/2011/01/happy-2011.html"&gt;resolutions for 2011&lt;/a&gt; was to find a new place to live and I managed to do this. This time last year I had no idea I would now be sitting in the living room of my own house, writing this post.&lt;br /&gt;
It all went rather quick, first looking for a new apartment/house to rent, then deciding to buy one, followed by the search, finding one, and then all the administration and negotiating with the bank and finally, &lt;a href="http://ruleant.blogspot.com/2011/07/under-construction.html"&gt;moving in and doing small construction works&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
In the mean time I was a first time mentor for phpMyAdmin in the Google Summer of Code (GSoC) program. My student made phpMyAdmin compliant with Drizzle database, a MySQL fork.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Because of this mentoring, I was invited by Google to attend the &lt;a href="http://ruleant.blogspot.com/2011/10/gsoc-mentor-summit-2011.html"&gt;GSoC Mentor Summit&lt;/a&gt;, which was a great experience, meeting a lot of interesting people and discussing FOSS and GSoC related issues at Google Headquarters.&lt;br /&gt;
&lt;br /&gt;
This also meant I got to travel to the US, another first, and &lt;a href="http://ruleant.blogspot.com/2011/11/california.html"&gt;visit San Francisco and a part of California&lt;/a&gt;. This was an amazing experience.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For 2012 I have some goals and resolutions :&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;continue contributing to Open Source&lt;/li&gt;
&lt;li&gt;be a GSoC mentor again&lt;/li&gt;
&lt;li&gt;write an extensive article/blogpost about good passwords practices, or set up a website/wiki dedicated to it.&lt;/li&gt;
&lt;li&gt;build a homemade transistor using ice (solid water), or &lt;a href="http://ruleant.blogspot.com/2012/01/concept-of-home-made-icy-transistor.html"&gt;write about the theoretical possibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;start reading again and keep a steady reading pace. I didn't manage to keep up reading in 2011.&lt;/li&gt;
&lt;li&gt;further improve my house&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-208805969190532772?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/208805969190532772/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=208805969190532772" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/208805969190532772?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/208805969190532772?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/bEOhyvqMG3k/what-year.html" title="What a year" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2012/01/what-year.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4FRHoyeSp7ImA9WhRTFk4.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-3734471568512947079</id><published>2011-11-07T01:40:00.000+01:00</published><updated>2011-11-07T04:01:55.491+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T04:01:55.491+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="san francisco" /><title>California</title><content type="html">&lt;div&gt;Waiting in the lobby of the hotel for the shuttle to take me back to the airport. And that will be the conclusion of a 2 week adventure starting at the Google campus for the GSoC Mentor Summit, a road trip visiting several places in North California and an extensive exploration of San Francisco city.&lt;br /&gt;
&lt;br /&gt;
To summarize : it has been amazing. The things I've seen, the nature, the wildlife, the atmosphere, the people I've met and talked to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So what did I learn :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;One can pay almost anything with a credit card, even drinks in a bar or a parking meter.&lt;/li&gt;
&lt;li&gt;Having an insurance is a good thing. If you have one, you will be helped immediately and with a smile. If you don't have one, you will still get a smile, but you are presented a bill before you are helped.&lt;/li&gt;
&lt;li&gt;San Francisco is a nice city, full of friendly and patient people (exception for cab drivers, but that counts for probably all cab drivers in the world) but also a city of controversy. Rich and poor live together, or more precisely, next to each other, and you can take that quite literally. One moment you're walking down a fancy shopping street, and one block further you find yourself surrounded by homeless people.&lt;/li&gt;
&lt;li&gt;Automatic gearboxes are nice for driving in the city and on freeways. Cruise control is also a very nice feature. But when doing some hills you just crave for a manual gearbox.&lt;/li&gt;
&lt;li&gt;Americans are very good at putting signs for anything, usually stating the obvious. It can be a helpful reminder, or in my case, being a tourist visiting the US for the first time, very convenient. But when you need a sign you can't find one.&lt;/li&gt;
&lt;li&gt;I still haven't come to grasp with traffic rules for crossroads. On crossroads without a traffic light and stop signs on all corners, I haven't figured out yet who gets to drive first. The one who came to the crossroad first, or the one coming from the right.&lt;br /&gt;
On cross roads with traffic lights, it is usually allowed to drive when it's red if you are going right, but not always. So I usually stopped for red anyway, just to be safe. But this sometimes resulted in being notified by the cars behind me that I should be going.&lt;/li&gt;
&lt;li&gt;Driving by bike in San Francisco is a very nice experience. The challenge is to find streets that are not too steep.&lt;/li&gt;
&lt;/ul&gt;It was a nice experience and I hope to return some day.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-3734471568512947079?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/3734471568512947079/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=3734471568512947079" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/3734471568512947079?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/3734471568512947079?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/EEwAIPU-N-k/california.html" title="California" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/11/california.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QCQnY5eCp7ImA9WhdaFEw.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-2012413067346948576</id><published>2011-10-24T03:21:00.002+02:00</published><updated>2011-10-24T03:22:43.820+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-24T03:22:43.820+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="phpmyadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="GSoC 2011" /><category scheme="http://www.blogger.com/atom/ns#" term="Open Source" /><category scheme="http://www.blogger.com/atom/ns#" term="mentor summit" /><title>GSoC Mentor Summit 2011</title><content type="html">I'm on the bus back to the hotel, after a weekend of meeting and collaboration with a lot of inspired Open Source developers. We met at Google Headquarters for the annual GSoC Mentor Summit, discussing last year's Google Summer of Code in particular and Open Source collaboration in general. More than 300 people of 175 participating organisations, from all over the world, were present.&lt;br /&gt;
&lt;br /&gt;
It was my first time, both as a GSoC mentor for the phpMyAdmin project as on attending the summit, but it was great (or awesome, like some would state it). I've met and talked with many people. I learned a lot from the different sessions I attended and was pleasantly surprised about how much drive, knowledge and experience was present.&lt;br /&gt;
&lt;br /&gt;
Awesome!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-2012413067346948576?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/2012413067346948576/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=2012413067346948576" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/2012413067346948576?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/2012413067346948576?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/28cr-4czBts/gsoc-mentor-summit-2011.html" title="GSoC Mentor Summit 2011" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><georss:featurename>Wild Palms Hotel, 910 E Fremont Ave, Sunnyvale, CA 94087-3702, USA</georss:featurename><georss:point>37.352062 -122.01353799999998</georss:point><georss:box>3.4802059999999955 178.22083700000002 71.223918 -62.24791299999998</georss:box><feedburner:origLink>http://ruleant.blogspot.com/2011/10/gsoc-mentor-summit-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIMRXg8cCp7ImA9WhdQFE4.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-6676186601346986175</id><published>2011-08-15T20:20:00.001+02:00</published><updated>2011-08-15T20:23:04.678+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-15T20:23:04.678+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aniversary" /><category scheme="http://www.blogger.com/atom/ns#" term="blog" /><title>5 years</title><content type="html">Exactly 5 years ago, I posted a '&lt;a href="http://ruleant.blogspot.com/2006/08/first-post.html"&gt;First Post&lt;/a&gt;' on this blog. Back then I was wondering how long this blog would survive. Apparently it still exists. Going over a few posts of the past 5 years I noticed there were some active periods and some slower ones. Times were I posted things that I saw on the streets or read in the newspaper, but I think my blog has evolved into a space were I share IT and technology related stuff that I discover, am working on or I shouldn't forget.&lt;br /&gt;
By the way, the top 3 of most visited posts over the last 5 years are IT related :&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://ruleant.blogspot.com/2007/08/two-way-mysql-replication.html"&gt;Two-way MySQL replication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ruleant.blogspot.com/2009/03/rename-multiple-tables-in-mysql.html"&gt;Rename multiple tables in MySQL database&lt;/a&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ruleant.blogspot.com/2007/05/gadget-keyboard.html"&gt;Gadget Keyboard&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;BTW : A top 5 of the most popular post of the last 30 days is in the column on the right.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-6676186601346986175?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/6676186601346986175/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=6676186601346986175" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6676186601346986175?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6676186601346986175?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/c0pdhIept9c/5-years.html" title="5 years" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/08/5-years.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4HR3s-eip7ImA9WhdTEUg.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-3253802275244125749</id><published>2011-07-08T22:26:00.001+02:00</published><updated>2011-07-08T22:28:56.552+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-08T22:28:56.552+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="house" /><category scheme="http://www.blogger.com/atom/ns#" term="moving" /><category scheme="http://www.blogger.com/atom/ns#" term="working" /><title>Under construction</title><content type="html">Today my holidays start and I will spend them ... working : Tomorrow I will start redecorating my new house. Basically it will be just some cleaning, painting, and small repairs, no major de- and reconstruction.&lt;br /&gt;
In two weeks I plan to move to the new place and I hope to be ready by then, and I still have to do a lot of packing.&lt;br /&gt;
The next three weeks will be quite busy, just like the last 3 months actually. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-3253802275244125749?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/3253802275244125749/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=3253802275244125749" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/3253802275244125749?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/3253802275244125749?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/I2-jFnhGMR0/under-construction.html" title="Under construction" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/07/under-construction.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MHRHczeip7ImA9WhZXFEg.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-4744720230876128268</id><published>2011-05-03T22:42:00.001+02:00</published><updated>2011-05-03T22:43:55.982+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-03T22:43:55.982+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="new start" /><category scheme="http://www.blogger.com/atom/ns#" term="house" /><category scheme="http://www.blogger.com/atom/ns#" term="moving" /><title>House</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-oNTfPS91cXM/TcBh1Tu46MI/AAAAAAAAAE0/Mw1EQuva1Pk/s1600/3082847_1.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-oNTfPS91cXM/TcBh1Tu46MI/AAAAAAAAAE0/Mw1EQuva1Pk/s320/3082847_1.jpg" width="240" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The front&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;For the last few weeks and months, I've been looking for a new place to live, but today I found a house that looked nice and affordable. So I bought it.&lt;br /&gt;
It sounds very simply put that way, but basically that's what I did. I visited it, inspected, decided to buy and came to an agreement with the current owner.&lt;br /&gt;
&lt;br /&gt;
It's big enough for me, situated in a quiet neighborhood, close to my work, in a good state, and for a fair price.&lt;br /&gt;
&lt;br /&gt;
But this is of course only the beginning of it. Now starts the hassle of securing a loan, planning to move, looking for cardboard boxes (to move things in, or if something goes wrong, to live in ;) ), start packing, notify my current landlord, and a lot of administration, ...&lt;br /&gt;
&lt;br /&gt;
A lot of things to do in the next few weeks, that and going to work, mentoring for GSoC, and my normal every day and social live. :)&lt;br /&gt;
&lt;br /&gt;
But it's all very exciting!&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/-a-atSpL_dGQ/TcBh_SrOTxI/AAAAAAAAAFA/R9aRsGZd7Xk/s200/3082847_3.jpg" width="200" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The view, old picture, the weather is much nicer at the moment ;)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/-phezrVXNLcU/TcBiBt7JeMI/AAAAAAAAAFU/U6yBqm3ntLA/s200/3082847_8.jpg" width="200" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The living room (not my furniture)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/-ofhydumoP3o/TcBh-bht5TI/AAAAAAAAAE4/ToQW-37yJoQ/s200/3082847_9.jpg" width="200" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The stairs, quite fond of them actually.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-4744720230876128268?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/4744720230876128268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=4744720230876128268" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/4744720230876128268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/4744720230876128268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/hzXwlOAozkw/house.html" title="House" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-oNTfPS91cXM/TcBh1Tu46MI/AAAAAAAAAE0/Mw1EQuva1Pk/s72-c/3082847_1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/05/house.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08AR34yfCp7ImA9WhZQE00.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-6504236299887889615</id><published>2011-04-20T15:21:00.002+02:00</published><updated>2011-04-20T15:24:06.094+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-20T15:24:06.094+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="developing" /><title>git subtree module</title><content type="html">Did you ever want to merge an external git tree with yours, while keeping the commit history? Or do you want to create a new git repository from a folder in your project, keeping the history?&lt;br /&gt;
&lt;br /&gt;
Then the git &lt;a href="https://github.com/apenwarr/git-subtree"&gt;subtree module&lt;/a&gt; is what you need. It let's you import a complete git repo (with commit history) into your project, and add the files to a folder you specify.&lt;br /&gt;
&lt;br /&gt;
For example :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$git subtree add --prefix=other_project \
     git://github.com/your_tree/your_project.git master&lt;/pre&gt;&lt;br /&gt;
imports the &lt;i&gt;master&lt;/i&gt; branch of your git repository located in &lt;i&gt;git://github.com/your_tree/your_project.git&lt;/i&gt; into the folder &lt;i&gt;other_project&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
BTW: the subtree module is not part of the core git package. So if you want to use it, you will have to &lt;a href="https://github.com/apenwarr/git-subtree/blob/2793ee6ba6da57d97e9c313741041f7eb2e88974/INSTALL"&gt;install&lt;/a&gt; the module first.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://github.com/apenwarr/git-subtree/downloads"&gt;Download&lt;/a&gt; the git subtree module and extract it, or clone it :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$git clone https://github.com/apenwarr/git-subtree&lt;/pre&gt;&lt;br /&gt;
In the git-subtree directory, run&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$chmod u+x install.sh&lt;/pre&gt;&lt;br /&gt;
and as root :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#./install.sh&lt;/pre&gt;&lt;br /&gt;
This will copy the git subtree module to the git script folder. You can now use the git subtree module.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-6504236299887889615?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/6504236299887889615/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=6504236299887889615" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6504236299887889615?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6504236299887889615?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/TM2nkHIKc8o/git-subtree-module.html" title="git subtree module" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/04/git-subtree-module.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AFRH4_cCp7ImA9WhZSGUk.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-5616127172192225720</id><published>2011-04-04T17:57:00.004+02:00</published><updated>2011-04-04T21:35:15.048+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-04T21:35:15.048+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="server" /><category scheme="http://www.blogger.com/atom/ns#" term="firewall" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="iptables" /><title>Reduce firewall configuration complexity using iptables with chains</title><content type="html">&lt;h4&gt;Introduction&lt;/h4&gt;Setting up a firewall on your *nix box, being it a workstation, laptop, or server, is always a good idea. In most cases, you can do with some &lt;a href="http://www.linuxconfig.org/collection-of-basic-linux-firewall-iptables-rules"&gt;simple firewall rules&lt;/a&gt;, f.e. on your laptop, &lt;a href="http://www.linuxconfig.org/collection-of-basic-linux-firewall-iptables-rules#2-rule-iptables-to-reject-all-incoming-network-connections"&gt;block all incoming requests&lt;/a&gt; (except the established connections, i.e. the replies on the outgoing requests you made), or on a simple webserver (allow port 80 only).&lt;br /&gt;
&lt;br /&gt;
But if you need more complex rules, f.e. a server that hosts a website available for the entire internet, but with an ssh and samba service that should only be available for the local subnet, or even some specific IP addresses, it becomes a bit more complex.&lt;br /&gt;
And if you want to filter the outgoing traffic as well, your iptables rules get a mess after a while, and when you want to change anything, chances of a mistake or forgetting something are high, which may result in locking yourself out of your box (at least for remote access), or leaving something open that shouldn't.&lt;br /&gt;
&lt;br /&gt;
To make your rules more manageable, you can make use of chains in your iptables rules. I got some inspiration in &lt;a href="http://www.remoteroot.net/2007/07/18/10/"&gt;an article&lt;/a&gt; that uses chains to make iptables more efficient (faster). My goal was to get easier to read and configure iptables rules, but it will result in faster handling of packets as well.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Setup&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;A web service should be available from all networks (i.e. internet) on port 80 (http) and 443 (https)&lt;/li&gt;
&lt;li&gt;The server can be managed remotely using ssh (port 20) and webmin (port 10000), but only from a limited set of IP addresses (admin PC's).&lt;/li&gt;
&lt;li&gt;The server hosts a samba service (several TCP and UDP ports), that should only be available from a limited set of IP addresses (admin + webmaster PC's).&lt;/li&gt;
&lt;li&gt;Outgoing connections will be filtered, but some services should be allowed (dns, dhcp, smtp, ntp) and some external websites should be available to get updates.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h4&gt;Concepts&lt;/h4&gt;&lt;h5&gt;ESTABLISHED state&lt;/h5&gt;When using this option, you can filter for established connections. If you define it in both the INPUT and OUTPUT rules, you only have to define in the INPUT rules which NEW incoming requests should be allowed, and in the OUTPUT rules which NEW outgoing request are allowed. The established connections will be allowed and should not be redefined (making the configuration a lot more readable and maintainable). An example allowing only an ssh service without using the ESTABLISHED state would be :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# iptables -A INPUT -j REJECT
# iptables -A OUTPUT -p tcp --sport ssh -j ACCEPT
# iptables -A OUTPUT -j REJECT&lt;/pre&gt;&lt;br /&gt;
Basically, every incoming/outgoing connection is dropped, except if the incoming packet has port 22 (ssh) as destination, or if the outgoing packet was sent from port 22 (which is the reply of the ssh server).&lt;br /&gt;
&lt;br /&gt;
When using ESTABLISHED state, this will be :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# iptables -A INPUT -j REJECT
# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -j REJECT&lt;/pre&gt;&lt;br /&gt;
Now, every incoming/outgoing connection is dropped, except if the incoming packet has port 22 (ssh) as destination, or if the packet belongs to an established connection. Because incoming connections to port 22 are allowed, the firewall will remember a packet coming in, creating a 'connection' for the host/port the packet originates from when the ssh server replies to it. So when the reply of the ssh server is sent out, it matches an 'established' connection and will be allowed out.&lt;br /&gt;
&lt;br /&gt;
In this example, the benefit of using the connection state is not clear, but when more allowed incoming services are added, they only have to be added on the INPUT chain, but not on the OUTPUT chain, because they are covered by the ESTABLISHED rule.&lt;br /&gt;
In the first example (without the ESTABLISHED rule), every allowed incoming connection should be repeated in the OUTPUT chain, matching the packets sent for the outgoing connection, which results in an equal amount of rules on both chains.&lt;br /&gt;
If you want to do filtering in both directions (allowing incoming request for listening services and outgoing request for remote services), this can become very messy, and almost unmaintainable without making mistakes.&lt;br /&gt;
&lt;br /&gt;
&lt;h5&gt;Introducing chains&lt;/h5&gt;When two services (on different ports) should be available to a limited but identical list of IP addresses.&lt;br /&gt;
Without using chains, for every combination of port and IP a rule should be created :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -A INPUT -p tcp -m tcp -s 10.100.2.3 --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp -s 10.100.2.4 --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp -s 10.100.2.7 --dport 22 -j ACCEPT

# iptables -A INPUT -p tcp -m tcp -s 10.100.2.3 --dport 10000 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp -s 10.100.2.4 --dport 10000 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp -s 10.100.2.7 --dport 10000 -j ACCEPT&lt;/pre&gt;&lt;br /&gt;
Resulting in a lot of rules, and when an IP address has to be changed/added/removed, this has to be done for every corresponding rule.&lt;br /&gt;
&lt;br /&gt;
When using chains, this can be much easier. Imagine, that you first check if the packet matches the destination port, and if it does, jump to a new chain, where a list of IP addresses is checked. :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;// create new chain admin_IP
# iptables -N admin_IP

// add rules to chain admin_IP
# iptables -A admin_IP -s 10.100.2.3 -j ACCEPT
# iptables -A admin_IP -s 10.100.2.4 -j ACCEPT
# iptables -A admin_IP -s 10.100.2.7 -j ACCEPT
// drop all packets that are not matched by previous rules
# iptables -A admin_IP -j DROP

// filter ports in INPUT chain
# iptables -A INPUT -p tcp -m tcp --dport 22 -j admin_IP
# iptables -A INPUT -p tcp -m tcp --dport 10000 -j admin_IP &lt;/pre&gt;&lt;br /&gt;
As you can see, there is are several benefits of putting the IP addresses in a separate chain :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;the list of IP addresses in the separate chain can be reused for both ports, so they have to be defined only once.&lt;/li&gt;
&lt;li&gt;adding/changing/removing an IP address is much easier&lt;/li&gt;
&lt;li&gt;there is a better overview of the firewall rules. &lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;Actual configuration&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;INPUT chain&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -m state --state RELATED -j ACCEPT
# iptables -A INPUT -p icmp -j icmp_in
# iptables -A INPUT -p tcp -m tcp --dport 22 -j admin_IP
# iptables -A INPUT -p tcp -m tcp --dport 10000 -j admin_IP
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 139 -j webmaster_IP
# iptables -A INPUT -p tcp -m tcp --dport 445 -j webmaster_IP
# iptables -A INPUT -p udp -m udp --dport 137:138 -j webmaster_IP
# iptables -A INPUT -j DROP&lt;/pre&gt;&lt;br /&gt;
Basically, this is the input filter, allowing :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; all local traffic (not leaving the physical PC) &lt;/li&gt;
&lt;li&gt;a check for tcp-connections&lt;/li&gt;
&lt;li&gt;established and related connections&lt;/li&gt;
&lt;li&gt;ICMP packets (ping, etc.) are handled in a seperate chain &lt;i&gt;icmp_in&lt;/i&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;some services&lt;ul&gt;&lt;li&gt;ssh (tcp 22) and webmin (tcp 10000) allowed for admins (&lt;i&gt;admin_IP chain&lt;/i&gt;)&lt;/li&gt;
&lt;li&gt;website (tcp 80 and 443) for everybody&lt;/li&gt;
&lt;li&gt;samba (tcp 139 and 445, udp 137-138) for webmasters (and admins, see definition of &lt;i&gt;webmaster_IP&lt;/i&gt; chain)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;everything else is not allowed (dropped)&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;Very structured and readable, I must say. :)&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;OUTPUT chain&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -A OUTPUT -o lo -j ACCEPT
# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -m state --state RELATED -j ACCEPT
# iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# iptables -A OUTPUT -d 10.1.1.2 -p udp -m udp --dport 53 -j ACCEPT
# iptables -A OUTPUT -d 10.1.1.3 -p udp -m udp --dport 53 -j ACCEPT
# iptables -A OUTPUT -d 10.1.1.4 -p udp -m udp --dport 67 -j ACCEPT
# iptables -A OUTPUT -d 10.1.1.5 -p tcp -m tcp --dport 25 -j ACCEPT
# iptables -A OUTPUT -d 10.1.1.6 -p udp -m udp --dport 123 -j ACCEPT
# iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ext_websites
# iptables -A OUTPUT -j DROP&lt;/pre&gt;&lt;br /&gt;
The output filter, allowing :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; all local traffic (not leaving the physical PC) &lt;/li&gt;
&lt;li&gt;established and related connections&lt;/li&gt;
&lt;li&gt;ICMP replies&lt;/li&gt;
&lt;li&gt;some remote services (hosted by different servers, IP addresses do not represent actual situation)&lt;ul&gt;&lt;li&gt;2 dns (udp 53) servers (a separate chain could have been created)&lt;/li&gt;
&lt;li&gt;dhcp (udp 67)&lt;/li&gt;
&lt;li&gt;smtp (tcp 25)&lt;/li&gt;
&lt;li&gt;ntp (udp 123) &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;external websites (tcp 80), listed in chain &lt;i&gt;ext_websites&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;everything else is not allowed (dropped)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;icmp_in chain&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -N icmp_in
# iptables -A icmp_in -p icmp -m icmp --icmp-type 8 -j ACCEPT
# iptables -A icmp_in -p icmp -m icmp --icmp-type 0 -j ACCEPT
# iptables -A icmp_in -p icmp -m icmp --icmp-type 3 -j ACCEPT
# iptables -A icmp_in -p icmp -m icmp --icmp-type 4 -j ACCEPT
# iptables -A icmp_in -p icmp -m icmp --icmp-type 11 -j ACCEPT
# iptables -A icmp_in -p icmp -m icmp --icmp-type 12 -j ACCEPT
# iptables -A icmp_in -j DROP&lt;/pre&gt;&lt;br /&gt;
Basically, all allowed incoming ICMP message types.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;admin_IP chain&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -N admin_IP
# iptables -A admin_IP -s 10.100.2.3 -j ACCEPT
# iptables -A admin_IP -s 10.100.2.4 -j ACCEPT
# iptables -A admin_IP -s 10.100.2.7 -j ACCEPT
# iptables -A admin_IP -j DROP&lt;/pre&gt;&lt;br /&gt;
A list of allowed IP addresses of admin PC's.&lt;br /&gt;
Everything else is not allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;webmaster_IP chain&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -N webmaster_IP
# iptables -A webmaster_IP -s 10.100.2.11 -j ACCEPT
# iptables -A webmaster_IP -s 10.100.2.17 -j ACCEPT
# iptables -A webmaster_IP -s 10.100.2.34 -j ACCEPT
# iptables -A webmaster_IP -s 10.100.2.50 -j ACCEPT
# iptables -A webmaster_IP -j admin_IP&lt;/pre&gt;&lt;br /&gt;
A list of allowed IP addresses of webmaster PC's.&lt;br /&gt;
At the end of the list, it jumps to the &lt;i&gt;admin_IP&lt;/i&gt; chain, actually combining both chains.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ext_websites chain&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# iptables -N ext_websites
# iptables -A ext_websites -d 212.211.132.250 -j ACCEPT
# iptables -A ext_websites -d 212.211.132.32 -j ACCEPT
# iptables -A ext_websites -d 195.20.242.89 -j ACCEPT
# iptables -A ext_websites -d 130.89.149.225 -j ACCEPT
# iptables -A ext_websites -d 86.59.118.153 -j ACCEPT
# iptables -A ext_websites -d 130.89.149.227 -j ACCEPT
# iptables -A ext_websites -d 128.31.0.51 -j ACCEPT
# iptables -A ext_websites -d 86.59.118.153 -j ACCEPT
# iptables -A ext_websites -d 67.228.198.100 -j ACCEPT
# iptables -A ext_websites -d 140.211.166.6 -j ACCEPT
# iptables -A ext_websites -d 140.211.166.21 -j ACCEPT
# iptables -A ext_websites -j LOG&lt;/pre&gt;&lt;br /&gt;
A list of allowed external websites for updates (mirrors of Debian, webmin and Drupal, in this example).&lt;br /&gt;
All other requests for external websites are logged. This can be useful for  monitoring : notification of abuse, or if you forgot to add an allowed website.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
This is of course, just an example. There are many variations possible. Maybe you want to add an ftp server, that is only accessible from a specific subnet and some other IP addresses. Or you can allow outgoing ssh-connections to a pool of servers. If you want to protect your server from scanning techniques (XMAS, NULL, ...) you can create a seperate chain for that as well. Options are limitless and depending on your needs.&lt;br /&gt;
&lt;br /&gt;
But the idea is that the firewall rules are now much easier to understand and change. For example, if you want to make ssh (port 22) available also for webmasters, or for the entire internet, just change the -j option to &lt;i&gt;webmaster_IP&lt;/i&gt; or &lt;i&gt;ACCEPT&lt;/i&gt;. Adding an IP address for an admin PC, is just adding one line to the &lt;i&gt;admin_IP&lt;/i&gt; chain.&lt;br /&gt;
&lt;br /&gt;
BTW: I didn't go into every detail of iptables options that are used in my examples, so if you like more information on all available options of iptables and on how iptables works, you can take a look at &lt;a href="http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html"&gt;this tutorial&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-5616127172192225720?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/5616127172192225720/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=5616127172192225720" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/5616127172192225720?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/5616127172192225720?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/SvhHEyuG5C8/less-complex-firewall-configuration.html" title="Reduce firewall configuration complexity using iptables with chains" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/04/less-complex-firewall-configuration.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMGRXc5eSp7ImA9Wx9aEU0.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-3876134374674116849</id><published>2011-03-02T23:19:00.001+01:00</published><updated>2011-03-02T23:20:24.921+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-02T23:20:24.921+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="developing" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>My first Python script</title><content type="html">I've started reading a &lt;a href="http://docs.python.org/release/2.3.5/tut/tut.html"&gt;Python tutorial&lt;/a&gt; and this is the first little script I wrote :&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="python:nocontrols:nogutter" name="code"&gt;#!/usr/bin/env python

a="internationalization"
print a[0] + str(len(a[1:-1])) + a[-1]

a="localization"
print a[0] + str(len(a[1:-1])) + a[-1]&lt;/pre&gt;&lt;br /&gt;
If it is executed, you get :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;i18n
l10n&lt;/pre&gt;&lt;br /&gt;
It's not much, but slightly less boring than the usual "Hello World!".&lt;br /&gt;
Basically, it just takes the first and last character of each word, and replaces the characters in between with the total number of characters in between. The exciting thing about it, is the sheer compactness of the syntax. In any other language a lot more code would be needed. :)&lt;br /&gt;
&lt;br /&gt;
BTW : &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/I18n"&gt;i18n&lt;/a&gt; and &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/L10n"&gt;l10n&lt;/a&gt; are widely used &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Numeronym"&gt;numeronyms&lt;/a&gt;, that refer to &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/I18n"&gt;internationalization and localization&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-3876134374674116849?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/3876134374674116849/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=3876134374674116849" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/3876134374674116849?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/3876134374674116849?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/2l8SUa3rX7o/my-first-python-script.html" title="My first Python script" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/03/my-first-python-script.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUBQns_eyp7ImA9Wx9bGEQ.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-2850244240700387154</id><published>2011-02-28T12:00:00.006+01:00</published><updated>2011-02-28T12:57:33.543+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-28T12:57:33.543+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bash" /><category scheme="http://www.blogger.com/atom/ns#" term="scripting" /><title>bash treats numbers with leading 0 as octal</title><content type="html">In a bash script, the number of the current week is used to select a different tape every week (rotation of 4 tapes) :&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="bash:nocontrols:nogutter" name="code"&gt;#!/bin/bash 

WEEK=`date +%W` # Week number (01..52)
TAPE=$((WEEK % 4))
&lt;/pre&gt;&lt;br /&gt;
This worked fine so far, but this weekend (it's the 8th weekend of the year) there was an error :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;value too great for base (error token is "08")&lt;/pre&gt;&lt;br /&gt;
After some digging, I &lt;a href="http://osdir.com/ml/bug-bash-gnu/2011-01/msg00056.html"&gt;found&lt;/a&gt; that bash treats numbers with a leading 0 as octal. But value 8 (and 9) don't exist in octal, so that's why it throws an error. With smaller numbers (01-07), there is no problem, because they are valid octal numbers, and for bigger numbers (10-...), the number is treated in decimal format, because there is no leading 0 anymore.&lt;br /&gt;
&lt;br /&gt;
This problem can be fixed in two ways :&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;1) strip leading 0 from value&lt;/h3&gt;&lt;br /&gt;
In bash you can do this with this command :&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="bash:nocontrols:nogutter" name="code"&gt;WEEK=${WEEK#0} # strip leading 0&lt;/pre&gt;&lt;br /&gt;
This only removes a leading zero, a zero that is not leading will not be removed.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;2) convert value to decimal&lt;/h3&gt;&lt;pre class="bash:nocontrols:nogutter" name="code"&gt;TAPE=$((10#$WEEK % 4)) # convert $WEEK to base-10 with '10#'
&lt;/pre&gt;&lt;br /&gt;
Note that you have to add the $ in front of the variable WEEK, to treat it is a variable, in order for the conversion (with 10#) to work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-2850244240700387154?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/2850244240700387154/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=2850244240700387154" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/2850244240700387154?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/2850244240700387154?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/c41wPdIPPtE/bash-treats-numbers-with-leading-0-as.html" title="bash treats numbers with leading 0 as octal" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/02/bash-treats-numbers-with-leading-0-as.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMBQng_eCp7ImA9Wx9UFk4.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-6250930864807977158</id><published>2011-02-13T19:14:00.002+01:00</published><updated>2011-02-13T22:27:33.640+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-13T22:27:33.640+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="conference" /><category scheme="http://www.blogger.com/atom/ns#" term="phpmyadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="FOSDEM" /><category scheme="http://www.blogger.com/atom/ns#" term="Open Source" /><title>FOSDEM 2011</title><content type="html">It's been great again. Over 5000 Open Source developers and enthousiasts meeting to share more than 200 hours of knowledge over the course of a weekend at &lt;a href="http://fosdem.org/2011"&gt;FOSDEM 2011&lt;/a&gt;, held at campus Solbosch of ULB in Brussels, Belgium.&lt;br /&gt;
&lt;a href="http://ruleant.blogspot.com/2010/02/fosdem-2010.html"&gt;Last year I went there&lt;/a&gt; for the first time, for just one day, and I liked it so much I immediately decided to go back this year, but for the whole two days.&lt;br /&gt;
&lt;br /&gt;
So there I was, on Saturday afternoon, after taking two trains, a metro and a bus, entering the ULB campus where FOSDEM is held, seeing the signs pointing to all different buildings and rooms where talks were held, the catering trucks, and a busy bunch of enthousiastic people.&lt;br /&gt;
&lt;br /&gt;
I headed for the &lt;a href="http://fosdem.org/2011/schedule/track/mysql_friends_devroom"&gt;MySQL &amp;amp; Friends devroom&lt;/a&gt;, where I met some of the people of the &lt;a href="http://www.phpmyadmin.net/home_page/team.php"&gt;phpMyAdmin team&lt;/a&gt;, which I joined last year. I hadn't met them before, so this was a nice opportunity.&lt;br /&gt;
These are some of the talks I attended on Saturday :&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/mysql_new_in_5_5"&gt;What's new in MySQL 5.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/data_recovery_for_mysql"&gt;Data Recovery for MySQL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/flashrom"&gt;flashrom: Run your BIOS/EFI/firmware updates under any free OS&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/0mq"&gt;0MQ: Multithreading magic&lt;/a&gt;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/seeks_project"&gt;Seeks Project: let's take back websearch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/multimaster_mysql_failover"&gt;Multimaster MySQL failover&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/multi_maste_replication_approaches"&gt;Multi-Master Replication Approaches&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;After this, we had a phpMyAdmin team dinner and afterwards I introduced them to&amp;nbsp; some fine Belgian beers.&lt;br /&gt;
&lt;br /&gt;
Sunday was a bit chaotic, I hadn't planned to see that much talks, one of the talks I planned to attend was canceled, and I missed another one, because I left early to catch the canceled one (but I didn't know it at that time), but I still went to some :&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/distro_mageia"&gt;The difficulty of forking&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/distro_crossinstall"&gt;Can we build a simple, cross-distribution installation framework?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/ram"&gt;Cold boot attacks on RAM readout&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/fast_x86_boot"&gt;Really fast x86 boot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/free_cloud"&gt;Building a free, massively scalable cloud computing platform&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://fosdem.org/2011/schedule/event/kernel_dev"&gt;How kernel development goes wrong and why you should be a part of it anyway&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;After the last talk, it was time to go home. A special FOSDEM bus brought us back to the railway station, were I had some dinner before I headed home.&lt;br /&gt;
It was a nice weekend, with a nice Open atmosphere, again perfectly organized by and for the community.&amp;nbsp; In case you missed it, this was &lt;a href="http://www.youtube.com/watch?v=dPh0lhL_Nx8&amp;amp;hd=1"&gt;FOSDEM 2011&lt;/a&gt; (a video artists impression).&lt;br /&gt;
&lt;br /&gt;
I'm looking forward to next edition already!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-6250930864807977158?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/6250930864807977158/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=6250930864807977158" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6250930864807977158?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6250930864807977158?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/6JXr8hg3B94/fosdem-2011.html" title="FOSDEM 2011" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/02/fosdem-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AASH49eyp7ImA9Wx9UEEQ.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-4662163498107103858</id><published>2011-02-07T17:20:00.002+01:00</published><updated>2011-02-07T17:22:29.063+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T17:22:29.063+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="server" /><category scheme="http://www.blogger.com/atom/ns#" term="squeeze" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="upgrade" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><title>Debian 6 (Squeeze) is released.</title><content type="html">A few days ago, &lt;a href="http://www.debian.org/News/2011/20110205a"&gt;Debian 6.0, codename &lt;i&gt;Squeeze&lt;/i&gt;&lt;/a&gt;, was released after a 2 year development period.&lt;br /&gt;
&lt;br /&gt;
Of course this new release contains &lt;a href="http://www.debian.org/releases/squeeze/releasenotes"&gt;a lot of new stuff&lt;/a&gt; : lots of new and upgraded packages, &lt;a href="http://www.debian.org/releases/squeeze/i386/release-notes/ch-whats-new.en.html#dependency-boot"&gt;faster booting&lt;/a&gt; because processes are started in parallel (if dependencies allow it), integration of grub2, &lt;a href="http://www.debian.org/releases/squeeze/i386/release-notes/ch-whats-new.en.html#stable-updates"&gt;volatile repository is replaced by squeeze-updates&lt;/a&gt;, ...&lt;br /&gt;
&lt;br /&gt;
Because I want to use Tomcat 6 on a production server, I wanted to try the upgrade on a testbox. Everything went quite smoothly. All steps for upgrading from Debian 5.0 (Lenny) are clearly explained in the &lt;a href="http://www.debian.org/releases/squeeze/releasenotes"&gt;release notes&lt;/a&gt; (Chapter 4). The only thing that went wrong, in my case was the update of mysql-server. For some reason it was uninstalled, but the replacement package for the new version 5.1 was not installed.&lt;br /&gt;
&lt;br /&gt;
After the upgrade process, I rebooted and I noticed grub 0.97 (now called &lt;i&gt;grub-legacy&lt;/i&gt;) was still used, but it transfered the bootprocess to grub2. This worked like a charm, so then I ran&amp;nbsp; (as root) :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# upgrade-from-grub-legacy&lt;/pre&gt;&lt;br /&gt;
to install grub2 in the MBR and boot from it. Rebooting went perfectly afterwards.&lt;br /&gt;
&lt;br /&gt;
So far I'm quite pleased with &lt;i&gt;squeeze&lt;/i&gt; and the upgrade process. I'll do the upgrade with my other boxes in the next few days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-4662163498107103858?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/4662163498107103858/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=4662163498107103858" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/4662163498107103858?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/4662163498107103858?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/_50SXK_medE/debian-6-squeeze-is-released.html" title="Debian 6 (Squeeze) is released." /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/02/debian-6-squeeze-is-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ICQ3c9eCp7ImA9WhdRE0o.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-836888092223779964</id><published>2011-01-21T11:33:00.001+01:00</published><updated>2011-08-03T15:52:42.960+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-03T15:52:42.960+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="server" /><category scheme="http://www.blogger.com/atom/ns#" term="xfs" /><title>XFS check</title><content type="html">I wanted to check the consistency of the data partition on one of my servers. It is 6.5TB and formatted with XFS, so I ran :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#xfs_check /dev/sdb1&lt;/pre&gt;&lt;br /&gt;
And I got :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;xfs_check: out of memory&lt;/pre&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;After some searching, it turns out that a lot of memory is needed to perform the &lt;i&gt;xfs_check&lt;/i&gt; on a large file system : &amp;gt;6GB and you need to run it on 64bit, to able to address that memory.&lt;br /&gt;
&lt;br /&gt;
My system is a 32-bit with only 4GB, so I would probably not be able to run&lt;i&gt; xfs_check&lt;/i&gt; on my system, but there is another way :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#xfs_repair -n /dev/sdb1&lt;/pre&gt;&lt;br /&gt;
This tools tries to repair a XFS filesystem, but with the &lt;i&gt;-n&lt;/i&gt; switch no changes are written to the file system, so the effect is quite the same. It still uses a lot of memory if you have a lot of files/inodes on the file system, but 3GB on a 32-bit system should be sufficient.&lt;br /&gt;
&lt;br /&gt;
Of course, if &lt;i&gt;xfs_repair&lt;/i&gt; finds a problem, you can still run it without the &lt;i&gt;-n&lt;/i&gt; switch, to repair the filesystem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-836888092223779964?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/836888092223779964/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=836888092223779964" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/836888092223779964?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/836888092223779964?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/EJkXGJfIJ5I/xfs-check.html" title="XFS check" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/01/xfs-check.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIAQnk4cSp7ImA9Wx9XEEQ.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-7861933688125245287</id><published>2011-01-04T00:10:00.001+01:00</published><updated>2011-01-04T00:15:43.739+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-04T00:15:43.739+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="games" /><title>All time favorites : games</title><content type="html">I've recently rediscovered the wonderful pass time of gaming. And I was thinking of a few great games I played in the past, in alphabetical order :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Assassin%27s_Creed_II"&gt;Assassin's Creed II&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Myst_III:_Exile"&gt;Exile&lt;/a&gt; (Myst III) &lt;/li&gt;
&lt;li&gt;&lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Grim_fandango"&gt;Grim Fandango&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Riven"&gt;Riven&lt;/a&gt;, the sequel to Myst&lt;/li&gt;
&lt;/ul&gt;They earned a position in this list because of the mere of beauty of the game, which was usually a combination of graphics, music, scenery, atmosphere and gameplay.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-7861933688125245287?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/7861933688125245287/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=7861933688125245287" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/7861933688125245287?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/7861933688125245287?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/P4ePtl_a9Jc/all-time-favorite-games.html" title="All time favorites : games" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/01/all-time-favorite-games.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMDSXw8eip7ImA9Wx9QGUs.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-2729767982167853377</id><published>2011-01-01T00:01:00.055+01:00</published><updated>2011-01-02T12:24:38.272+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-02T12:24:38.272+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="resolutions" /><category scheme="http://www.blogger.com/atom/ns#" term="New Year" /><title>Happy 2011!</title><content type="html">Happy New Year!&lt;br /&gt;
&lt;br /&gt;
May 2011 be a year of friendship, love, joy and happiness, good health and prosperity!&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;2010&lt;/h3&gt;&lt;br /&gt;
A lot of things happened in 2010. I'm not going to write an exhaustive list, but will just mention things that spring to mind.&lt;br /&gt;
On a technological level : I got my &lt;a href="http://ruleant.blogspot.com/2010/03/new-server-microclient-jr-dx.html"&gt;new server and installed linux&lt;/a&gt; on it, I learned to use &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Vim_%28text_editor%29"&gt;vim&lt;/a&gt; and &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Git_%28software%29"&gt;git&lt;/a&gt;, and started contributing to the Open Source community by joining the &lt;a href="http://www.phpmyadmin.net"&gt;phpMyAdmin&lt;/a&gt; development team. &lt;a href="http://ruleant.blogspot.com/2010/02/fosdem-2010.html"&gt;I visited FOSDEM&lt;/a&gt; for the first time and will certainly do so this year.&lt;br /&gt;
On a professional level : I created a &lt;a href="http://ruleant.blogspot.com/2010/05/new-department-website-launched.html"&gt;new website for my department&lt;/a&gt; using Drupal, and installed a new backup server.&lt;br /&gt;
&lt;br /&gt;
One of my &lt;a href="http://ruleant.blogspot.com/2010/01/happy-new-year.html"&gt;resolutions for 2010&lt;/a&gt; was to read more, and I achieved this. If possible I read a chapter every evening, and I hope to continue doing this in the new year.&lt;br /&gt;
I also spent quite some time playing games, watching films and series and (re)discovered some music. Some of the highlights of the year : Assissin's Creed II, the best game I played in years; Isbells and Mumford &amp; Sons, the latter doing some great gigs; and 1984, classic by George Orwell. :)&lt;br /&gt;
&lt;br /&gt;
And I met a lot of interesting people, made new friends and got to know some people better.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Resolutions 2011&lt;/h3&gt;&lt;br /&gt;
Bit a more of the same of last year. I made some progress, but there is always room for improvement :&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Smile (even) more!&lt;/li&gt;
&lt;li&gt;Enjoy more and worry less&lt;/li&gt;
&lt;li&gt;Continue reading&lt;/li&gt;
&lt;li&gt;Be more confident&lt;/li&gt;
&lt;li&gt;Look for a new place to live&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-2729767982167853377?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/2729767982167853377/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=2729767982167853377" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/2729767982167853377?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/2729767982167853377?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/Y8_3DdQZXHo/happy-2011.html" title="Happy 2011!" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2011/01/happy-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQMSHozcSp7ImA9Wx9SFkg.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-6575320868689517241</id><published>2010-12-04T19:41:00.006+01:00</published><updated>2010-12-06T17:53:09.489+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-06T17:53:09.489+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="apt" /><category scheme="http://www.blogger.com/atom/ns#" term="hard disk space" /><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu" /><title>Cleanup apt cache</title><content type="html">Over time, the cache of apt, the Debian package installation application, keeps growing. Every time a package is installed or updated, the original packages is stored in the cache. After a few months of updates, the cache grows quite big, because nothing is deleted from it automatically.&lt;br /&gt;
Keeping the original packages from all software you have installed is certainly a good idea, but the packages that are replaced by newer ones are kept as well.&lt;br /&gt;
&lt;br /&gt;
The cache can be cleaned. using this command :&lt;br /&gt;
&lt;blockquote&gt;apt-get autoclean&lt;/blockquote&gt;This removes all unneeded (old) package files from the apt cache.&lt;br /&gt;
&lt;br /&gt;
If you want to clear the cache completely, and thus removing all packages, use this command :&lt;br /&gt;
&lt;blockquote&gt;apt-get clean&lt;/blockquote&gt;Both commands are quite safe to use, because they only remove the downloaded packages from the apt cache. The installed files naturally remain untouched.&lt;br /&gt;
This way you can sometimes free a few hundred megabytes after a few months.&lt;br /&gt;
&lt;br /&gt;
Ubuntu is based on the Debian packaging system, so this applies to every flavor of Ubuntu as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-6575320868689517241?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/6575320868689517241/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=6575320868689517241" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6575320868689517241?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6575320868689517241?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/jZmfEqYNG7E/cleanup-apt-cache.html" title="Cleanup apt cache" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2010/12/cleanup-apt-cache.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQNQX0yeCp7ImA9Wx5aEkw.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-305008135380362783</id><published>2010-11-08T00:12:00.003+01:00</published><updated>2010-11-08T12:56:30.390+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-08T12:56:30.390+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="plugin" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><category scheme="http://www.blogger.com/atom/ns#" term="Firefox" /><title>Firefox plugin : HTTPS Everywhere</title><content type="html">Yet another Firefox plugin to be added to the &lt;a href="http://ruleant.blogspot.com/2009/11/must-have-firefox-add-ons-for-safer-and.html"&gt;list of useful plugins&lt;/a&gt; : &lt;a href="https://www.eff.org/https-everywhere"&gt;HTTPS Everywhere&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Essentialy, this plugin forces your browser to use the secure (encrypted) https protocol when visiting certain websites (like Facebook, Google, ...). This way, no data is sent in cleartext over the internet. When visiting these websites, everything is encrypted by your browser before it leaves your computer, and is then decrypted by the server (and vice versa, when the server sends the webpage back to your PC).&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Why would you want this?&lt;/h3&gt;If you login over a normal http connection, your username and password are sent over the internet, for everybody who can intercept that package to read. The same with sensitive data that might be visible on websites your are visiting.&lt;br /&gt;
&lt;br /&gt;
You are probably wondering who can catch your packets? To do that you must most certainly be an internet wizard? Not true. Recently a Firefox plugin was published, called &lt;a href="https://secure.wikimedia.org/wikipedia/en/wiki/Firesheep"&gt;Firesheep&lt;/a&gt;, that allows a computer to look around on your local (wireless) network, and hijack Facebook and other sessions on social networking websites and actually see what they are seeing.&lt;br /&gt;
For instance, when you are using a free wireless accesspoint, someone with the firesheep plugin, can easily watch what you are doing. (With more sophisticated software this is also - and was already - possible, but this requires more skill)&lt;br /&gt;
&lt;br /&gt;
So, to protect yourself from these kind of attacks, it's better to use the https protocol as much as possible. And a nice tool to help you do this is, is a plugin like &lt;a href="https://www.eff.org/https-everywhere"&gt;HTTPS Everywhere&lt;/a&gt;, or &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/12714/"&gt;Force TLS&lt;/a&gt;. The Force TLS plugin does about the same as HTTPS Everywhere, but is more difficult to setup, because you have to tell the plugin for which website you want to use https. Downside of the HTTPS Everywhere plugin, is that it only works for the preprogrammed websites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-305008135380362783?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/305008135380362783/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=305008135380362783" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/305008135380362783?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/305008135380362783?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/yYa90CUDmj0/firefox-plugin-https-everywhere.html" title="Firefox plugin : HTTPS Everywhere" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2010/11/firefox-plugin-https-everywhere.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQBR3cyfyp7ImA9Wx9SFkg.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-6416682702125415374</id><published>2010-10-19T13:52:00.004+02:00</published><updated>2010-12-06T17:52:36.997+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-06T17:52:36.997+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="server" /><category scheme="http://www.blogger.com/atom/ns#" term="microcode" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="update" /><category scheme="http://www.blogger.com/atom/ns#" term="Intel" /><title>Microcode</title><content type="html">This morning, one of my servers (Dell Poweredge R510, with a quad-core Intel Xeon E5520 CPU running Debian 5.0.4) had crashed. It didn't respond to anything : ping, ssh, smb. Not even when physically attaching a screen and a USB keyboard to it, did it respond.&lt;br /&gt;
After a reboot, the system started without a problem and everything seemed to work again.&lt;br /&gt;
&lt;br /&gt;
Skimming through the logs I found some things occuring :&lt;br /&gt;
&lt;pre&gt;kernel: BUG: soft lockup - CPU#7 stuck for 61s!&lt;/pre&gt;and&lt;br /&gt;
&lt;pre&gt;kernel: __ratelimit: 35 messages suppressed
kernel: nf_conntrack: table full, dropping packet.
&lt;/pre&gt;&lt;br /&gt;
After Googling, I didn't really find a sound explanation, but some of the things that was &lt;a href="http://ubuntuforums.org/archive/index.php/t-1149798.html"&gt;mentioned&lt;/a&gt; was a bug in the Intel CPU, which could be solved by &lt;a href="http://kerneltrap.org/node/2678"&gt;updating&lt;/a&gt; the CPU &lt;a href="http://en.wikipedia.org/wiki/Microcode"&gt;Microcode&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I'm not sure this will solve my problem, which only happened once since I started using the server about half a year ago, but as was &lt;a href="http://kerneltrap.org/node/2678"&gt;mentioned&lt;/a&gt;, it does little risk, doesn't slow down your machine and might solve a few&amp;nbsp; problems.&lt;br /&gt;
&lt;br /&gt;
So I installed two packages (you need &lt;i&gt;contrib&lt;/i&gt; and &lt;i&gt;non-free&lt;/i&gt; repositories):&lt;br /&gt;
&lt;pre&gt;apt-get install intel-microcode microcode.ctl&lt;/pre&gt;Package &lt;i&gt;intel-microcode&lt;/i&gt; contains the updated microcode for Intel CPU's, while &lt;i&gt;microcode.ctl&lt;/i&gt; does the update. Because the update is done in memory, the update is lost after a reboot, so you will have to do it again, but this package takes care of that.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update 06Dec2010 :&lt;/b&gt; The microcode is automatically updated after a reboot. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-6416682702125415374?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/6416682702125415374/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=6416682702125415374" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6416682702125415374?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6416682702125415374?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/Wr2d1U61zq0/microcode.html" title="Microcode" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2010/10/microcode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkABQHo9eip7ImA9Wx5UEE0.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-6105642300019151645</id><published>2010-10-13T23:19:00.000+02:00</published><updated>2010-10-13T23:19:11.462+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-13T23:19:11.462+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="social web" /><category scheme="http://www.blogger.com/atom/ns#" term="Open Source" /><category scheme="http://www.blogger.com/atom/ns#" term="encryption" /><title>Open Source Social Networking</title><content type="html">For quite some time now, I've been thinking about a social networking website alternative, where you, as a user, can keep control of what you submit : who can see it, what can be seen, and most important, if you delete it, that it is really gone (at least from the website you originally put it on, as one can not be sure that something that is published on the internet can be completely removed from it). But I got an insight on how it could be done. It's only a rough idea, with a lot of conceptual and practical things still to be sorted out :&lt;br /&gt;
&lt;br /&gt;
A way to reach this goal is to use encryption. When encrypting a message for instance with &lt;a href="http://en.wikipedia.org/wiki/Openpgp"&gt;OpenPGP&lt;/a&gt;, you use the public keys of the ones that should be able to decrypt the message. To do so, they use their own - private - key, which is of course private, and can only be used by the one who owns it. So this way, only the ones you intend to be able to read your message will be able to read it.&lt;br /&gt;
So, in case of this conceptual open source social networking website, every user has a PGP-key. If you want to submit something to this website, for instance your place of birth, you encrypt it, using the public keys of a selection of your friends and submit that encrypted chunk of data to the website, where it is stored in the database.&lt;br /&gt;
If one of your friends accesses your page on this social networking website, all the data, in encrypted form, is requested from the website and decrypted using the private key of that friend. The data that was encrypted with that persons public key, will be decrypted, while the rest will remain unreadable, thus showing only the data that you intended for that person.&lt;br /&gt;
If on a later moment, you decide you want to change the list of people that will be able to consult your place of birth, you simple encrypt the same data with different keys and replace it in the database.&lt;br /&gt;
&lt;br /&gt;
The kind of data you can encrypt is of course not limited to short texts, but can also be a picture, a piece of video, a link to a website, a piece of you DNA, ...&lt;br /&gt;
The upside of storing an encrypted version of the data you share, makes it unreadable to anyone who doesn't have the right decryption key. So even if your data remains in the database of the website, it will only be readable for the persons it was originally intended for. It will even not be readable by the maintainers of the website, unless you include their public key when encrypting.&lt;br /&gt;
&lt;br /&gt;
So, the bottom line is that YOU should be able to keep control over your data. Encrypting the data is one thing, somewhat trusting the software that makes it happen and of course also the ones hosting it all, is as important.&lt;br /&gt;
And here the Open Source model comes in. The software is freely available, so the way it works can be checked and improved by the Open Source community.&lt;br /&gt;
And because the software is freely available, anyone can set up a social networking website. So as a user, you can choose who to trust when you join a group.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Of course, this is all just an idea and a very general concept.&lt;br /&gt;
&lt;br /&gt;
One final remark : in order for this to work, the whole encryption mechanism should be invisible for the end user. And the encryption should be handled client side, for obvious reasons, otherwise the data you intend to be limited available, might end up unencrypted on some kind of server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-6105642300019151645?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/6105642300019151645/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=6105642300019151645" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6105642300019151645?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6105642300019151645?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/8y5DGEFssEI/open-source-social-networking.html" title="Open Source Social Networking" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2010/10/open-source-social-networking.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkICQ304fyp7ImA9Wx5VFEk.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-141568378731448443</id><published>2010-10-07T11:45:00.004+02:00</published><updated>2010-10-07T12:49:22.337+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-07T12:49:22.337+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="shell" /><title>change permissions of files and folders</title><content type="html">On *nix, when you want to change the access permission of a directory and all files and folders in it, you could use :&lt;br /&gt;
&lt;pre class="bash:nogutter:nocontrols" name="code"&gt;cd your_dir
chmod -R 750 *&lt;/pre&gt;But this doesn't make a distinction between files and folders. So if you want different permissions for files and folders, you can do this :&lt;br /&gt;
&lt;pre class="bash:nogutter:nocontrols" name="code"&gt;cd your_dir
find -type f -exec chmod 640 {} \;
find -type d -exec chmod 750 {} \;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-141568378731448443?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/141568378731448443/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=141568378731448443" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/141568378731448443?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/141568378731448443?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/17b9Ok5hNHM/change-permissions-of-files-and-folders.html" title="change permissions of files and folders" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2010/10/change-permissions-of-files-and-folders.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UCRn88eyp7ImA9WxFXEE8.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-6158641973497367782</id><published>2010-05-16T16:35:00.004+02:00</published><updated>2010-05-16T16:47:47.173+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-16T16:47:47.173+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web development" /><category scheme="http://www.blogger.com/atom/ns#" term="drupal" /><category scheme="http://www.blogger.com/atom/ns#" term="UGent" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><title>New department website launched</title><content type="html">Last week, the &lt;a href="http://www.foodscience.ugent.be/"&gt;new website of my department&lt;/a&gt;, that I've been working on for the last few weeks, was launched. In its first week, it got about 1200 visitors.&lt;br /&gt;
Although not completely finished, I thought it had reached a stage were it could be made public. I consider it a starting point anyway, a basis to start improving on by adding new features.&lt;br /&gt;
&lt;br /&gt;
The previous website was created about 4-5 years ago, and was in need of a face lift. I could just have replaced the css file, to refresh the layout, but the code running in the background was replaced as well.&lt;br /&gt;
&lt;br /&gt;
After some comparing, I decided to use &lt;a href="http://drupal.org/"&gt;Drupal 6&lt;/a&gt; as the &lt;a href="http://en.wikipedia.org/wiki/Content_Management_Framework"&gt;CMF&lt;/a&gt; of the new website. I hadn't worked with Drupal before, but heard and read good things about it, being developed in PHP and strong focus on modules as strong points. &lt;br /&gt;
First, I started developing a custom theme that reflects the corporate style of &lt;a href="http://www.ugent.be/en"&gt;my university&lt;/a&gt;. I didn't do this before either, so it took me some time to understand how a page is built in Drupal and what parts it consists of, but in the end I got it working.&lt;br /&gt;
&lt;br /&gt;
The new website should be bilingual (English-Dutch), so I had to look for a way to do this. Luckily, Drupal provides some modules (Locale, &lt;a href="http://drupal.org/project/i18n"&gt;Internationalization&lt;/a&gt;) to make a website multilingual, and tools to do the translation (core module Content Translation).&lt;br /&gt;
&lt;br /&gt;
I wanted to integrate the login system into the single sign-on system (&lt;a href="http://en.wikipedia.org/wiki/Central_Authentication_Service"&gt;CAS&lt;/a&gt;) of my university, so that the users of the website wouldn't have to create yet another account with matching password for this website.&lt;br /&gt;
There is a &lt;a href="http://drupal.org/project/cas"&gt;CAS module&lt;/a&gt; available for Drupal, but I got a custom one from a colleague, which I modified further, to take advantage (through CAS) of groups that are defined in the &lt;a href="http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol"&gt;LDAP&lt;/a&gt; system of my university and of groups I defined in a seperate database, and thus assigning the right roles to each user on login.&lt;br /&gt;
&lt;br /&gt;
With the different roles defined and assigned, I used the taxonomy module (in Drupal core) to define different parts of the website. My department consist of three research groups, so each lab has it's own section within the website. All sections have a public and private (intranet) part, so by using &lt;a href="http://drupal.org/project/taxonomy_access"&gt;Taxonomy Access Control&lt;/a&gt; access to these pages could be linked to the defined roles.&lt;br /&gt;
&lt;br /&gt;
Some pages are just static HTML, being maintained using a &lt;a href="http://en.wikipedia.org/wiki/WYSIWYG"&gt;WYSIWYG&lt;/a&gt; editor, provided by Drupal module &lt;a href="http://drupal.org/project/ckeditor"&gt;CKeditor&lt;/a&gt;.&lt;br /&gt;
Others are dynamic, getting their data from a database table, using a PHP script to generate the page. Module &lt;a href="http://drupal.org/project/cacheexclude"&gt;Cache Exclude&lt;/a&gt; was needed to keep these PHP generated pages from being cached by Drupal. Otherwise changes made in the database, would not show.&lt;br /&gt;
And core module PHP filter, to be able to execute PHP code in a page.&lt;br /&gt;
&lt;br /&gt;
As I mentioned before, I'm new to Drupal so I'm still discovering possibilities, new modules and ways to do things, every day. Things that are still on my list is learning how to write modules, find a way to integrate my current database management PHP code with Drupal, basically using the Form API, not only to insert data into a database, but also update and delete data, and expand the features of the new website (both on the intranet as on public pages). Luckily I've got &lt;a href="http://www.drupalbook.com/"&gt;a good guide&lt;/a&gt; for the upcoming developing journey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-6158641973497367782?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/6158641973497367782/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=6158641973497367782" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6158641973497367782?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/6158641973497367782?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/9I2_t9IwJGo/new-department-website-launched.html" title="New department website launched" /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2010/05/new-department-website-launched.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEERXYyeip7ImA9WxFTEkw.&quot;"><id>tag:blogger.com,1999:blog-6697926294108537816.post-5181557077622160384</id><published>2010-04-01T09:41:00.008+02:00</published><updated>2010-04-02T16:13:24.892+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-02T16:13:24.892+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="LHC" /><category scheme="http://www.blogger.com/atom/ns#" term="physics" /><category scheme="http://www.blogger.com/atom/ns#" term="April's Fool day" /><title>LHC detects something unexpected.</title><content type="html">&lt;span style="color: blue; font-size: large;"&gt;A&lt;/span&gt; few days after the first collisions in &lt;a href="http://public.web.cern.ch/public/en/LHC/LHC-en.html"&gt;LHC&lt;/a&gt;, something strange has happened at the new particle accelerator at CERN.&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;P&lt;/span&gt;hysicists noticed, this morning, some unexplainable activity in the detector of &lt;a href="http://cms.web.cern.ch/cms/index.html"&gt;CMS&lt;/a&gt;, one of the experiments.&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;R&lt;/span&gt;emarkable, because there were no active beams at the time.&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;I&lt;/span&gt;nvestigations have started, to try and find an explanation for this fishy behaviour.&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;L&lt;/span&gt;HC managed to collide two 3,5 TeV beams of protons, for the first time on the 30th of March 2010, only a few days ago.&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;S&lt;/span&gt;omething might have been created during those first collisions, that only now was detected.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;F&lt;/span&gt;ascinating for some, troubling for others, as some critics feared that LHC might swallow the Earth.&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;O&lt;/span&gt;ther options are faulty hardware in the detector, causing these unexpected events.&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;O&lt;/span&gt;nly after some more tests, it will be certain if there is a flaw in the detection, or the discovery of something amazing.&lt;br /&gt;
&lt;span style="color: blue; font-size: large;"&gt;L&lt;/span&gt;ater today, more news will be available.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update (2Apr2010) :&lt;/b&gt;&lt;b&gt; &lt;/b&gt;As far as I know, everything is working fine at LHC. All experiments detect collisions as they should, because there were &lt;a href="http://twitter.com/CERN/status/11411077457"&gt;beams colliding&lt;/a&gt; now and at that moment. If you are wondering what this post is ranting about, check the date it was published and the first letters of each sentence. It might give you a clue. :p&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update 2 (2Apr2010) :&lt;/b&gt; Apparently, &lt;a href="http://user.web.cern.ch/user/news/2010/100401.html"&gt;something was found&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6697926294108537816-5181557077622160384?l=ruleant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://ruleant.blogspot.com/feeds/5181557077622160384/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6697926294108537816&amp;postID=5181557077622160384" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/5181557077622160384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6697926294108537816/posts/default/5181557077622160384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/poolofoblivion/~3/ZsLAk1fD_hY/lhc-detects-something-unexpected.html" title="LHC detects something unexpected." /><author><name>ruleant</name><uri>http://www.blogger.com/profile/02113174187540531952</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://2.bp.blogspot.com/_tJurbXbm2m4/SKiEoFUHb3I/AAAAAAAAAAY/4pB5LYILXXo/S220/dieter6.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://ruleant.blogspot.com/2010/04/lhc-detects-something-unexpected.html</feedburner:origLink></entry></feed>

