<?xml version="1.0"?><!-- generator="b2evolution/0.9.0.12" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>cultural exception</title>
		<link>http://brumaire.biz/b2evolution/index.php</link>
		<description>Short description for Blog All</description>
		<language>en-UK</language>
		<docs>http://backend.userland.com/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=0.9.0.12"/>
		<ttl>60</ttl>
				<item>
			<title>Too much good leads to bad (part 2)</title>
			<link>http://brumaire.biz/b2evolution/index.php?title=lfont_size_1_gtoo_much_good_leads_to_bad_1&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1</link>
			<pubDate>Tue, 28 Nov 2006 16:46:47 +0000</pubDate>
						<category domain="main">Solaris</category>			<guid isPermaLink="false">29@http://brumaire.biz/b2evolution</guid>
			<description>I wrote why too much tricks could leads to unexpected behaviors here. Facing some corrupted tar archive, some requirements are needed in order to repair them successfully:programming skillsknowledge on how the corruption occuredbasic informations on tar formattimesperseverance
Given my affinity for perl the choice was obvious. In fact perl fits pretty well in strings processing (scoop). The relevant part on tar format can be found in the manual pages archives(4) #define TBLOCK 512  /* length of tar header and data blocks */

For the record I 'll put my code in a simplify version. Through trial&#38;error it is necessary to expand the regular expression section to match all intruders.

#!/usr/local/bin/perl

my $file=$ARGV[0];
my $new_file=$ARGV[1];
my $akt_pos=0;
my $record="";
my $size_buf=1024;
my $eof=0;

open (FH,"&#60;$file") or die "Couldn't open file $file\n";
open (FH_NEW,"&#62;$new_file") or die "Couldn't open file $new_file\n";

until ( eof(FH)){
        if (length($record) &#60; $size_buf) {
                $akt_pos = tell (FH);
                if (read (FH,$txt, $size_buf-length($record)) == $size_buf-length($record)){
                        $record.=$txt;
                } else {
                         seek(FH,$akt_pos,0);
                         while ((read(FH,$txt,1) == 1)){
                                $record .= $txt;
                                $eof=1;
                         }
                }
        } else {
                $c=0;
        }
        $txt = $record;
        $record =~ s/a \.\/somepath\/.* \d+K\n//mg;
        $record =~ s/a .* symbolic link to .*\n//mg;
        $record =~ s/a \.\/somepath\/.* excluded\n//mg;
        if ( ! $eof ) {
                if ( $record eq $txt ) {
                       if (length($record) == $size_buf) {
                                printf (FH_NEW "%.512s",$record);
                                $record=substr($record,512);
                        }
                }
        } else {
                printf (FH_NEW "%s", $record);
        }
}
close(FH);
close(FH_NEW);

