<?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</title>
	<atom:link href="http://bloc.majomo.com/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>Muntar un repositori svn amb Plesk</title>
		<link>http://bloc.majomo.com/muntar-un-repositori-svn-amb-plesk/</link>
		<comments>http://bloc.majomo.com/muntar-un-repositori-svn-amb-plesk/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 20:55:31 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[majomo.com]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[plesk]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=115</guid>
		<description><![CDATA[Quan treballem volem muntar un servidor de subversion a un servidor administrat amb Plesk, ens trobem l'inconvenient de que les configuracions són autogerades i quan fem un canvi, els nostres canvis manuals es perden.

Per a poder habilitar que un subdomini nostre faci de servidor subversion hem d'afegir a dintre la carpeta conf del subdomini un [...]]]></description>
			<content:encoded><![CDATA[<p>Quan treballem volem muntar un servidor de subversion a un servidor administrat amb Plesk, ens trobem l'inconvenient de que les configuracions són autogerades i quan fem un canvi, els nostres canvis manuals es perden.<br />
<span id="more-115"></span><br />
Per a poder habilitar que un subdomini nostre faci de servidor subversion hem d'afegir a dintre la carpeta conf del subdomini un arxiu vhost.conf amb el següent contingut:</p>
<pre>&lt;Location /&gt;
   DAV svn
   SVNParentPath /var/www/vhosts/servidor.com/svn/
   AuthzSVNAccessFile /var/www/vhosts/servidor.com/svn/politica

      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /var/www/vhosts/servidor.com/svn/claus
      Require valid-user
&lt;/Location&gt;</pre>
<p>Després, per a aplicar aquest arxiu de configuració, escrivim:</p>
<pre>./websrvmng --reconfigure-vhost --vhost-name=animelliure.net</pre>
<p>I al reiniciar el nostre servidor http ja tindrem accés al nostre repositori de subversion a través de l'apache <img src='http://bloc.majomo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Recordeu que el nostre usuari web ha de ternir permissos d'escriptura al repositori de subversion.</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/muntar-un-repositori-svn-amb-plesk/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>Instal·lant Windows 2000 server a Virtualbox</title>
		<link>http://bloc.majomo.com/instal%c2%b7lant-windows-2000-server-a-virtualbox/</link>
		<comments>http://bloc.majomo.com/instal%c2%b7lant-windows-2000-server-a-virtualbox/#comments</comments>
		<pubDate>Mon, 18 May 2009 17:04:11 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[2000 Server]]></category>
		<category><![CDATA[Instal·lació]]></category>
		<category><![CDATA[Virtualbox]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows 2000 Server]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=102</guid>
		<description><![CDATA[Aquest dies per coses de la feina he instal·lat un Windows 2000 Server a una màquina virtual, Virtualbox. El problema estava en que la instal·lació no acabava mai, sempre tornava a començar.

Això passa perquè Windows 2000 té un bug en que si el disc va massa ràpid no pot completar la instal·lació. Per a solucionar-ho [...]]]></description>
			<content:encoded><![CDATA[<p>Aquest dies per coses de la feina he instal·lat un Windows 2000 Server a una màquina virtual, Virtualbox. El problema estava en que la instal·lació no acabava mai, sempre tornava a començar.<br />
<span id="more-102"></span><br />
Això passa perquè Windows 2000 té un bug en que si el disc va massa ràpid no pot completar la instal·lació. Per a solucionar-ho és senzill:</p>
<p><code>VBoxManage setextradata &lt;Maquina_Virtual&gt; "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1</code></p>
<p>Aquest valor va entre 1 i 5 milisegons. Això fa que el rendiment del disc dur sigui més pobre, així que una vegada conclosa la instal·lació haurem de posar-ho a 0.</p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/instal%c2%b7lant-windows-2000-server-a-virtualbox/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>Picant a les portes del Cel</title>
		<link>http://bloc.majomo.com/picant-a-les-portes-del-cel/</link>
		<comments>http://bloc.majomo.com/picant-a-les-portes-del-cel/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 14:57:04 +0000</pubDate>
		<dc:creator>mad93</dc:creator>
				<category><![CDATA[majomo.com]]></category>
		<category><![CDATA[bob dylan]]></category>
		<category><![CDATA[Knocking on Heaven's Door]]></category>
		<category><![CDATA[música]]></category>

		<guid isPermaLink="false">http://bloc.majomo.com/?p=74</guid>
		<description><![CDATA[Adaptació moooolt lliure  
Mama agafa aquesta insignia per mi
No la puc fer servir ja més
S'està fent fosc massa fosc per veure-hi
Em sento com si piqués a les portes del cel
Pica-pica-pican't a les portes del cel
Pica-pica-pican't a les portes del cel
Pica-pica-pican't a les portes del cel
Pica-pica-pican't a les portes del cel
Mama posa les meves armes [...]]]></description>
			<content:encoded><![CDATA[<p>Adaptació moooolt lliure <img src='http://bloc.majomo.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Mama agafa aquesta insignia per mi<br />
No la puc fer servir ja més<br />
S'està fent fosc massa fosc per veure-hi<br />
Em sento com si piqués a les portes del cel</p>
<p>Pica-pica-pican't a les portes del cel<br />
Pica-pica-pican't a les portes del cel<br />
Pica-pica-pican't a les portes del cel<br />
Pica-pica-pican't a les portes del cel</p>
<p>Mama posa les meves armes al terra<br />
No les puc disparar ja més<br />
Aquell fred núvol fosc està baixant<br />
Em sento com si piqués a les portes del cel</p>
<p>Pica-pica-pican't a les portes del cel<br />
Pica-pica-pican't a les portes del cel<br />
Pica-pica-pican't a les portes del cel<br />
Pica-pica-pican't a les portes del cel<span id="more-74"></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/d-5JvACzGp8&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/d-5JvACzGp8&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bloc.majomo.com/picant-a-les-portes-del-cel/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>
	</channel>
</rss>
