<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mad93's bloc &#187; linux</title>
	<atom:link href="http://bloc.majomo.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://bloc.majomo.com</link>
	<description>Un bloc més a la xarxa</description>
	<lastBuildDate>Fri, 09 Apr 2010 21:32:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Emprar el Tomcat d&#8217;Ubuntu a Eclipse</title>
		<link>http://bloc.majomo.com/emprar-el-tomcat-dubuntu-a-eclipse/</link>
		<comments>http://bloc.majomo.com/emprar-el-tomcat-dubuntu-a-eclipse/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 21:32:31 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[java tomcat eclipse ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=129</guid>
		<description><![CDATA[Trastejant amb l'eclipse per provar de fer una aplicació web amb Java, concretament amb el servidor Tomcat, m'he trobat que l'Eclipse esperava que la instal·lació de Tomcat fos l'estandar, i a Ubuntu s'han canviat les ubicacions dels fitxers. Així doncs hi ha dues solucions, instal·lar el tomcat mitjaçant el tar.gz de la seva web, o [...]]]></description>
			<content:encoded><![CDATA[<p>Trastejant amb l'eclipse per provar de fer una aplicació web amb Java, concretament amb el servidor Tomcat, m'he trobat que l'Eclipse esperava que la instal·lació de Tomcat fos l'estandar, i a Ubuntu s'han canviat les ubicacions dels fitxers. Així doncs hi ha dues solucions, instal·lar el tomcat mitjaçant el tar.gz de la seva web, o fer alguns enllaços simbólics. La darrera opció m'ha semblat més 'neta'.</p>
<p>Per fer-ho senzillament hem d'escriure:</p>
<pre>
sudo apt-get install tomcat6
cd /usr/share/tomcat6
sudo ln -s /var/lib/tomcat6/conf conf
sudo ln -s /etc/tomcat6/policy.d/03catalina.policy conf/catalina.policy
sudo ln -s /var/log/tomcat6 log
sudo chmod -R 777 /usr/share/tomcat6/conf
</pre>
<p>Llavors només queda que al definir el nostre servidor a l'Eclipse li donem la ruta /var/lib/tomcat i ja podem començar el nostre projecte.</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/emprar-el-tomcat-dubuntu-a-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connectar a una base de dades DB2 mitjançant unixODBC</title>
		<link>http://bloc.majomo.com/connectar-a-una-base-de-dades-db2-mitjancant-unixodbc/</link>
		<comments>http://bloc.majomo.com/connectar-a-una-base-de-dades-db2-mitjancant-unixodbc/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 14:56:53 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[DB2]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[bases de dades]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[AS400]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[ODBC]]></category>
		<category><![CDATA[unixODBC]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=117</guid>
		<description><![CDATA[Aquests dies per coses de la feina volia connectar a una base de dades DB2 directament, que es troba en un AS400, un mainframe.
El cas es que em va costar força fer-ho anar, tot i que realment no és gaire difícil.
Dir que en principi es documenta que amb DB2 Connect es pot accedir al AS400, [...]]]></description>
			<content:encoded><![CDATA[<p>Aquests dies per coses de la feina volia connectar a una base de dades DB2 directament, que es troba en un AS400, un mainframe.</p>
<p>El cas es que em va costar força fer-ho anar, tot i que realment no és gaire difícil.</p>
<p>Dir que en principi es documenta que amb DB2 Connect es pot accedir al AS400, però bé, jo no vaig trobar la manera d'aconseguir-ho, tot i que tampoc importa molt ja que el que volia era que el meu programa, en C++, pogués accedir directament a les dades del AS400.<br />
<span id="more-117"></span></p>
<p>Concretament volia instal·lar-ho a un servidor Debian Lenny, on tinc un servidor que és el que connecta amb el AS400, i efectua les operacions que li demanen els clients sobre la BD en funció de la seva autorització (així es controla que només el servidor hi tingui accés directe, i a més ens estalviem instal·lar a tot arreu el ODBC).</p>
<p>Per tant al servidor hem d'instal·lar-hi el unixODBC (disponible a totes les distribucions) i el driver d'ibm per al ODBC. Aquest driver s'ha de descarregar d'IBM i el podeu trobar en <a href="http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg21288088">aquesta plana</a>.</p>
<p>Altrament també necessitarem instal·lar el software isql per a comprovar que tot a funcionat correctament.</p>
<p>Instal·lem el software:</p>
<pre>aptitude install unixODBC isql</pre>
<p>Llavors instal·lem el driver d'ibm, si en descomprimim el paquet ja veurem que té un fitxer anomenat libdb2.so que el trobem dintre del directori /lib del arxiu que hem descomprimit.</p>
<p>Ara afegirem la ubicació del driver a l'arxiu /etc/odbcinst.ini (si instal·leu el driver amb l'instal·lador d'ibm, aquesta entrada s'hauria d'afegir sola):</p>
<pre>[iSeries Access ODBC Driver]
Description             = iSeries Access for Linux ODBC Driver
Driver          = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so
Setup           = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so
NOTE1           = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2           = the following Driver64/Setup64 keywords will provide that support.
Driver64                = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
Setup64         = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
Threading               = 2
DontDLClose             = 1
UsageCount              = 1</pre>
<p>Finalment afegirem la ubicació i dades del nostre servidor a /etc/odbc.ini:</p>
<pre>[Server_AS_400]
Driver          = iSeries Access ODBC Driver
Description     = Production AS/400 Database
Server          = 172.26.0.2
System          = 172.26.0.2</pre>
<p>Per a comprovar si connectem correctament al AS400 farem ús de l'eina isql:</p>
<pre>isql Server_AS_400 &lt;usuari&gt; &lt;clau&gt;</pre>
<p>Un document més complet de com fer-ho el podeu trobar <a href="http://www.kcaran.com/entries/technology/linux/linuxodbc.html" target="_blank">en aquesta entrada de blog</a>, que és d'on en vaig extreure la informació.</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/connectar-a-una-base-de-dades-db2-mitjancant-unixodbc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Convertir la codificació de tots els templates d&#8217;un directori</title>
		<link>http://bloc.majomo.com/convertir-la-codificacio-de-tots-els-templates-dun-directori/</link>
		<comments>http://bloc.majomo.com/convertir-la-codificacio-de-tots-els-templates-dun-directori/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 10:43:08 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[Programació]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[iconv]]></category>
		<category><![CDATA[iso-8859-1]]></category>
		<category><![CDATA[latin1]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=110</guid>
		<description><![CDATA[He hagut de canviar la codificació d'uns templates d'ISO-8859-1 a UTF-8 que estaven tots ens dos directoris. Per no fer-ho a mà, ho he fet amb un script en bash per a convertir-los ràpida i fàcilment. Aquí l'script:
#!/bin/bash
for i in `find *.tpl -type f -print`;
do
iconv -f ISO-8859-1 -t UTF-8 $i -o $i.new;
mv -f $i.new $i;
done
]]></description>
			<content:encoded><![CDATA[<p>He hagut de canviar la codificació d'uns templates d'ISO-8859-1 a UTF-8 que estaven tots ens dos directoris. Per no fer-ho a mà, ho he fet amb un script en bash per a convertir-los ràpida i fàcilment. Aquí l'script:</p>
<pre class="bash"><span style="color: #808080; font-style: italic;">#!/bin/bash</span>
<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> `<span style="color: #c20cb9; font-weight: bold;">find</span> *.tpl -<span style="color: #7a0874; font-weight: bold;">type</span> f -print`;
<span style="color: #000000; font-weight: bold;">do</span>
iconv -f ISO<span style="color: #000000;">-8859</span><span style="color: #000000;">-1</span> -t UTF<span style="color: #000000;">-8</span> <span style="color: #007800;">$i</span> -o <span style="color: #007800;">$i</span>.new;
<span style="color: #c20cb9; font-weight: bold;">mv</span> -f <span style="color: #007800;">$i</span>.new <span style="color: #007800;">$i</span>;
<span style="color: #000000; font-weight: bold;">done</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/convertir-la-codificacio-de-tots-els-templates-dun-directori/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualitzant el Kernel de Gentoo a un servidor de ovh</title>
		<link>http://bloc.majomo.com/actualitzant-el-kernel-de-gentoo-a-un-servidor-de-ovh/</link>
		<comments>http://bloc.majomo.com/actualitzant-el-kernel-de-gentoo-a-un-servidor-de-ovh/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 11:07:31 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[ovh]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=106</guid>
		<description><![CDATA[Aquests dies m'he llogat un servidor dedicat a ovh per veure que tal és la seva infraestructura de xarxa, que per ara es mostra deficient, doncs ni de conya s'obtenen els 100mbps que tinc contractats...
El cas és que volia actualitzar el sistema per posar-lo al dia, però al voler actualitzar el glibc aquesta sempre fallava. [...]]]></description>
			<content:encoded><![CDATA[<p>Aquests dies m'he llogat un servidor dedicat a ovh per veure que tal és la seva infraestructura de xarxa, que per ara es mostra deficient, doncs ni de conya s'obtenen els 100mbps que tinc contractats...</p>
<p>El cas és que volia actualitzar el sistema per posar-lo al dia, però al voler actualitzar el glibc aquesta sempre fallava. Al llegir per internet he vist que és culpa del kernel que té, així que vaig procedir a actualitzar-lo.<br />
<span id="more-106"></span></p>
<p>Al ser un servidor dedicat no accessible localment s'havia d'anar amb compte de no fer un kernel panic... per això millor emprar la configuració del kernel que els de ovh et faciliten. Com que el problema ve donat pels seus kernels hardened, no volia instal·lar els seus patchs de seguretat, pel que aquí hi ha el procés:</p>
<p>nsxxxxxx ~ # mkdir /root/kernel<br />
nsxxxxxx ~ # cd /root/kernel<br />
nsxxxxxx ~ # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.gz<br />
nsxxxxxx ~ # wget ftp://ftp.ovh.net/made-in-ovh/bzImage/2.6-config-xxxx-std-ipv4-64<br />
nsxxxxxx ~ # tar -zxvf linux-2.6.28.tar.gz<br />
nsxxxxxx ~ # mv 2.6-config-xxxx-std-ipv4-64 linux-2.6.28/.config<br />
nsxxxxxx ~ # cd linux-2.6.28<br />
nsxxxxxx ~ # make<br />
nsxxxxxx ~ # cp linux-2.6.28/arch/x86_64/boot/bzImage /boot/bzImage-2.6.28-xxxx-grsec-ipv4-64<br />
nsxxxxxx ~ # cp linux-2.6.28/System.map /boot/System.map-2.6.28-xxxx-grsec-ipv4-64<br />
nsxxxxxx ~ # ln -sf /boot/System.map-2.6.28-xxxx-grsec-ipv4-64 /boot/System.map</p>
<p>Llavors queda afegir el nou kernel al lilo:</p>
<p>nsxxxxxx ~ # vim /etc/lilo.conf<br />
nsxxxxxx ~ # /sbin/lilo</p>
<p>Ja només queda reinciar la màquina i a seguir amb l'actualització <img src='http://bloc.majomo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/actualitzant-el-kernel-de-gentoo-a-un-servidor-de-ovh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generar i mostrar el MD5 d&#8217;un fitxer o cadena</title>
		<link>http://bloc.majomo.com/generar-i-mostrar-el-md5-dun-fitxer-o-cadena/</link>
		<comments>http://bloc.majomo.com/generar-i-mostrar-el-md5-dun-fitxer-o-cadena/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 22:26:07 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[Programació]]></category>
		<category><![CDATA[c/c++]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[md5]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=79</guid>
		<description><![CDATA[Quan volem verificar el correcte enviament d'un fitxer solem emprar algorismes que generen unes cadenes  'úniques' per tal d'assegurar-nos de que l'arxiu s'ha rebut clavat a l'original. Per a una pràctica així ho he volgut fer, i després d'un parell de dies he entés per fi com anava tot el sistema (una mica lent, [...]]]></description>
			<content:encoded><![CDATA[<p>Quan volem verificar el correcte enviament d'un fitxer solem emprar algorismes que generen unes cadenes  'úniques' per tal d'assegurar-nos de que l'arxiu s'ha rebut clavat a l'original. Per a una pràctica així ho he volgut fer, i després d'un parell de dies he entés per fi com anava tot el sistema (una mica lent, sí).</p>
<p><span id="more-79"></span>Primerament hem de carregar les capçalera per a poder emprar les funcions md5 d'openssl:</p>
<pre class="c"><span style="color: #339933;">#include &lt;openssl/md5.h&gt;</span></pre>
<p>Amb això podem cridar a les funcions MD5_Init, MD5_Update i MD5_Final. Com indica el nom MD5_Init serveix per iniciar el procés de conversió, inicialitzant una variable del tipus MD5_CTX. Per a l'exemple l'anomenarem state:</p>
<pre class="c">MD5_CTX state;</pre>
<p>MD5_Update requereix 3 paràmetres. Primerament la nostra variable state, per a seguir i actualitzar el context de les dades de les que crear-ne el MD5. Segon li hem de passar una dada de tipus unsigned char, en el nostre cas anomenada buffer. Aquesta variable el que conté són les dades de les que volem que faci el MD5. Com que el buffer és una estructura dinàmica, el tercer paràmetre és un enter indicant el nombre de caràcters que ha de llegir.</p>
<pre class="c"><span style="color: #993333;">unsigned</span> <span style="color: #993333;">char</span> *buffer;
<span style="color: #993333;">int</span> comptador;</pre>
<p>Cal tenir en compte que MD5_Update es pot cridar tantes vegades com faci falta fins a carregar totes les dades dessitjades.</p>
<p>Per acabar emprem la funció MD5_Final, que de primer paràmetre ens demana una cadena unsigned char, de 16 bytes, que serà el que es coneix com a digest (la variable l'anomenarem així), que és el MD5 en format binari. Com a darrer paràmetre l'hi passem la variable state, que conté el context del que s'ha de generar el MD5.</p>
<pre class="c"><span style="color: #993333;">unsigned</span> <span style="color: #993333;">char</span> *digest;</pre>
<p>Tot aquest procés ens dona el digest, que és un valor binari. Però el problema és que podem voler tractar el md5 de forma visual, en format de cadena, llegible per a una persona. Per fer això ens podem fer una petita funció a mà.</p>
<pre class="c"><span style="color: #993333;">char</span> *digestAMD5<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">unsigned</span> <span style="color: #993333;">char</span> *digest<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
  <span style="color: #993333;">static</span> <span style="color: #993333;">const</span> <span style="color: #993333;">char</span> HEX_DIGITS<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #ff0000;">&quot;0123456789abcdef&quot;</span>;
  <span style="color: #993333;">char</span> *md5;
  <span style="color: #993333;">int</span> n;
&nbsp;
  md5=malloc<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">sizeof</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333;">char</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">33</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span>n = <span style="color: #cc66cc;">0</span>; n &lt; <span style="color: #cc66cc;">16</span>; n++<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#123;</span>
    md5<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span>*n<span style="color: #66cc66;">&#93;</span>   = HEX_DIGITS<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#40;</span>digest<span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span> &gt;&gt; <span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span> &amp; 0x0f<span style="color: #66cc66;">&#93;</span>;
    md5<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span>*n<span style="color: #cc66cc;">+1</span><span style="color: #66cc66;">&#93;</span> = HEX_DIGITS<span style="color: #66cc66;">&#91;</span>digest<span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span> &amp; 0xf<span style="color: #66cc66;">&#93;</span>;
  <span style="color: #66cc66;">&#125;</span>
  md5<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #cc66cc;">0</span>;
&nbsp;
  <span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span><span style="color: #993333;">char</span> *<span style="color: #66cc66;">&#41;</span> md5;
<span style="color: #66cc66;">&#125;</span></pre>
<p>Aquesta funció ens generaria un MD5 legible per a una persona. Un exemple per veure-ho funcionant tot junt:</p>
<pre class="c"><span style="color: #339933;">#include &lt;openssl/md5.h&gt;</span>
<span style="color: #993333;">int</span> main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
  <span style="color: #993333;">unsigned</span> <span style="color: #993333;">char</span> *buffer, *digest;
  <span style="color: #993333;">int</span> comptador;
  <span style="color: #993333;">char</span> *md5;
  MD5_CTX state;
&nbsp;
  <span style="color: #808080; font-style: italic;">//Demanem memòria per a les nostres cadenes</span>
  digest=malloc<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">sizeof</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333;">char</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span>;
  md5=malloc<span style="color: #66cc66;">&#40;</span><span style="color: #993333;">sizeof</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333;">char</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">33</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//El md5 és de 32 caràcters, en posem un més per poder-hi afegir el byte de fi de cadena.</span>
&nbsp;
  <span style="color: #808080; font-style: italic;">//Carreguem el buffer del lloc que necessitem</span>
  <span style="color: #808080; font-style: italic;">//Això ja depen d'on extrequi cadascú la informació de la que vol fer-ne el md5</span>
&nbsp;
  <span style="color: #808080; font-style: italic;">//Inicialitzem el entorn</span>
  MD5_Init<span style="color: #66cc66;">&#40;</span>&amp;state<span style="color: #66cc66;">&#41;</span>;
&nbsp;
  <span style="color: #808080; font-style: italic;">//Afegim les dades del buffer. Es pot anar cridant aquesta funció les vegades que faci falta</span>
  MD5_Update<span style="color: #66cc66;">&#40;</span>&amp;state, buffer, comptador<span style="color: #66cc66;">&#41;</span>;
&nbsp;
  <span style="color: #808080; font-style: italic;">//Genera el digest de les dades enviades. Recordem que no poden ser visualitzades per una persona</span>
  MD5_Final<span style="color: #66cc66;">&#40;</span>digest, &amp;state<span style="color: #66cc66;">&#41;</span>;
&nbsp;
  <span style="color: #808080; font-style: italic;">//Generem una cadena amb el MD5, ara sí, en format llegible per a una persona</span>
  md5=digestAMD5<span style="color: #66cc66;">&#40;</span>digest<span style="color: #66cc66;">&#41;</span>;
&nbsp;
  <span style="color: #808080; font-style: italic;">//Afegir caràcter de fi de cadena per a que el printf ens mostri correctament la nostra cadena</span>
  md5<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#93;</span>=<span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\0</span>'</span>;
  <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;El MD5 val: %s&quot;</span>, md5<span style="color: #66cc66;">&#41;</span>;
  <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span>;
<span style="color: #66cc66;">&#125;</span></pre>
<p>Sembla i és una tonteria, però m'hi he trencat les banyes un parell de dies per a poder-ho fer servir...</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/generar-i-mostrar-el-md5-dun-fitxer-o-cadena/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emprant VirtualBox sense GUI</title>
		<link>http://bloc.majomo.com/emprant-virtualbox-sense-gui/</link>
		<comments>http://bloc.majomo.com/emprant-virtualbox-sense-gui/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 00:35:09 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mod_proxy]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[windows 2003]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=53</guid>
		<description><![CDATA[El meu germà vol posar al servidor (ja hi és de fet) un Windows 2003 server per a emprar el software de microsoft sharepoint, com no, només funciona amb l'ISS.
El cas és que ara mateix el servidor corre amb un Gentoo i s'hi ha instal·lat el windows 2003 amb el Virtuabox, gràficament.
La cosa és senzilla, [...]]]></description>
			<content:encoded><![CDATA[<p>El meu germà vol posar al servidor (ja hi és de fet) un Windows 2003 server per a emprar el software de microsoft sharepoint, com no, només funciona amb l'ISS.</p>
<p>El cas és que ara mateix el servidor corre amb un Gentoo i s'hi ha instal·lat el windows 2003 amb el Virtuabox, gràficament.<span id="more-53"></span></p>
<p>La cosa és senzilla, bé, no tant. Les connexions entrants són tractades per l'apache, amb el mod_proxy activat, i si corresponen a les dns de l'altre servidor, les redirigeix a l'adreça ip que correpon a la màquina virutal, el windows 2003 server. Per a poder fer això s'han hagut de canviar algunes coses a la configuració tant de l'apache com del sistema (s'ha hagut de crear una nova interfície de xarxa i fer-ne un bridge), per a no haver de mapejar ports i poder disposar-ne de tots sense necessitat de enfrascar-se en configuracions NAT.</p>
<p>Aquí el codi que he emprat per a que l'apache redirigís el tràfic a la màquina virtual. Cal tenir en compte que això ho HE de fer ja que només disposo d'una ip fixe i per a ser pràctics, el port emprat ha de ser el 80:</p>
<pre class="text">Servername www.domini.com
DirectoryIndex default.aspx
ProxyRequests Off
ProxyPreserveHost On
ProxyVia full
&lt;proxy&gt;
Order deny,allow
Allow from all
&lt;/proxy&gt;
#CacheDisable *
#ProxyPass / default.aspx!
ProxyPass / http://192.168.0.3/
ProxyPassReverse / http://192.168.0.3/</pre>
<p>Amb això però no n'hi ha prou, també s'ha d'activar el l'ús del mod_proxy a la configuració d'apache. Això a gentoo es fa assegurant-se de que tinguem la opció "-D proxy"al paràmetre APACHE_OPTS, que es troba al fitxer /etc/conf.d/apache:</p>
<pre>APACHE2_OPTS=&quot;-D INFO -D LANGUAGE -D SSL_DEFAULT_VHOST -D PHP5 -D PROXY&quot;</pre>
<p>Amb això l'apache ja redirigeix el tràfic a la ip que li diguem als paràmetres ProxyPass i ProxyPassReverse.</p>
<p>Això també implica configurar un bridge (vaja, crear una interfície virtual per a la màquina virtual <img src='http://bloc.majomo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), doncs el nostre servidor només té una tarja de xarxa, pel que no es pot assignar una tarja a cada sistema. Aquest no és propòsit d'aquest artícle, així que si voleu saber com fer-ho a gentoo, res millor que seguir el <a title="Wiki de gentoo: Instal·lació de Virtualbox" href="http://gentoo-wiki.com/HOWTO:_VirtualBox" target="_blank">wiki de gentoo</a>.</p>
<p>Ara ja tenim tot instal·lat i configurat. Tot això és molt bonic, però per mirar de maximitzar el rendiment del servidor, voldria que el Windows 2003 no requerís fer us del servidor X, reduïnt el nombre de programes sempre actius a la màquina, doncs no es necessita per res més a part de per aquest programa.</p>
<p>Per fer això emprem la comanda VboxHeadless:</p>
<pre class="text">VBoxHeadless -s Win2003</pre>
<p>Podem fer que s'iniciï amb el boot de la màquina, per a que estigui sempre disponible, per exemple.</p>
<p>Cal dir que al Windows 2003 s'hi ha muntat un sharepoint i s'ha observat que emprant el mod_proxy de l'apache no es pot emprar les sessions NTLM i s'ha d'emprar una sessió bàsica (per qui s'hi trobi, que no es trenqui el cap com nosaltres &gt;&lt; ).</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/emprant-virtualbox-sense-gui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copiant els continguts d&#8217;un ftp mitjançant wget</title>
		<link>http://bloc.majomo.com/copiant-els-continguts-dun-ftp-mitjancant-wget/</link>
		<comments>http://bloc.majomo.com/copiant-els-continguts-dun-ftp-mitjancant-wget/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 21:32:39 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[FTP]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[remot]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=67</guid>
		<description><![CDATA[Havia de fer una copia per ftp dels continguts d'un servidor a un altre. El problema és que el servidor de destí no tenia possibilitat d'emprar ncftp o lftp (no estaven disponibles aquests clients), amb el que no podia emprar cap client ftp amb funcions de recursivitat.
La primera solució va ser pensar en copiar-ho al [...]]]></description>
			<content:encoded><![CDATA[<p>Havia de fer una copia per ftp dels continguts d'un servidor a un altre. El problema és que el servidor de destí no tenia possibilitat d'emprar ncftp o lftp (no estaven disponibles aquests clients), amb el que no podia emprar cap client ftp amb funcions de recursivitat.<span id="more-67"></span></p>
<p>La primera solució va ser pensar en copiar-ho al meu pc i llavors enviar-ho al nou destí. El problema d'això és que s'havien de copiar 100 MB i vora 4000 arxius, cosa que a part de tenir molts números de petar amb la meva línia, també seria molt lent (del servidor d'on vull extreure les dades no hi tinc accés per shell, pel que no puc comprimir les dades abans).</p>
<p>Al final he trobat la solució, que estava davant dels nassos tota l'estona. Ha estat emprar wget, que suporta recursivitat, i descarregar des d'ftp. La comanda emprada ha estat concretament:</p>
<p>wget --mirror --user blablabla --password unacosa ftp://servidor.com/carpeta_que_vull</p>
<p>I a deixar-lo fer. Tenint en compte que ambdós servidors estan sota una línia de 100 mbps, el procés ha estat ràpid i senzill.</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/copiant-els-continguts-dun-ftp-mitjancant-wget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autocompletació a Kdevelop per  a QT</title>
		<link>http://bloc.majomo.com/autocompletacio-a-kdevelop-per-a-qt/</link>
		<comments>http://bloc.majomo.com/autocompletacio-a-kdevelop-per-a-qt/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 13:02:52 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[Programació]]></category>
		<category><![CDATA[c/c++]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[KDeveloper]]></category>
		<category><![CDATA[Qt4]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=65</guid>
		<description><![CDATA[Aquests dies he estat remenant el Visual Studio, que es pot dir el que es vulgui, però el seu editor és molt bo. Ara que ja sé una mica com va el C# i com fer-ho rutllar tot, volia fer el mateix però amb les QT. El entorn que he triat per a desenvolupar és [...]]]></description>
			<content:encoded><![CDATA[<p>Aquests dies he estat remenant el Visual Studio, que es pot dir el que es vulgui, però el seu editor és molt bo. Ara que ja sé una mica com va el C# i com fer-ho rutllar tot, volia fer el mateix però amb les QT. El entorn que he triat per a desenvolupar és kdevelop, però hi trobava a faltar una funcionalitat molt important, l'autocompletació de codi.</p>
<p><span id="more-65"></span></p>
<p>Així que m'he posat a remenar per a trobar com dir-li que em completés el codi automàticament. Per fer-ho he anat al menú Projecte-&gt;Opcions de Projecte. Allí he anat al Suport de C++ i he marcat la casella Automatic code completion a la pestanya Code completion. Això activa la autocompletació de codi, però encara no en té idea de les llibreries de qt. Per a afegir el suport per a les QT a la mateixa pestanya busquem el quadre Base de dades per al completat de codi i premem el botó afegeix.</p>
<p>En el meu cas he triat Importador de PCS de Qt4 per a KDevelop i llavors he especificat la ruta a les meves llibreries de qt4 ( /usr/include/qt4 , en el meu cas). Ha estat una estona fent la base de dades i ja he tingut la autocompletació de codi activada!!</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/autocompletacio-a-kdevelop-per-a-qt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Capturar TDT sota linux i convertir-ho correctament al que vulguem</title>
		<link>http://bloc.majomo.com/capturar-tdt-sota-linux-i-convertir-ho-correctament-al-que-vulguem/</link>
		<comments>http://bloc.majomo.com/capturar-tdt-sota-linux-i-convertir-ho-correctament-al-que-vulguem/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 00:41:18 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[avidemux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[vídeo]]></category>
		<category><![CDATA[editar]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[projectX]]></category>
		<category><![CDATA[reescalar]]></category>
		<category><![CDATA[tdt]]></category>
		<category><![CDATA[xvid]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=63</guid>
		<description><![CDATA[Aquest és un tema molt documentat, però com que sempre l'oblido ho escric a mode recordatori ja que és realment fàcil i ràpid una vegada saps les passes a seguir.

Primerament capturem la cadena que vulguem, jo ho faig amb el kaffeine, que té molt bon suport per a TDT i per a programació de gravacions.
Un [...]]]></description>
			<content:encoded><![CDATA[<p>Aquest és un tema molt documentat, però com que sempre l'oblido ho escric a mode recordatori ja que és realment fàcil i ràpid una vegada saps les passes a seguir.</p>
<p><span id="more-63"></span></p>
<p>Primerament capturem la cadena que vulguem, jo ho faig amb el kaffeine, que té molt bon suport per a TDT i per a programació de gravacions.</p>
<p>Un cop tenim la captura, obrim el projectX (un programa en java), menú File -&gt; Add i triem l'arxiu que volem i li donem al botó QuickStart. Això farà que si s'ha perdut un paquet, GOP, no es desincronitzin audio i vídeo. Hem de fer aquest pas, doncs una pèrdua de GOPs podrien desfassar l'audio-vídeo, i un cop comprimit seria molt laboriós d'arreglar, així que no costa res fer aquest pas.</p>
<p>Ara ja tenim un m2v per al vídeo i un mp2 per a l'audio. És el torn del avidemux, l'obrim.</p>
<p>Carreguem el mp2 i li donem a indexar-lo. Ara triem el menú audio -&gt; Main Track i triem com a External File el nostre fitxer mp2.</p>
<p>Ara tocaria triar els filtres a aplicar (hem de dir-li que ho volem comprimir en algun còdec per a que ens deixi triar-los). Aquí ho faré amb x264, però es pot aplicar el que es vulgui, com ara Xvid. Anem al desplegable de l'esquerra, sota de Video i triem MPEG-4 AVC (x264). Ara cap a filters.</p>
<p>Primer hem de tenir en compte que el progressiu encara està lluny, i més que ara TVC ha aturat les emissions en HD... Així doncs triem yadif, per a arreglar el entrellaçat. També hem de fer un Crop, que vol dir retallar la part esquerra i dreta negre que sobra, 10 píxels de l'esquerra i 8 píxels de la dreta. Finalment ho posem a una resolució "estàndar" com ara 640x480.</p>
<p>Amb x264 li poso dues passades i la mida final que vull. Com que en aquest cas guardo un videoclip li poso 50 megues, amb el que quedarà amb molt bona qualitat.</p>
<p>Amb l'audio, el poso a AAC a 192 kbps, que anirà sobrat de qualitat (segons qui diria que sobre l'audio, però com que la font és 192 mp2, em curo en salut i ho poso a aquesta qualitat).</p>
<p>Triem el inici i el final del que volem comprimir amb els botons marcats amb una A i una B i ja ho tenim.</p>
<p>Cal dir que quan ho he provat de fer, amb el avidemux, la interfície gtk anava molt millor que la qt (i no sóc cap fanàtic de gnome, de fet gasto kde XD).</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/capturar-tdt-sota-linux-i-convertir-ho-correctament-al-que-vulguem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pràctica d&#8217;ASO</title>
		<link>http://bloc.majomo.com/practica-daso/</link>
		<comments>http://bloc.majomo.com/practica-daso/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 20:33:45 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Salle]]></category>
		<category><![CDATA[Universitats]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ASO]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[informàtica]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=56</guid>
		<description><![CDATA[Aquest any m'he passat a informàtica, ja que telecos no em portava enlloc...
Així que m'he posat a fer pràctiques de codi a sac. Entre elles es troba la d'ASO (Administració de Sistemes Operatius), que té com a pràctica muntar un linux (kernel inclòs) amb gestió d'usuaris mitjançant ldap, servidor apache, repositòri subversion i que sigui [...]]]></description>
			<content:encoded><![CDATA[<p>Aquest any m'he passat a informàtica, ja que telecos no em portava enlloc...</p>
<p>Així que m'he posat a fer pràctiques de codi a sac. Entre elles es troba la d'ASO (Administració de Sistemes Operatius), que té com a pràctica muntar un linux (kernel inclòs) amb gestió d'usuaris mitjançant ldap, servidor apache, repositòri subversion i que sigui capaç d'administrar tots els processos i l'ordinador mitjançant comandes de bash que són cridades via una plana web.</p>
<p>Com que consta d'uns quants passos i s'ha de documentar per a fer la memòria he pensat fer-ho aquí i així ja tenir-ho pas per pas i només haver de fer un copy&amp;paste a la memòria <img src='http://bloc.majomo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ja que s'ha de compilar el kernel i així, he tirat pel recte i he agafat gentoo (on la seva guia per aquests temes és molt detallada, i fàcil de seguir).</p>
<p>En breu la configuració del kernel per a la meva màquina, que ja quasibé està acabat (falta pulir el wifi), així com els passos a seguir per fer-ne la instal·lació mínima.</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/practica-daso/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