On a last note, I would recommend using star as an improved version over many tar implementation including GNU tar and stock Solaris version.
bbr
</description>
			<content:encoded><![CDATA[	<p>I wrote why too much tricks could leads to unexpected behaviors <a href="http://brumaire.biz/b2evolution/index.php?title=lfont_size_1_gtoo_much_good_leads_to_bad&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">here</a>. Facing some corrupted tar archive, some requirements are needed in order to repair them successfully:</p>
	<ul>
<li>programming skills</li>
	<li>knowledge on how the corruption occured</li>
	<li>basic informations on tar format</li>
	<li>times</li>
	<li>perseverance</li>
</ul>
	<p>Given my <a href="http://brumaire.biz/b2evolution/index.php?title=outet&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">affinity</a> for perl the choice was obvious. In fact perl fits pretty well in strings processing (scoop). <br />The relevant part on tar format can be found in the manual pages archives(4)</p>
<br /> #define TBLOCK 512  /* length of tar header and data blocks */</p>
	<p>For the record I 'll put my code in a simplify version. Through trial&amp;error it is necessary to expand the regular expression section to match all intruders.</p>
	<p><font face="Courier New, Courier, mono" size="2"><br />
#!/usr/local/bin/perl</p>
	<p>my $file=$ARGV[0];<br />
my $new_file=$ARGV[1];<br />
my $akt_pos=0;<br />
my $record="";<br />
my $size_buf=1024;<br />
my $eof=0;</p>
	<p>open (FH,"&lt;$file") or die "Couldn't open file $file\n";<br />
open (FH_NEW,"&gt;$new_file") or die "Couldn't open file $new_file\n";</p>
	<p>until ( eof(FH)){<br />
        if (length($record) &lt; $size_buf) {<br />
                $akt_pos = tell (FH);<br />
                if (read (FH,$txt, $size_buf-length($record)) == $size_buf-length($record)){<br />
                        $record.=$txt;<br />
                } else {<br />
                         seek(FH,$akt_pos,0);<br />
                         while ((read(FH,$txt,1) == 1)){<br />
                                $record .= $txt;<br />
                                $eof=1;<br />
                         }<br />
                }<br />
        } else {<br />
                $c=0;<br />
        }<br />
        $txt = $record;<br />
        $record =~ s/a \.\/somepath\/.* \d+K\n//mg;<br />
        $record =~ s/a .* symbolic link to .*\n//mg;<br />
        $record =~ s/a \.\/somepath\/.* excluded\n//mg;<br />
        if ( ! $eof ) {<br />
                if ( $record eq $txt ) {<br />
                       if (length($record) == $size_buf) {<br />
                                printf (FH_NEW "%.512s",$record);<br />
                                $record=substr($record,512);<br />
                        }<br />
                }<br />
        } else {<br />
                printf (FH_NEW "%s", $record);<br />
        }<br />
}<br />
close(FH);<br />
close(FH_NEW);<br />
</font></p>
	<p>On a last note, I would recommend using <a href="ftp://ftp.berlios.de/pub/star/">star</a> as an improved version over many tar implementation including GNU tar and stock Solaris version.<br />
<em>bbr</em></p>
]]></content:encoded>
			<comments>http://brumaire.biz/b2evolution/index.php?p=29&amp;c=1&amp;tb=1&amp;pb=1#comments</comments>
		</item>
				<item>
			<title>Too much good leads to bad</title>
			<link>http://brumaire.biz/b2evolution/index.php?title=lfont_size_1_gtoo_much_good_leads_to_bad&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1</link>
			<pubDate>Tue, 28 Nov 2006 16:05:31 +0000</pubDate>
						<category domain="main">Solaris</category>			<guid isPermaLink="false">28@http://brumaire.biz/b2evolution</guid>
			<description>Each cook knows it for sure, don't follow the "too much" path if you want to succeed. This rule can although be applied to computer. Take UNIX, it is a real cool OS. You can do art on the command line, piping tools together, using complex regular expression,... As a technogeek working on leading edge projects it might be ok but as sysadmin for a bank it is probably plain wrong. Just keep things simple.
What's wrong with tar, gzip and nohup
tar is used to create archive. It is a very usefull utility, well known and in UNIX for years. If you want to create an archive you provide a filename or a device where it will be create. After that you can compress it with gzip to save some space. Supposed you want to archive a lot of files, depending on I/O performance it can take hours. It is then a good practice to use nohup to stay imune to HUP signal. Put this 2 lines (tar and gzip) in a script, start it with nohup and you are fine... 
unless you want too much good. Of course (and it is not new) you can use dash instead of filename within tar. It will then write your archive on STDOUT which you can redirect through pipe to gzip. Put nohup in front of it. You have now a much more elegant one liner doing exactly the same. Not quite.
The man page for nohup state 
"If nohup.out is not writable in the current directory,  out-
     put  is redirected to $HOME/nohup.out. If a file is created,
     the file will have  read  and  write  permission  (600,  see
     chmod(1)).  If  the  standard  error  is  a  terminal, it is
     redirected to the  standard  output,  otherwise  it  is  not
     redirected.  The priority of the process run by nohup is not
     altered."
