<?xml 
version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="en">
	<title>math-linux.com</title>
	<link>http://www.math-linux.com/</link>
	<description>math-linux.com is a website dedicated to Linux,applied mathematics, numerical analysis. Tutorial and help for web developpement and Linux.</description>
	<language>en</language>
	<generator>SPIP - www.spip.net</generator>




<item xml:lang="en">
		<title>SVN &#8212; Branch, Branching subversion howto</title>
		<link>http://www.math-linux.com/spip.php?article118</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article118</guid>
		<dc:date>2010-05-26T09:39:22Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>svn</dc:subject>
		<dc:subject>branching</dc:subject>
		<dc:subject>branch</dc:subject>
		<dc:subject>merge</dc:subject>
		<dc:subject>svn+ssh</dc:subject>
		<dc:subject>revision</dc:subject>
		<dc:subject>trunk</dc:subject>

		<description>Requirements I suppose here your server is based on svn over ssh (svn+ssh), you can easily replace svn+ssh by https if you use Webdav for example. svn+ssh://your/server/... https://your/server/... Creating the branch Choose a branche name for example, MyBranch. Create the branch in the repository by copying the trunk: $ svn copy svn+ssh://your/server/trunk svn+ssh://your/server/branches/MyBranch Committed revision 3328. Remember this commited revision number 3328. If you have a local (...)

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique20" rel="directory"&gt;Tip of the day&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot154" rel="tag"&gt;svn&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot163" rel="tag"&gt;branching&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot164" rel="tag"&gt;branch&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot165" rel="tag"&gt;merge&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot166" rel="tag"&gt;svn+ssh&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot167" rel="tag"&gt;revision&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot168" rel="tag"&gt;trunk&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Requirements&lt;/h3&gt;
&lt;p&gt;I suppose here your server is based on svn over ssh (&lt;strong&gt;svn+ssh&lt;/strong&gt;), you can
easily replace &lt;strong&gt;svn+ssh&lt;/strong&gt; by &lt;strong&gt;https&lt;/strong&gt; if you use Webdav for example.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;svn+ssh://your/server/...&lt;br /&gt; https://your/server/...&lt;/code&gt;&lt;/div&gt;
&lt;h3 class=&quot;spip&quot;&gt;Creating the branch&lt;/h3&gt;
&lt;p&gt;Choose a branche name for example, &lt;strong&gt;MyBranch&lt;/strong&gt;. Create the branch in the repository by copying the trunk:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn copy svn+ssh://your/server/trunk svn+ssh://your/server/branches/MyBranch&lt;br /&gt; Committed revision 3328.&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Remember this commited revision number &lt;strong&gt;3328&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;If you have a local copy you do not need to checkout your branch just switch:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ cd /your/local/copy&lt;br /&gt; $ svn switch svn+ssh://your/server/branches/MyBranch .&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Do not forget the dot at endline.&lt;/p&gt; &lt;p&gt;If you do not have a local copy you, checkout your branch:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ mkdir /your/local/copy&lt;br /&gt; $ cd /your/local/copy&lt;br /&gt; $ svn checkout svn+ssh://your/server/branches/MyBranch .&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Check if the localization is ok:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn info | grep MyBranch&lt;br /&gt; URL: svn+ssh://your/server/branches/MyBranch&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Now you can work with your branch exactly as working on the trunk. (update, commit, etc ...).&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Merge with the trunk&lt;/h3&gt;
&lt;p&gt;You've been developing on your branch, and so have other people on trunk, and now you have to add their changes to your branch.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ cd /your/local/copy&lt;br /&gt; $ svn update&lt;br /&gt; At revision 3269.&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Add their changes to your branch:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn merge -r3328:3269 svn+ssh://your/server/trunk .&lt;br /&gt; U src/file.cpp&lt;br /&gt; U src/file.h&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;This command finds all the changes in revisions 3329, 3330, ... , 3269 that were made in the trunk, and applies them in Mybranch.&lt;/p&gt; &lt;p&gt;Now you must commit these changes to your branch repository; with appropriate comments to remember which range you have already merged:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn ci -m &quot;Merged the trunk from 3328 to 3269.&quot; .&lt;br /&gt; Sending src/file.cpp&lt;br /&gt; Sending src/file.h&lt;br /&gt; Transmitting file data ..&lt;br /&gt; Committed revision 3270.&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;After another interval of work, you will have to merge again to get the new changes.
You specify a revision range that takes only the changes you haven't already merged:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ cd /your/local/copy&lt;br /&gt; $ svn update&lt;br /&gt; At revision 3333.&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Add their changes to your branch:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn merge -r3269:3333 svn+ssh://your/server/trunk .&lt;br /&gt; U src/file.cpp&lt;br /&gt; U src/file.h&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;This command finds all the changes in revisions 3370, 3371, ... , 3333 that were made in the trunk, and applies them in Mybranch.&lt;/p&gt; &lt;p&gt;Now you must commit these changes to your branch repository:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn ci -m &quot;Merged the trunk from 3269 to 3333.&quot; .&lt;br /&gt; Sending src/file.cpp&lt;br /&gt; Sending src/file.h&lt;br /&gt; Transmitting file data ..&lt;br /&gt; Committed revision 3334.&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;/i&gt;&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Back to the trunk&lt;/h3&gt;
&lt;p&gt;Once you have finished your branch and you have merged again the last change from the trunk, you
will commit your branch back to the trunk. Remember! MyBranch was created at revision number &lt;strong&gt;3328&lt;/strong&gt;.
Now you have to add all your changes to the trunk.&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ cd /your/local/copy&lt;br /&gt; $ svn update&lt;br /&gt; At revision 3400.&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Switch to the trunk and merge from Mybranch all the changes(&lt;strong&gt;3328:3400&lt;/strong&gt;) to the trunk&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn switch svn+ssh://your/server/trunk&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Check if the relocalization is ok:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn info | grep MyBranch&lt;br /&gt; URL: svn+ssh://your/server/trunk&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Add all your changes to the trunk&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn merge -r3328:3400 svn+ssh://your/server/branches/MyBranch .&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Now you must commit these changes to the trunk:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ svn ci -m &quot;branch back MyBranch into trunk&quot; .&lt;br /&gt; Sending src/file.cpp&lt;br /&gt; Sending src/file.h&lt;br /&gt; Transmitting file data ..&lt;br /&gt; Committed revision 3334.&lt;/code&gt;&lt;/div&gt;
&lt;h3 class=&quot;spip&quot;&gt;Delete your branch&lt;/h3&gt;
&lt;p&gt;At last, delete your branch&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;svn del svn+ssh://your/server/branches/MyBranch&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>C++ &#8212; extern, extern &quot;C&quot; &#8212; mangling</title>
		<link>http://www.math-linux.com/spip.php?article112</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article112</guid>
		<dc:date>2010-05-12T19:58:26Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>C++</dc:subject>
		<dc:subject>extern</dc:subject>
		<dc:subject>C</dc:subject>
		<dc:subject>keyword</dc:subject>
		<dc:subject>mangling</dc:subject>

		<description>extern keyword can be used as a storage class specifier for a variable to tell the compiler how to link to an external function. extern The extern keyword is used to inform the compiler about variables declared outside of the current scope. Variables described by extern statements will not have any space allocated for them, as they should be properly defined elsewhere. Extern statements are frequently used to allow data to span the scope of multiple files. An external variable must (...)

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique38" rel="directory"&gt;Extra&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot92" rel="tag"&gt;C++&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot159" rel="tag"&gt;extern&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot160" rel="tag"&gt;C&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot161" rel="tag"&gt;keyword&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot162" rel="tag"&gt;mangling&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;extern keyword&lt;/strong&gt; can be used
as
&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; a storage class specifier for a variable
&lt;br /&gt;&lt;img src=&quot;http://www.math-linux.com/local/cache-vignettes/L8xH11/puce-cebf5.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; to tell the compiler how to link to an external function.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;extern&lt;/h3&gt;
&lt;p&gt;The extern keyword is used to inform the compiler about variables declared outside of the current scope. Variables described by extern statements will not have any space allocated for them, as they should be properly defined elsewhere.&lt;/p&gt; &lt;p&gt;Extern statements are frequently used to allow data to span the scope of multiple files. An external variable must be defined, exactly once, outside of any function.&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;extern int GlobalVar; extern void Action (int* State );&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;extern &quot;C&quot; and mangling&lt;/h3&gt;
&lt;p&gt;Since C++ has overloading of function names and C does not, the C++ compiler cannot just use the function name as a unique id to link to, so it mangles the name by adding information about the arguments. A C compiler does not need to mangle the name since you can not overload function names in C. When you state that a function has extern &quot;C&quot; linkage in C++, the C++ compiler does not add argument/parameter type information to the name used for linkage.
For example &lt;i&gt;test.cpp&lt;/i&gt;&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;void foo() { }&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'&gt;$ g++ -c test.cpp $ nm test.o | grep foo 0000000000000000 T _Z3foov&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;&lt;strong&gt;foo&lt;/strong&gt; function is decorated.
Now with &lt;i&gt;test.cpp&lt;/i&gt;&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'&gt;extern &quot;C&quot; { void foo() { } }&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'&gt;$ g++ -c test.cpp $ nm test.o | grep foo 0000000000000000 T foo&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;&lt;strong&gt;foo&lt;/strong&gt; function is not decorated.&lt;/p&gt; &lt;p&gt;If you want to mix C and C++ code add the following guards in your
C code.&lt;/p&gt; &lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre' dir='ltr'&gt;#ifdef __cplusplus extern &quot;C&quot; { #endif /* statements */ #ifdef __cplusplus } #endif&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;This allows to have the good decoration when you link with the C/C++ libraries.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Comment installer un package Latex ?</title>
		<link>http://www.math-linux.com/spip.php?article114</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article114</guid>
		<dc:date>2010-05-07T12:13:10Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>Latex</dc:subject>
		<dc:subject>installation</dc:subject>
		<dc:subject>package</dc:subject>
		<dc:subject>style</dc:subject>

		<description>Dans un premier temps vous devez &#234;tre root ! Supposons que nous voulions installerl e package My_package. Cr&#233;ez un r&#233;pertoire My_package et copier tout les fichiers de style &#224; l'int&#233;rieur : sudo mkdir /usr/share/texmf/tex/latex/My_package sudo cp My_package.sty /usr/share/texmf/tex/latex/My_package Mettez &#224; jour votre base de donn&#233;es texhash or mktexlsr Dans votre fichier Latex, ajoutez alors \usepackageMy_package Et le tour est jou&#233; (...)

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique40" rel="directory"&gt;Extra&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot44" rel="tag"&gt;Latex&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot132" rel="tag"&gt;installation&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot157" rel="tag"&gt;package&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot158" rel="tag"&gt;style&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Dans un premier temps vous devez &#234;tre root ! Supposons que nous voulions
installerl e package &lt;i&gt;My_package&lt;/i&gt;. Cr&#233;ez un r&#233;pertoire &lt;i&gt;My_package&lt;/i&gt; et copier tout les fichiers de style &#224; l'int&#233;rieur :&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'&gt;sudo mkdir /usr/share/texmf/tex/latex/My_package sudo cp My_package.sty /usr/share/texmf/tex/latex/My_package&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Mettez &#224; jour votre base de donn&#233;es&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;texhash&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;or&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;mktexlsr&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Dans votre fichier Latex, ajoutez alors&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;\usepackage{My_package}&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Et le tour est jou&#233; !!!&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>How to install latex package ?</title>
		<link>http://www.math-linux.com/spip.php?article113</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article113</guid>
		<dc:date>2010-05-07T12:08:57Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>Latex</dc:subject>
		<dc:subject>installation</dc:subject>
		<dc:subject>package</dc:subject>
		<dc:subject>style</dc:subject>

		<description>First you must be root ! We want to install the package My_package. Create a directory My_package and copy all style files in: sudo mkdir /usr/share/texmf/tex/latex/My_package sudo cp My_package.sty /usr/share/texmf/tex/latex/My_package Update your database with texhash or mktexlsr In your latex file, add \usepackageMy_package Enjoy !!!

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique40" rel="directory"&gt;Extra&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot44" rel="tag"&gt;Latex&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot132" rel="tag"&gt;installation&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot157" rel="tag"&gt;package&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot158" rel="tag"&gt;style&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;First you must be root ! We want to install the package &lt;i&gt;My_package&lt;/i&gt;. Create a directory &lt;i&gt;My_package&lt;/i&gt; and copy all style files in:&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre' dir='ltr'&gt;sudo mkdir /usr/share/texmf/tex/latex/My_package sudo cp My_package.sty /usr/share/texmf/tex/latex/My_package&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Update your database with&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;texhash&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;or&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;mktexlsr&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;In your latex file, add&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;\usepackage{My_package}&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Enjoy !!!&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>SVN &#8212; Comment ignorer des fichiers ou des r&#233;pertoires avec subversion ?</title>
		<link>http://www.math-linux.com/spip.php?article111</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article111</guid>
		<dc:date>2010-05-02T19:36:09Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>svn</dc:subject>
		<dc:subject>propset</dc:subject>
		<dc:subject>ignore</dc:subject>

		<description>Ignorer un fichier Pour ignorer tous les fichiers d'extension .o, utilisez : svn propset svn:ignore &quot;*.o&quot; . Ignorer un r&#233;pertoire Pour ignorer le r&#233;pertoire tmp svn propset svn:ignore tmp . Ignorer plusieurs fichiers ou r&#233;pertoires Pour ignorer les r&#233;pertoires tmp,obj,bin ainsi que les fichiers d'extension *.o *.lib,*.la. Sauvez le fichier suivant sous tmp obj bin *.o *.lib *.la svnignore.txt, et la commande suivante fera le boulot !!! svn propset (...)

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique11" rel="directory"&gt;Commande du jour&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot154" rel="tag"&gt;svn&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot155" rel="tag"&gt;propset&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot156" rel="tag"&gt;ignore&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Ignorer un fichier&lt;/h3&gt;
&lt;p&gt;Pour ignorer tous les fichiers d'extension .o, utilisez :&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn propset svn:ignore &quot;*.o&quot; .&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Ignorer un r&#233;pertoire&lt;/h3&gt;
&lt;p&gt;Pour ignorer le r&#233;pertoire &lt;i&gt;tmp&lt;/i&gt;&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn propset svn:ignore tmp .&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Ignorer plusieurs fichiers ou r&#233;pertoires&lt;/h3&gt;
&lt;p&gt;Pour ignorer les r&#233;pertoires &lt;i&gt;tmp,obj,bin&lt;/i&gt; ainsi que les fichiers d'extension &lt;i&gt;*.o
*.lib,*.la&lt;/i&gt;. Sauvez le fichier suivant sous&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre' dir='ltr'&gt;tmp obj bin *.o *.lib *.la&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;&lt;i&gt;svnignore.txt&lt;/i&gt;, et la commande suivante fera le boulot !!!&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn propset svn:ignore -F svnignore.txt .&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Ignorer plusieurs fichiers ou r&#233;pertoires via la ligne de commande&lt;/h3&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn propedit svn:ignore .&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;Vous pourrez alors modifier la liste des fichiers ou r&#233;pertoires &#224; bannir.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Trouver les fichiers qui ne sont pas sous controle de version&lt;/h3&gt;
&lt;p&gt;Pour d&#233;terminer de tels fichiers :&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn status | grep ^\? | awk '{print $2}'&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>SVN &#8212; How to ignore file or directory in subversion?</title>
		<link>http://www.math-linux.com/spip.php?article110</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article110</guid>
		<dc:date>2010-05-02T19:14:05Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>svn</dc:subject>
		<dc:subject>propset</dc:subject>
		<dc:subject>ignore</dc:subject>

		<description>Ignore file To ignore all files with the ending .o use: svn propset svn:ignore &quot;*.o&quot; . Ignore dir If you want to ignore folder tmp svn propset svn:ignore tmp . Ignore multiple files/dirs If you want to ignore tmp,obj,bin dirs and all files with *.o *.lib,*.la extension. Save this file tmp obj bin *.o *.lib *.la and name it svnignore.txt, the following command will do the job ! svn propset svn:ignore -F svnignore.txt . Ignore multiple files/dirs via command line svn (...)

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique20" rel="directory"&gt;Tip of the day&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot154" rel="tag"&gt;svn&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot155" rel="tag"&gt;propset&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot156" rel="tag"&gt;ignore&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Ignore file&lt;/h3&gt;
&lt;p&gt;To ignore all files with the ending .o use:&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn propset svn:ignore &quot;*.o&quot; .&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Ignore dir&lt;/h3&gt;
&lt;p&gt;If you want to ignore folder &lt;i&gt;tmp&lt;/i&gt;&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn propset svn:ignore tmp .&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Ignore multiple files/dirs &lt;/h3&gt;
&lt;p&gt;If you want to ignore &lt;i&gt;tmp,obj,bin&lt;/i&gt; dirs and all files with &lt;i&gt;*.o
*.lib,*.la&lt;/i&gt; extension. Save this file&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre' dir='ltr'&gt;tmp obj bin *.o *.lib *.la&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;and name it &lt;i&gt;svnignore.txt&lt;/i&gt;, the following command will do the job !&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn propset svn:ignore -F svnignore.txt .&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;h3 class=&quot;spip&quot;&gt;Ignore multiple files/dirs via command line&lt;/h3&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn propedit svn:ignore .&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt; &lt;p&gt;This will bring up list of files or directories to ignore.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Find files that are not under version control&lt;/h3&gt;
&lt;p&gt;To find such files:&lt;/p&gt;
&lt;form action='' method='get'&gt;&lt;div&gt;
&lt;input type='hidden' name='exec' value='' /&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre' dir='ltr'&gt;svn status | grep ^\? | awk '{print $2}'&lt;/textarea&gt;&lt;/div&gt;&lt;/form&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>How to patch metis-4.0 error: conflicting types for __log2</title>
		<link>http://www.math-linux.com/spip.php?article109</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article109</guid>
		<dc:date>2010-04-30T08:16:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>metis</dc:subject>
		<dc:subject>partitioning</dc:subject>
		<dc:subject>patch</dc:subject>
		<dc:subject>algorithm</dc:subject>

		<description>METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes. I give a patch for metis-4.0 software, compilation fails with gcc 4.4.x nsoualem@gold: -&gt; cd metis-4.0 nsoualem@gold: -&gt; make (cd Lib ; make ) make[1]: Entering directory (...)

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique18" rel="directory"&gt;Linear Systems&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot150" rel="tag"&gt;metis&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot151" rel="tag"&gt;partitioning&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot152" rel="tag"&gt;patch&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot153" rel="tag"&gt;algorithm&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes.
I give a patch for metis-4.0 software, compilation fails with gcc 4.4.x&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;nsoualem@gold: -&gt; cd metis-4.0&lt;br /&gt; nsoualem@gold: -&gt; make&lt;br /&gt; (cd Lib ; make ) &lt;br /&gt; make[1]: Entering directory `/home/nsoualem/test/lib_ext/lib_ext/metis-4.0/Lib'&lt;br /&gt; cc -O2 -I. -c coarsen.c&lt;br /&gt; In file included from ./metis.h:36,&lt;br /&gt; from coarsen.c:13:&lt;br /&gt; ./proto.h:462: error: conflicting types for '__log2'&lt;br /&gt; /usr/include/bits/mathcalls.h:145: note: previous declaration of '__log2' was here&lt;br /&gt; make[1]: *** [coarsen.o] Error 1&lt;br /&gt; make[1]: Leaving directory `/home/nsoualem/test/lib_ext/lib_ext/metis-4.0/Lib'&lt;br /&gt; make: *** [default] Error 2&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;This error is due to the duplication of __log2 &lt;i&gt;/usr/include/bits/mathcalls.h:145&lt;/i&gt;&lt;/p&gt; &lt;p&gt;Here is the &lt;a href='http://www.math-linux.com/IMG/patch/metis-4.0.patch' class='spip_out'&gt;patch&lt;/a&gt;
to get compilation successful&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;nsoualem@gold: -&gt; cd metis-4.0&lt;br /&gt; nsoualem@gold: -&gt; patch -p1 &lt; metis-4.0.patch&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Comment extraire le nom et l'extension d'un fichier en Bash</title>
		<link>http://www.math-linux.com/spip.php?article108</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article108</guid>
		<dc:date>2010-04-29T14:21:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>Bash</dc:subject>
		<dc:subject>filename</dc:subject>
		<dc:subject>extension</dc:subject>

		<description>nsoualem@gold: -&gt; PICTURE=Tux.jpg nsoualem@gold: -&gt; echo $PICTURE%%.* Tux nsoualem@gold: -&gt; echo $PICTURE#*. jpg Dans le cas de multiples extensions : nsoualem@gold: -&gt; FILE=archive.tar.gz nsoualem@gold: -&gt; echo $FILE%%.* archive nsoualem@gold: -&gt; echo $FILE%.* archive.tar nsoualem@gold: -&gt; echo $FILE#*. tar.gz nsoualem@gold: -&gt; echo $FILE##*. (...)

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique11" rel="directory"&gt;Commande du jour&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot124" rel="tag"&gt;Bash&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot148" rel="tag"&gt;filename&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot149" rel="tag"&gt;extension&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;nsoualem@gold: -&gt; PICTURE=Tux.jpg&lt;br /&gt; nsoualem@gold: -&gt; echo ${PICTURE%%.*}&lt;br /&gt; Tux&lt;br /&gt; nsoualem@gold: -&gt; echo ${PICTURE#*.}&lt;br /&gt; jpg&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Dans le cas de multiples extensions :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;nsoualem@gold: -&gt; FILE=archive.tar.gz&lt;br /&gt; nsoualem@gold: -&gt; echo ${FILE%%.*}&lt;br /&gt; archive&lt;br /&gt; nsoualem@gold: -&gt; echo ${FILE%.*}&lt;br /&gt; archive.tar&lt;br /&gt; nsoualem@gold: -&gt; echo ${FILE#*.}&lt;br /&gt; tar.gz&lt;br /&gt; nsoualem@gold: -&gt; echo ${FILE##*.}&lt;br /&gt; gz&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>How to Get or Extract filename and extension in bash</title>
		<link>http://www.math-linux.com/spip.php?article107</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article107</guid>
		<dc:date>2010-04-29T14:19:22Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>Bash</dc:subject>
		<dc:subject>filename</dc:subject>
		<dc:subject>extension</dc:subject>

		<description>nsoualem@gold: -&gt; PICTURE=Tux.jpg nsoualem@gold: -&gt; echo $PICTURE%%.* Tux nsoualem@gold: -&gt; echo $PICTURE#*. jpg For multiples extensions files: nsoualem@gold: -&gt; FILE=archive.tar.gz nsoualem@gold: -&gt; echo $FILE%%.* archive nsoualem@gold: -&gt; echo $FILE%.* archive.tar nsoualem@gold: -&gt; echo $FILE#*. tar.gz nsoualem@gold: -&gt; echo $FILE##*. (...)

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique20" rel="directory"&gt;Tip of the day&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot124" rel="tag"&gt;Bash&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot148" rel="tag"&gt;filename&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot149" rel="tag"&gt;extension&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;nsoualem@gold: -&gt; PICTURE=Tux.jpg&lt;br /&gt; nsoualem@gold: -&gt; echo ${PICTURE%%.*}&lt;br /&gt; Tux&lt;br /&gt; nsoualem@gold: -&gt; echo ${PICTURE#*.}&lt;br /&gt; jpg&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;For multiples extensions files:&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;nsoualem@gold: -&gt; FILE=archive.tar.gz&lt;br /&gt; nsoualem@gold: -&gt; echo ${FILE%%.*}&lt;br /&gt; archive&lt;br /&gt; nsoualem@gold: -&gt; echo ${FILE%.*}&lt;br /&gt; archive.tar&lt;br /&gt; nsoualem@gold: -&gt; echo ${FILE#*.}&lt;br /&gt; tar.gz&lt;br /&gt; nsoualem@gold: -&gt; echo ${FILE##*.}&lt;br /&gt; gz&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>How to find out my dns server addresses ?</title>
		<link>http://www.math-linux.com/spip.php?article105</link>
		<guid isPermaLink="true">http://www.math-linux.com/spip.php?article105</guid>
		<dc:date>2010-04-02T11:59:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Nadir SOUALEM</dc:creator>


		<dc:subject>dns</dc:subject>
		<dc:subject>resolv.conf</dc:subject>

		<description>How to find out my dns server addresses ? To find your DNS server address type following command as shell prompt: $ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver xxx.xxx.xxx.xxx nameserver xxx.xxx.xxx.xxx

-
&lt;a href="http://www.math-linux.com/spip.php?rubrique29" rel="directory"&gt;Network&lt;/a&gt;

/ 
&lt;a href="http://www.math-linux.com/spip.php?mot146" rel="tag"&gt;dns&lt;/a&gt;, 
&lt;a href="http://www.math-linux.com/spip.php?mot147" rel="tag"&gt;resolv.conf&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;How to find out my dns server addresses ?&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;To find your DNS server address type following command as shell prompt:&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;$ cat /etc/resolv.conf&lt;br /&gt; # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)&lt;br /&gt; # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN&lt;br /&gt; nameserver xxx.xxx.xxx.xxx&lt;br /&gt; nameserver xxx.xxx.xxx.xxx&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