OUTCH
Unfortunatly tar writes progress messages on STDERR. This will under certain circonstances corrupts the tarfile, making it completely needless!
If you have this kind of story I'll be glad to hear from it. Next article will deal with the recovery process from a 80 GB corrupted tar archive.
bbr</description>
			<content:encoded><![CDATA[	<p>Each cook knows it for sure, don't follow the "too much" path if you want to succeed. This rule can although be applied to computer. Take UNIX, it is a real cool OS. You can do art on the command line, piping tools together, using complex regular expression,... As a technogeek working on leading edge projects it might be ok but as sysadmin for a bank it is probably plain wrong. Just keep things simple.</p>
	<p><strong>What's wrong with tar, gzip and nohup</strong></p>
	<p>tar is used to create archive. It is a very usefull utility, well known and in UNIX for years. If you want to create an archive you provide a filename or a device where it will be create. After that you can compress it with gzip to save some space. Supposed you want to archive a lot of files, depending on I/O performance it can take hours. It is then a good practice to use nohup to stay imune to HUP signal. Put this 2 lines (tar and gzip) in a script, start it with nohup and you are fine... <br />
unless you want too much good. Of course (and it is not new) you can use dash instead of filename within tar. It will then write your archive on STDOUT which you can redirect through pipe to gzip. Put nohup in front of it. You have now a much more elegant one liner doing exactly the same.<br /> Not quite.<br />
The man page for nohup state <br />
"If nohup.out is not writable in the current directory,  out-<br />
     put  is redirected to $HOME/nohup.out. If a file is created,<br />
     the file will have  read  and  write  permission  (600,  see<br />
     chmod(1)).  If  the  standard  error  is  a  terminal, it is<br />
     redirected to the  standard  output,  otherwise  it  is  not<br />
     redirected.  The priority of the process run by nohup is not<br />
     altered."<br />
<strong>OUTCH</strong><br />
Unfortunatly tar writes progress messages on STDERR. This will under certain circonstances corrupts the tarfile, making it completely needless!<br />
If you have this kind of story I'll be glad to hear from it. Next article will deal with the recovery process from a 80 GB corrupted tar archive.<br />
<em>bbr</em>
</p>
]]></content:encoded>
			<comments>http://brumaire.biz/b2evolution/index.php?p=28&amp;c=1&amp;tb=1&amp;pb=1#comments</comments>
		</item>
				<item>
			<title>Oops I did it again</title>
			<link>http://brumaire.biz/b2evolution/index.php?title=oops_i_did_it_again&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1</link>
			<pubDate>Tue, 28 Nov 2006 16:00:00 +0000</pubDate>
						<category domain="main">Diverse</category>			<guid isPermaLink="false">27@http://brumaire.biz/b2evolution</guid>
			<description>As an aficionados of numbers, statistics and movement I worked with gnucash a lot.
Back to 2001 I 've started on Mandrake which was my distro of choice at that time. Gnucash was included, everything was fine. But then the dependencies hell drove me mad. I still can't accept one have to update the kernel and other major libraries just because you want the last version of "ethereal". After some tests with redhat and debian (no improvements) I decided to give Solaris x86 a try. It was a natural move because Solaris was (and still is) my main OS at work.
No gnucash binaries for Solaris exist on the internet and I decided to compile this stuff by my own ...
2 months later
Today I laugh about it but at that time it costed me a lot of gray hairs. Gnucash is one (if not the one) of the hardest software to compile. Internet attests it in a lot of places. I remember how funny some emails are, full of frustration and anger. It  was a painfull process but I managed to compile gnucash in the version 1.8.6 and since I used it almost everyday.
today
Things aren't better from a software point of view. You still need slib, guile, a ton of old gnome 1.x libraries and packages. The gnucash developers didn't managed to create a gnome 2.x version due to short ressources (if you can hack C please consider getting involved). But there is some improvment from other fronts:Solaris 10 come otb with gccDTrace is a great help to debug thingsblastwave provides a lot of needed libraries
DTrace
The best DTrace recipe I've saw so far and for me the most usefull is the one that reads every bytes landing in /dev/null. I urge the creator of this little gem to release it.
Blastwave
Really cool site for Solaris software. If you use it please make a donation. I've contacted them to maintain gnucash in the CSW tree and hope that you will soon (less than 2 months) find gnucash in the list of packages. Eventually I'll report on progress.
bbr</description>
			<content:encoded><![CDATA[	<p>As an aficionados of numbers, statistics and movement I worked with <a href="http://www.gnucash.org">gnucash</a> a lot.<br />
Back to 2001 I 've started on Mandrake which was my distro of choice at that time. Gnucash was included, everything was fine. But then the dependencies hell drove me mad. I still can't accept one have to update the kernel and other major libraries just because you want the last version of "ethereal". After some tests with redhat and debian (no improvements) I decided to give Solaris x86 a try. It was a natural move because Solaris was (and still is) my main OS at work.<br />
No gnucash binaries for Solaris exist on the internet and I decided to compile this stuff by my own ...</p>
	<p><strong>2 months later</strong></p>
	<p>Today I laugh about it but at that time it costed me a lot of gray hairs. Gnucash is one (if not the one) of the hardest software to compile. Internet attests it in a lot of <a href="http://www.google.com/search?q=gnucash+build">places</a>. I remember how funny some emails are, full of frustration and anger. It  was a painfull process but I managed to compile gnucash in the version 1.8.6 and since I used it almost everyday.</p>
	<p><strong>today</strong></p>
	<p>Things aren't better from a software point of view. You still need slib, guile, a ton of old gnome 1.x libraries and packages. The gnucash developers didn't managed to create a gnome 2.x version due to short ressources (if you can hack C please consider getting involved). But there is some improvment from other fronts:
<ul>
<li>Solaris 10 come otb with gcc</li>
	<li>DTrace is a great help to debug things</li>
	<li><a href="http://www.blastwave.org">blastwave</a> provides a lot of needed libraries</li>
</ul>
	<p><strong>DTrace</strong></p>
	<p>The best DTrace recipe I've saw so far and for me the most usefull is the one that reads every bytes landing in /dev/null. I urge the <a href="http://blogs.sun.com/roller/page/jonh">creator</a> of this little gem to release it.</p>
	<p><strong>Blastwave</strong></p>
	<p>Really cool site for Solaris software. If you use it please make a donation. I've contacted them to maintain gnucash in the CSW tree and hope that you will soon (less than 2 months) find gnucash in the list of packages. Eventually I'll report on progress.<br />
<em>bbr</em>
</p>
]]></content:encoded>
			<comments>http://brumaire.biz/b2evolution/index.php?p=27&amp;c=1&amp;tb=1&amp;pb=1#comments</comments>
		</item>
				<item>
			<title>certified</title>
			<link>http://brumaire.biz/b2evolution/index.php?title=certified&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1</link>
			<pubDate>Tue, 28 Nov 2006 15:58:04 +0000</pubDate>
						<category domain="main">Solaris</category>			<guid isPermaLink="false">26@http://brumaire.biz/b2evolution</guid>
			<description>The result arrived over the weekend and guess what I
passed. Call me SCSA :)
After 15+ years experience with Solaris, everyone should pass the test "mit links" or "les doigts dans le nez" but indeed those tests didn't say much. You've well prepared the exam, you 've enough money and time to take the trainings. Companies should't make their mind and shouldn't choose employes or consultants based on certification.
But reality is quiet different as nowadays employe-time is very expensive! Only
few companies are willing to spend money for recruiting and managing human ressources. Certification is then some kind of insurance.
Anyway now that I'm on my own, I've to play the game.
bbr</description>
			<content:encoded><![CDATA[	<p>The result arrived over the weekend and guess what I<br />
passed. Call me SCSA <img src="http://brumaire.biz/b2evolution/img/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" /><br />
After 15+ years experience with Solaris, everyone should pass the test "mit links" or "les doigts dans le nez" but indeed those tests didn't say much. You've well prepared the exam, you 've enough money and time to take the trainings. Companies should't make their mind and shouldn't choose employes or consultants based on certification.<br />
But reality is quiet different as nowadays employe-time is very expensive! Only<br />
few companies are willing to spend money for recruiting and managing human ressources. Certification is then some kind of insurance.<br />
Anyway now that I'm on my own, I've to play the game.
</p>
<em>bbr</em>
</p>
]]></content:encoded>
			<comments>http://brumaire.biz/b2evolution/index.php?p=26&amp;c=1&amp;tb=1&amp;pb=1#comments</comments>
		</item>
				<item>
			<title>L'angoisse de la page blanche</title>
			<link>http://brumaire.biz/b2evolution/index.php?title=l_angoisse_de_la_page_blanche&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1</link>
			<pubDate>Tue, 28 Nov 2006 13:59:20 +0000</pubDate>
						<category domain="main">Security</category>			<guid isPermaLink="false">25@http://brumaire.biz/b2evolution</guid>
			<description>Georges Brassens says in one of his song one will always remember the first time you've hugged someone. Not sure if this apply to blogs. However, now that I have more control over my time&#160; (being no longer at Sun) I'll try to write down some of my thoughts. I choose a handful subject to ordonate my chaos but bloglines, for now, doesn't support classification. The last decade was spent in the Frankfurt area dealing with security issues at customer sites. It comes without surprise that my first blog reflect that. Something really clever when it comes to IT security is to use parallel to make your point. IT security is for most obscure. A good argumentation using&#160; common sense on well known subject will help on much case.&#160; Cars, castles, banks,&#160; towns architecture, evolution,...no limit to your fantasy. Look at highways, in most of the countries in europe it is quiet a safe place to drive. At least the statistic in France says so here.&#160; Better at 200 kmh beetween Munich and Frankfurt than in Paris on a bicycle. Want some insigth how to&#160; drive in germany? Look&#160; here :). In belgium, highways are like broadway, at least for my kinds. All this lights are for them amazing. That's why we have to drive by night when we visit our french family. I'm not sure how this affects security but what they are doing very well is communication. Every 20 km you will see beneath the road a big ads on addressing one valid point about security. At the moment it deals with belts and it is for kids, the next drivers. It's not a big deal but you can't miss it, and so your kids (remember the lights?).  During 10 years in diverse companies, I never saw any kind of communication on IT security. A lot have to be said. No idea? You should look into your company security policy! No one. Starts with "don't give your password away", "don't open unknow attachement", "lock your display while&#160; you're away",...Communication is a huge need and can help a lot. Think escalation process, information flow, CERT, ....  To be honest at Sun we did recieved some emails about it security!bbr</description>
			<content:encoded><![CDATA[	<p>Georges <a href="http://delamargelle.free.fr/brassens/">Brassens</a> says in one of his song one will always remember the first time you've hugged someone. Not sure if this apply to blogs. However, now that I have more control over my time&nbsp; (being no longer at Sun) I'll try to write down some of my thoughts. I choose a handful subject to ordonate my chaos but bloglines, for now, doesn't support classification. The last decade was spent in the Frankfurt area dealing with security issues at customer sites. It comes without surprise that my first blog reflect that. Something really clever when it comes to IT security is to use parallel to make your point. IT security is for most obscure. A good argumentation using&nbsp; common sense on well known subject will help on much case.&nbsp; Cars, castles, banks,&nbsp; towns architecture, evolution,...no limit to your fantasy.<br /> Look at highways, in most of the countries in europe it is quiet a safe place to drive. At least the statistic in France says so <a href="http://securiteroutiere.info/voies.html">here</a>.&nbsp; Better at 200 kmh beetween Munich and Frankfurt than in Paris on a bicycle. Want some insigth how to&nbsp; drive in germany? Look&nbsp; <a href="http://blogs.sun.com/roller/page/templedf/20040728#more_travel_tips_for_germany">here</a> <img src="http://brumaire.biz/b2evolution/img/smilies/icon_smile.gif" alt="&#58;&#41;" class="middle" />. In belgium, highways are like broadway, at least for my kinds. All this lights are for them amazing. That's why we have to drive by night when we visit our french family. I'm not sure how this affects security but what they are doing very well is communication. Every 20 km you will see beneath the road a big <a href="http://www.tatouceinture.be">ads</a> on addressing one valid point about security. At the moment it deals with belts and it is for kids, the next drivers. It's not a big deal but you can't miss it, and so your kids (remember the lights?).<br />  During 10 years in diverse companies, I never saw any kind of communication on IT security. A lot have to be said. No idea? You should look into your company security policy! No one. Starts with "don't give your password away", "don't open unknow attachement", "lock your display while&nbsp; you're away",...Communication is a huge need and can help a lot. Think escalation process, information flow, CERT, ....<br />  To be honest at Sun we did recieved some emails about it security!<em>bbr</em>
</p>
]]></content:encoded>
			<comments>http://brumaire.biz/b2evolution/index.php?p=25&amp;c=1&amp;tb=1&amp;pb=1#comments</comments>
		</item>
			</channel>
</rss>
<div class="error"><p class="error">MySQL error!</p><p>Duplicate entry '0' for key 1(Errno=1062)</p><p class="error">Your query:<br /><code>INSERT INTO evo_hitlog( visitTime, visitURL, hit_ignore, referingURL, baseDomain, 
																		hit_blog_ID, hit_remote_addr, hit_user_agent ) 
					VALUES( FROM_UNIXTIME(1283675346), '/b2evolution/xmlsrv/rss2.php?blog=1', 'rss',
									'', '', 1, 
									'38.107.191.113', 'CCBot/1.0 (+http://www.commoncrawl.org/bot.html)')</code></p></div>