<?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>open-pitu, el blog lliure en català &#187; Programació</title>
	<atom:link href="http://openpitu.com/tag/programacio/feed/" rel="self" type="application/rss+xml" />
	<link>http://openpitu.com</link>
	<description>Blog dedicat al software lliure i la programació.</description>
	<lastBuildDate>Mon, 03 Sep 2012 15:37:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>OOCSS (2a part), profunditzant en els widgets</title>
		<link>http://openpitu.com/2011/08/10/oocss-2a-part-profunditzant-en-els-widgets/</link>
		<comments>http://openpitu.com/2011/08/10/oocss-2a-part-profunditzant-en-els-widgets/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 22:12:01 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[AppWeb]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=895</guid>
		<description><![CDATA[Avui mirarem les recomanacions a seguir alhora d'implementar els widgets, en el nostre sistema de CSS. Primer de tot, recordar que els widgets estan formats per dues parts, per una banda la pròpia del framework, i per l'altra la pròpia de cada un dels projectes. D'aquesta manera podem especialitzar tots els nostres projectes amb el seu tema personalitzat. Primer de tot cal fer una feina de detecció dels widgets, on cada un respón a una funcionalitat, creant així la nostra llibreria de widgets.
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2011/08/oocss_nou1.png"><img class="size-full wp-image-898  aligncenter" title="oocss_nou1" src="http://openpitu.com/wp-content/uploads/2011/08/oocss_nou1.png" alt="" width="560" height="234" /></a></p>
Abans de començar us deixo els enllaços que s'han usat de font:
<a title="Presentació OOCSS" href="http://www.scribd.com/fullscreen/60739176" target="_blank">Enllaç a la presentació</a>.
<a title="Pàgina oficial i exemples." href="http://oocss.org/" target="_blank">Enllaç a la pàgina oficial</a>.
<h2>Crear objectes reusables</h2>
Cal crear una llibreria de components reusables independent del projecte. Per altra banda, també cal crear-ne una per al nostre projecte. La idea principal recau en identificar els objectes per tal de saber-ne fer l'extensió i que sigui reusable, de manera que han de ser extensibles, reusables i aniuables.
Si per exemple pensem en un widget butó, a la part comú de tots els projectes podem definir les propietats que sabem que seran comunes, o definir-ne unes per defecte. A partir d'aquí aquesta classe cal anar-la extenent per tal de que tingui l'aspecte desitjat a cada projecte i alhora tinguem els diferents butons que es necessiten.
<h2>Simplificar la cascada</h2>
No usar #id en els estils. Si usem aquests identificadors, trencarem la reusabilitat d'aquest codi, ja que no hi poden haver diverses intàncies en una mateixa pàgina amb un mateix identificador. Així doncs, #id queda reservat per al seu ús des de JavaScript i en formularis. Així mateix queda prohibit en els estils.
També queden prohibits els estils ens línia. Tots sabem que els estils intrusius porten problemes, però a vegades els usem en moments determinats per què ens poden ser còmodes. Ja que estem reformulant el sistema d'estils, també queden prohibits, ja que a part de no ser reusables, ens poden portar a comportaments estranys, cosa a evitar totalment.
<h2>Usar  classes i no elements</h2>
No hem de ment definir els propietats a div.la-meva-classe, sinó directament .la-meva-classe. Amb la primera opció fem que la propietat només sigui vàlida per a elements div, mentre que amb la segona la classe no depèn del seu element HTML. D'aquesta manera obtenim un codi més reusable i a més no ens incorporarà comportaments estranys.
<h2>Minimitza els selectors</h2>
A partir d'una classe podem definir elements HTMLS aniuats. Tot i això cal tenir en compte que a vegades ens podem estalviar selectors per a acabar tenint un mateix comportament. D'aquesta manera permetem una millor llegibilitat al codi. Amb aquest fet a més, millorem el rendiment dels nostres CSS.
<h2>Sense dependències del context</h2>
Els estils d'un objecte són independents del lloc que ocupin de la pàgina. D'aquesta manera no hem de  definir .la-mevaclasse-1 .la-meva-classe-2 {...}, ja que si ho fem així estem supeditant el comportament de la 2 a que estigui dins d'un contenidor 1. D'aquesta manera a més, sabem que podem usar un widget a qualsevol part de la pàgina i que sempre tindrà el mateix comportament.
<h2>Evitar dependències innecessàries entre objectes</h2>
En aquest sentit, no hem d'agrupar diferents widgets mitjançant comes. Ja que estem lligant aquests objectes, on un canvi a un widget provocarà canvis als altres, cosa que tard o d'hora en sortirem perjudicats. Si ens trobem que constantment necessitem agrupar-los és que alguna cosa estem fent malament, particularment en el procés d'identificació.
<h2>Extenent els objectes</h2>
S'usa el concepte d'orientació a objectes típic en els CSS. D'aquesta manera l'objecte fill hereda les propietats del pare. Comentarem, amb exemples com es fa aquesta extensió més en detall en un tercer post, com ja vam prometre.
<h2>Objectes compostos</h2>
Algunes components de la pàgina estaran formades per diversos objectes. En aquest cas no usem extensió, sinó composició. En aquest moment ens trobem en un dels majors problemes dels CSS: manca de control en l'herència i la cascada. Les regles han de ser específiques, de manera que no impliqui res l'ordre en el qual s'apliquen. Sinó és així augmentem la composició. Cal ser conscient en que tots els noms de les classes formen part del namespace global de CSS, de manera que cal ser coherent en la definició de noms.]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-1" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2011/08/10/oocss-2a-part-profunditzant-en-els-widgets/&amp;title=OOCSS%20%282a%20part%29%2C%20profunditzant%20en%20els%20widgets" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-1" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2011/08/10/oocss-2a-part-profunditzant-en-els-widgets/&amp;title=OOCSS%20%282a%20part%29%2C%20profunditzant%20en%20els%20widgets" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-1" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2011/08/10/oocss-2a-part-profunditzant-en-els-widgets/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-1" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2011/08/10/oocss-2a-part-profunditzant-en-els-widgets/&amp;title=OOCSS%20%282a%20part%29%2C%20profunditzant%20en%20els%20widgets" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-1" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2011%2F08%2F10%2Foocss-2a-part-profunditzant-en-els-widgets%2F&amp;t=OOCSS%20%282a%20part%29%2C%20profunditzant%20en%20els%20widgets&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-1" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2011%2F08%2F10%2Foocss-2a-part-profunditzant-en-els-widgets%2F&amp;text=OOCSS%20%282a%20part%29%2C%20profunditzant%20en%20els%20widgets&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>Avui mirarem les recomanacions a seguir alhora d&#8217;implementar els widgets, en el nostre sistema de CSS. Primer de tot, recordar que els widgets estan formats per dues parts, per una banda la pròpia del framework, i per l&#8217;altra la pròpia de cada un dels projectes. D&#8217;aquesta manera podem especialitzar tots els nostres projectes amb el seu tema personalitzat. Primer de tot cal fer una feina de detecció dels widgets, on cada un respón a una funcionalitat, creant així la nostra llibreria de widgets.</p>
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2011/08/oocss_nou1.png"><img class="size-full wp-image-898  aligncenter" title="oocss_nou1" src="http://openpitu.com/wp-content/uploads/2011/08/oocss_nou1.png" alt="" width="560" height="234" /></a></p>
<p>Abans de començar us deixo els enllaços que s&#8217;han usat de font:</p>
<p><a title="Presentació OOCSS" href="http://www.scribd.com/fullscreen/60739176" target="_blank">Enllaç a la presentació</a>.</p>
<p><a title="Pàgina oficial i exemples." href="http://oocss.org/" target="_blank">Enllaç a la pàgina oficial</a>.</p>
<h2>Crear objectes reusables</h2>
<p>Cal crear una llibreria de components reusables independent del projecte. Per altra banda, també cal crear-ne una per al nostre projecte. La idea principal recau en identificar els objectes per tal de saber-ne fer l&#8217;extensió i que sigui reusable, de manera que han de ser extensibles, reusables i aniuables.</p>
<p>Si per exemple pensem en un widget butó, a la part comú de tots els projectes podem definir les propietats que sabem que seran comunes, o definir-ne unes per defecte. A partir d&#8217;aquí aquesta classe cal anar-la extenent per tal de que tingui l&#8217;aspecte desitjat a cada projecte i alhora tinguem els diferents butons que es necessiten.</p>
<h2>Simplificar la cascada</h2>
<p>No usar #id en els estils. Si usem aquests identificadors, trencarem la reusabilitat d&#8217;aquest codi, ja que no hi poden haver diverses intàncies en una mateixa pàgina amb un mateix identificador. Així doncs, #id queda reservat per al seu ús des de JavaScript i en formularis. Així mateix queda prohibit en els estils.</p>
<p>També queden prohibits els estils ens línia. Tots sabem que els estils intrusius porten problemes, però a vegades els usem en moments determinats per què ens poden ser còmodes. Ja que estem reformulant el sistema d&#8217;estils, també queden prohibits, ja que a part de no ser reusables, ens poden portar a comportaments estranys, cosa a evitar totalment.</p>
<h2>Usar  classes i no elements</h2>
<p>No hem de ment definir els propietats a div.la-meva-classe, sinó directament .la-meva-classe. Amb la primera opció fem que la propietat només sigui vàlida per a elements div, mentre que amb la segona la classe no depèn del seu element HTML. D&#8217;aquesta manera obtenim un codi més reusable i a més no ens incorporarà comportaments estranys.</p>
<h2>Minimitza els selectors</h2>
<p>A partir d&#8217;una classe podem definir elements HTMLS aniuats. Tot i això cal tenir en compte que a vegades ens podem estalviar selectors per a acabar tenint un mateix comportament. D&#8217;aquesta manera permetem una millor llegibilitat al codi. Amb aquest fet a més, millorem el rendiment dels nostres CSS.</p>
<h2>Sense dependències del context</h2>
<p>Els estils d&#8217;un objecte són independents del lloc que ocupin de la pàgina. D&#8217;aquesta manera no hem de  definir .la-mevaclasse-1 .la-meva-classe-2 {&#8230;}, ja que si ho fem així estem supeditant el comportament de la 2 a que estigui dins d&#8217;un contenidor 1. D&#8217;aquesta manera a més, sabem que podem usar un widget a qualsevol part de la pàgina i que sempre tindrà el mateix comportament.</p>
<h2>Evitar dependències innecessàries entre objectes</h2>
<p>En aquest sentit, no hem d&#8217;agrupar diferents widgets mitjançant comes. Ja que estem lligant aquests objectes, on un canvi a un widget provocarà canvis als altres, cosa que tard o d&#8217;hora en sortirem perjudicats. Si ens trobem que constantment necessitem agrupar-los és que alguna cosa estem fent malament, particularment en el procés d&#8217;identificació.</p>
<h2>Extenent els objectes</h2>
<p>S&#8217;usa el concepte d&#8217;orientació a objectes típic en els CSS. D&#8217;aquesta manera l&#8217;objecte fill hereda les propietats del pare. Comentarem, amb exemples com es fa aquesta extensió més en detall en un tercer post, com ja vam prometre.</p>
<h2>Objectes compostos</h2>
<p>Algunes components de la pàgina estaran formades per diversos objectes. En aquest cas no usem extensió, sinó composició. En aquest moment ens trobem en un dels majors problemes dels CSS: manca de control en l&#8217;herència i la cascada. Les regles han de ser específiques, de manera que no impliqui res l&#8217;ordre en el qual s&#8217;apliquen. Sinó és així augmentem la composició. Cal ser conscient en que tots els noms de les classes formen part del namespace global de CSS, de manera que cal ser coherent en la definició de noms.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2011/08/10/oocss-2a-part-profunditzant-en-els-widgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OOCSS, Object-Oriented CSS</title>
		<link>http://openpitu.com/2011/08/04/oocss-object-oriented-css/</link>
		<comments>http://openpitu.com/2011/08/04/oocss-object-oriented-css/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 21:34:07 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[AppWeb]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=864</guid>
		<description><![CDATA[Fa uns dies vaig veure una presentació Power Point que tractava dels OOCSS. No havia tingut temps a mirar-la en detall fins avui, on realment l'he llegida atentament, i m'he mirat els exemple de la pàgina web oficial. Mitjançant aquesta tècnica, podem tenir ordenat el nostre codi CSS, i que aquest sigui plenament reusable. Tan és així, que està estructurat de tal manera que diferents projectes comparteixen un conjunt de normes CSS, és el què anomanem Framework, i una part concreta per a cada projecte, anomenat tema.
<h2>Reusables</h2>
<h2>Extensibles</h2>
<h2>Anidats</h2>
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2011/08/oocss1.gif"><img class="size-full wp-image-868  aligncenter" title="oocss1" src="http://openpitu.com/wp-content/uploads/2011/08/oocss1.gif" alt="" width="460" height="268" /></a></p>
<h2 style="text-align: center;"><span style="font-size: x-small;"><span style="font-weight: normal;">
</span></span></h2>
Un cop ja sabem que hi ha una part anomenada Framework i una com a tema, comentarem quina és l'estructura de cada un. El framework està format per 5 components: Reset, Base, Grid, Widgets, Helpers. El tema està format per Widgets i opcionalment per Pages. Així doncs ja podem intuir que en el Framework hi tindrem definides les propietats generals, comuns a tots els projectes, mentre que els aspectes concrets, els widgets, els podrem redefinir a cada tema.
Abans d'entrar en tema, us faig saber que queden pendents dos posts al respecte. Un explicant les bones praxis per a l'ús de OOCSS, i un altre amb alguns exemples per a fer-ho més clar, ja que un tros de codi, val més que mil paraules.
<h2>Reset + Base</h2>
Podem usar-ne d'existents. Aquestes components ens ajuden a eliminar inconsistències entre navegadors i crear una base comuna. Tot i que ens podríem fer el nostre es recomana usar-ne de ja fets i provats com: 960.gs, formalize.me, normalize.css, html5boilerplate, YUI...
<h2>Grid</h2>
Aquest és un dels aspectes més interessants del sistema. Es tracta de la definició dels layouts. En aquest sentit, es defineixen amb % la relació. De l'estil si és un 100% si són 2 50%, etc. D'aquesta manera podrem generar fàcilment els layouts. Seran reusables i cada un el podrem customitzar com volguem. Es recomana usar-ne de ja existents, tot i que ens podem crear el nostre, com per exemple: 960.gs, 978.gs, blueprint, YUI...
<h2>Widgets, objectes reusables</h2>
Els widgets poden ser independents del projecte o no. Es tracta de definir un conjunt de classes CSS relacionades, que responen a una funcionalitat determinada. En aquest sentit, està bé saber quina part és comuna i quina part forma part del tema, de manera que podrem tenir cada objecte personalitzat per projecte.
<h2>Pages, opcional per al tema</h2>
Les pages són interessants per a projectes molt concrets, en els qual es vol que cada pàgina o secció de l'aplicació o web, es vulgui mostrar amb estils totalment diferents. D'aquesta manera podríem diferenciar cada una de les pàgines usant la composició. De fet, es podrien fer amb widgets, però en els casos que sigui útil és millor fer-ho per tal de tenir
<h2>Helpers</h2>
Es tracta de classes petites, que es poden usar per tots els objectes. Els usos típics poden ser per fer elements hiddens, cantons rodos, ombres...
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2011/08/oocss2.jpg"><img class="size-full wp-image-869  aligncenter" title="oocss2" src="http://openpitu.com/wp-content/uploads/2011/08/oocss2.jpg" alt="" width="222" height="517" /></a></p>
Enllaços a les fonts de l'article.
<a title="Presentació OOCSS" href="http://www.scribd.com/fullscreen/60739176" target="_blank">Enllaç a la presentació</a>.
<a title="Pàgina oficial i exemples." href="http://oocss.org/" target="_blank">Enllaç a la pàgina oficial</a>.]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-2" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2011/08/04/oocss-object-oriented-css/&amp;title=OOCSS%2C%20Object-Oriented%20CSS" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-2" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2011/08/04/oocss-object-oriented-css/&amp;title=OOCSS%2C%20Object-Oriented%20CSS" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-2" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2011/08/04/oocss-object-oriented-css/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-2" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2011/08/04/oocss-object-oriented-css/&amp;title=OOCSS%2C%20Object-Oriented%20CSS" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-2" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2011%2F08%2F04%2Foocss-object-oriented-css%2F&amp;t=OOCSS%2C%20Object-Oriented%20CSS&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-2" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2011%2F08%2F04%2Foocss-object-oriented-css%2F&amp;text=OOCSS%2C%20Object-Oriented%20CSS&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>Fa uns dies vaig veure una presentació Power Point que tractava dels OOCSS. No havia tingut temps a mirar-la en detall fins avui, on realment l&#8217;he llegida atentament, i m&#8217;he mirat els exemple de la pàgina web oficial. Mitjançant aquesta tècnica, podem tenir ordenat el nostre codi CSS, i que aquest sigui plenament reusable. Tan és així, que està estructurat de tal manera que diferents projectes comparteixen un conjunt de normes CSS, és el què anomanem Framework, i una part concreta per a cada projecte, anomenat tema.</p>
<h2>Reusables</h2>
<h2>Extensibles</h2>
<h2>Anidats</h2>
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2011/08/oocss1.gif"><img class="size-full wp-image-868  aligncenter" title="oocss1" src="http://openpitu.com/wp-content/uploads/2011/08/oocss1.gif" alt="" width="460" height="268" /></a></p>
<h2 style="text-align: center;"><span style="font-size: x-small;"><span style="font-weight: normal;"><br />
</span></span></h2>
<p>Un cop ja sabem que hi ha una part anomenada Framework i una com a tema, comentarem quina és l&#8217;estructura de cada un. El framework està format per 5 components: Reset, Base, Grid, Widgets, Helpers. El tema està format per Widgets i opcionalment per Pages. Així doncs ja podem intuir que en el Framework hi tindrem definides les propietats generals, comuns a tots els projectes, mentre que els aspectes concrets, els widgets, els podrem redefinir a cada tema.</p>
<p>Abans d&#8217;entrar en tema, us faig saber que queden pendents dos posts al respecte. Un explicant les bones praxis per a l&#8217;ús de OOCSS, i un altre amb alguns exemples per a fer-ho més clar, ja que un tros de codi, val més que mil paraules.</p>
<h2>Reset + Base</h2>
<p>Podem usar-ne d&#8217;existents. Aquestes components ens ajuden a eliminar inconsistències entre navegadors i crear una base comuna. Tot i que ens podríem fer el nostre es recomana usar-ne de ja fets i provats com: 960.gs, formalize.me, normalize.css, html5boilerplate, YUI&#8230;</p>
<h2>Grid</h2>
<p>Aquest és un dels aspectes més interessants del sistema. Es tracta de la definició dels layouts. En aquest sentit, es defineixen amb % la relació. De l&#8217;estil si és un 100% si són 2 50%, etc. D&#8217;aquesta manera podrem generar fàcilment els layouts. Seran reusables i cada un el podrem customitzar com volguem. Es recomana usar-ne de ja existents, tot i que ens podem crear el nostre, com per exemple: 960.gs, 978.gs, blueprint, YUI&#8230;</p>
<h2>Widgets, objectes reusables</h2>
<p>Els widgets poden ser independents del projecte o no. Es tracta de definir un conjunt de classes CSS relacionades, que responen a una funcionalitat determinada. En aquest sentit, està bé saber quina part és comuna i quina part forma part del tema, de manera que podrem tenir cada objecte personalitzat per projecte.</p>
<h2>Pages, opcional per al tema</h2>
<p>Les pages són interessants per a projectes molt concrets, en els qual es vol que cada pàgina o secció de l&#8217;aplicació o web, es vulgui mostrar amb estils totalment diferents. D&#8217;aquesta manera podríem diferenciar cada una de les pàgines usant la composició. De fet, es podrien fer amb widgets, però en els casos que sigui útil és millor fer-ho per tal de tenir</p>
<h2>Helpers</h2>
<p>Es tracta de classes petites, que es poden usar per tots els objectes. Els usos típics poden ser per fer elements hiddens, cantons rodos, ombres&#8230;</p>
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2011/08/oocss2.jpg"><img class="size-full wp-image-869  aligncenter" title="oocss2" src="http://openpitu.com/wp-content/uploads/2011/08/oocss2.jpg" alt="" width="222" height="517" /></a></p>
<p>Enllaços a les fonts de l&#8217;article.</p>
<p><a title="Presentació OOCSS" href="http://www.scribd.com/fullscreen/60739176" target="_blank">Enllaç a la presentació</a>.</p>
<p><a title="Pàgina oficial i exemples." href="http://oocss.org/" target="_blank">Enllaç a la pàgina oficial</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2011/08/04/oocss-object-oriented-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web service amb PHP i NuSOAP</title>
		<link>http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/</link>
		<comments>http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 17:13:03 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[WebService]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=661</guid>
		<description><![CDATA[Un Web service és un conjunt de protocols i estàndards que serveixen per intercanviar dades entre aplicacion. Diferents aplicacions desenvolupades amb llenguatges de programació diferents i executades des de qualsevol plataforma, poden intercanviar dades per Internet.
La majoria de nosaltres quan pensem amb Web service des seguida ens ve al cap Java i Tomcat. És una de les maneres més senzilles de fer-ho, però a vegades, en funció del què hi ha fet en un projecte, ens pot ser molt més senzill fer-ho amb PHP.
Per tal de poder usar els codis que es mostren a continuació, cal que ens descarreguem la llibreria <a title="Descarregar llibreria." href="http://sourceforge.net/projects/nusoap/" target="_blank">NuSOAP</a> de PHP,
A continuació veurem un exemple de Servidor, que el crida un client.
<h2><strong>Server.php</strong></h2>
<ol>
	<li>require_once('NUSOAP/nusoap.php');</li>
	<li>$soap = new soap_server;</li>
	<li>$soap-&#62;configureWSDL('open-pitu Service', 'http://latevaurl.cat/elteupath/');</li>
	<li>$soap-&#62;register(</li>
	<li style="padding-left: 15px;">'hola',// nom del mètode</li>
	<li style="padding-left: 15px;">array('nom' =&#62; 'xsd:string', 'cognom' =&#62; 'xsd:string' ),// variables d'entrada</li>
	<li style="padding-left: 15px;">array('return' =&#62; 'xsd:string'),    // retorn</li>
	<li style="padding-left: 15px;">'uri:hola',// namespace</li>
	<li style="padding-left: 15px;">'uri:hola/get',// SOAPAction</li>
	<li style="padding-left: 15px;">'rpc',// style</li>
	<li style="padding-left: 15px;">'encoded'// use</li>
	<li>);</li>
	<li>function hola( $nom, $cognom ){</li>
	<li style="padding-left: 15px;">return "Hola ".$nom." ".$cognom."!";</li>
	<li>}</li>
	<li>$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';</li>
	<li>$soap-&#62;service($HTTP_RAW_POST_DATA);</li>
</ol>
<h2><strong>Client.php</strong></h2>
<ol>
	<li>require_once('NUSOAP/nusoap.php');</li>
	<li>try</li>
	<li style="padding-left: 15px;">$client = new nusoap_client('http://latevaurl.cat/elteupath/server.php?wsdl');</li>
	<li style="padding-left: 15px;">$result = $client-&#62;call('Hola', array('nom' =&#62; "Leo", 'cognom' =&#62; "Messi" ) );</li>
	<li style="padding-left: 15px;">print_r($result);</li>
	<li>}</li>
	<li>catch( SoapFault $e ){</li>
	<li style="padding-left: 15px;">echo 'EXCEPTION='.$e;</li>
	<li>}</li>
</ol>
Recordeu que per a què el codi funcioni cal tenir activat SOAP a Apache. Podeu seguir <a title="Install SOAP" href="http://www.php.net/manual/en/soap.installation.php" target="_blank">aquestes intruccions</a>.]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-3" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/&amp;title=Web%20service%20amb%20PHP%20i%20NuSOAP" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-3" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/&amp;title=Web%20service%20amb%20PHP%20i%20NuSOAP" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-3" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-3" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/&amp;title=Web%20service%20amb%20PHP%20i%20NuSOAP" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-3" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2011%2F04%2F12%2Fweb-service-amb-php-i-nusoap%2F&amp;t=Web%20service%20amb%20PHP%20i%20NuSOAP&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-3" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2011%2F04%2F12%2Fweb-service-amb-php-i-nusoap%2F&amp;text=Web%20service%20amb%20PHP%20i%20NuSOAP&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>Un Web service és un conjunt de protocols i estàndards que serveixen per intercanviar dades entre aplicacion. Diferents aplicacions desenvolupades amb llenguatges de programació diferents i executades des de qualsevol plataforma, poden intercanviar dades per Internet.</p>
<p>La majoria de nosaltres quan pensem amb Web service des seguida ens ve al cap Java i Tomcat. És una de les maneres més senzilles de fer-ho, però a vegades, en funció del què hi ha fet en un projecte, ens pot ser molt més senzill fer-ho amb PHP.</p>
<p>Per tal de poder usar els codis que es mostren a continuació, cal que ens descarreguem la llibreria <a title="Descarregar llibreria." href="http://sourceforge.net/projects/nusoap/" target="_blank">NuSOAP</a> de PHP,</p>
<p>A continuació veurem un exemple de Servidor, que el crida un client.</p>
<h2><strong>Server.php</strong></h2>
<ol>
<li>require_once(&#8216;NUSOAP/nusoap.php&#8217;);</li>
<li>$soap = new soap_server;</li>
<li>$soap-&gt;configureWSDL(&#8216;open-pitu Service&#8217;, &#8216;http://latevaurl.cat/elteupath/&#8217;);</li>
<li>$soap-&gt;register(</li>
<li style="padding-left: 15px;">&#8216;hola&#8217;,// nom del mètode</li>
<li style="padding-left: 15px;">array(&#8216;nom&#8217; =&gt; &#8216;xsd:string&#8217;, &#8216;cognom&#8217; =&gt; &#8216;xsd:string&#8217; ),// variables d&#8217;entrada</li>
<li style="padding-left: 15px;">array(&#8216;return&#8217; =&gt; &#8216;xsd:string&#8217;),    // retorn</li>
<li style="padding-left: 15px;">&#8216;uri:hola&#8217;,// namespace</li>
<li style="padding-left: 15px;">&#8216;uri:hola/get&#8217;,// SOAPAction</li>
<li style="padding-left: 15px;">&#8216;rpc&#8217;,// style</li>
<li style="padding-left: 15px;">&#8216;encoded&#8217;// use</li>
<li>);</li>
<li>function hola( $nom, $cognom ){</li>
<li style="padding-left: 15px;">return &#8220;Hola &#8220;.$nom.&#8221; &#8220;.$cognom.&#8221;!&#8221;;</li>
<li>}</li>
<li>$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : &#8221;;</li>
<li>$soap-&gt;service($HTTP_RAW_POST_DATA);</li>
</ol>
<h2><strong>Client.php</strong></h2>
<ol>
<li>require_once(&#8216;NUSOAP/nusoap.php&#8217;);</li>
<li>try</li>
<li style="padding-left: 15px;">$client = new nusoap_client(&#8216;http://latevaurl.cat/elteupath/server.php?wsdl&#8217;);</li>
<li style="padding-left: 15px;">$result = $client-&gt;call(&#8216;Hola&#8217;, array(&#8216;nom&#8217; =&gt; &#8220;Leo&#8221;, &#8216;cognom&#8217; =&gt; &#8220;Messi&#8221; ) );</li>
<li style="padding-left: 15px;">print_r($result);</li>
<li>}</li>
<li>catch( SoapFault $e ){</li>
<li style="padding-left: 15px;">echo &#8216;EXCEPTION=&#8217;.$e;</li>
<li>}</li>
</ol>
<p>Recordeu que per a què el codi funcioni cal tenir activat SOAP a Apache. Podeu seguir <a title="Install SOAP" href="http://www.php.net/manual/en/soap.installation.php" target="_blank">aquestes intruccions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Less Framework 2</title>
		<link>http://openpitu.com/2010/09/06/less-framework-2/</link>
		<comments>http://openpitu.com/2010/09/06/less-framework-2/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 22:35:43 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[Notícies]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Disseny]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Navegadors]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=171</guid>
		<description><![CDATA[Less Framework és un framework de desenvolupament web per a tot tipus de dispositius, també els mòbils. El què es pretén amb el seu ús, es que no s'hagi d'escriure CSS diferents per a cada una de les resolucions que s'utilitzaran. Com tots els FW, porta definides un conjunt de funcionalitats mínimes amb valors predefinits com poden ser les fonts o una reixeta (grid).
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2010/09/phone.png"><img class="size-medium wp-image-172  aligncenter" title="phone" src="http://openpitu.com/wp-content/uploads/2010/09/phone-150x300.png" alt="" width="150" height="300" /></a></p>
Less Framework 2 CSS3 ofereix:
<ol>
	<li>Dues columnes a 320px per a smartphones.</li>
	<li>Cinc columnes a 768px per a tablets i netbooks.</li>
	<li>Vuit columes a 1280px per a ordinadors de sobre taula i portàtils.</li>
</ol>
Es pot provar des de la <a title="Pàgina oficial." href="http://lessframework.com/" target="_blank">pàgina oficial</a>. Gràcies a <a title="Font d'informació." href="http://pixelcoblog.com/less-framework-2-desarrollo-web-para-todo-tipo-dispositivos-incluidos-los-moviles/" target="_blank">Pixelco Blog</a>]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-4" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/09/06/less-framework-2/&amp;title=Less%20Framework%202" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-4" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/09/06/less-framework-2/&amp;title=Less%20Framework%202" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-4" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/09/06/less-framework-2/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-4" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/09/06/less-framework-2/&amp;title=Less%20Framework%202" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-4" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F09%2F06%2Fless-framework-2%2F&amp;t=Less%20Framework%202&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-4" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F09%2F06%2Fless-framework-2%2F&amp;text=Less%20Framework%202&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>Less Framework és un framework de desenvolupament web per a tot tipus de dispositius, també els mòbils. El què es pretén amb el seu ús, es que no s&#8217;hagi d&#8217;escriure CSS diferents per a cada una de les resolucions que s&#8217;utilitzaran. Com tots els FW, porta definides un conjunt de funcionalitats mínimes amb valors predefinits com poden ser les fonts o una reixeta (grid).</p>
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2010/09/phone.png"><img class="size-medium wp-image-172  aligncenter" title="phone" src="http://openpitu.com/wp-content/uploads/2010/09/phone-150x300.png" alt="" width="150" height="300" /></a></p>
<p>Less Framework 2 CSS3 ofereix:</p>
<ol>
<li>Dues columnes a 320px per a smartphones.</li>
<li>Cinc columnes a 768px per a tablets i netbooks.</li>
<li>Vuit columes a 1280px per a ordinadors de sobre taula i portàtils.</li>
</ol>
<p>Es pot provar des de la <a title="Pàgina oficial." href="http://lessframework.com/" target="_blank">pàgina oficial</a>. Gràcies a <a title="Font d'informació." href="http://pixelcoblog.com/less-framework-2-desarrollo-web-para-todo-tipo-dispositivos-incluidos-los-moviles/" target="_blank">Pixelco Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/09/06/less-framework-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FireQuery, una extenció de Firebug per desenvolupar en jQuery</title>
		<link>http://openpitu.com/2010/08/29/firequery-una-extencio-de-firebug-per-desenvolupar-en-jquery/</link>
		<comments>http://openpitu.com/2010/08/29/firequery-una-extencio-de-firebug-per-desenvolupar-en-jquery/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 12:52:04 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[aplicacions]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Navegadors]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=152</guid>
		<description><![CDATA[Actualment quasi tothom quan ha de desenvolupar en JavaScript, usa el framework jQuery. Així mateix, una de les bases per a qualsevol programador web és l'extensió del Firefox, Firebug.
<a href="http://openpitu.com/wp-content/uploads/2010/08/firebug.jpg"><img class="aligncenter size-medium wp-image-153" title="firebug" src="http://openpitu.com/wp-content/uploads/2010/08/firebug-300x213.jpg" alt="" width="300" height="213" /></a>
Doncs ara podem veure una extensió que uneix ambdues coses: amb FireQuery, podrem examinar els objectes generats per jQuery i jQeritzar la pàgina. Realment pot millorar les funcions de Firebug.
<a href="http://openpitu.com/wp-content/uploads/2010/08/firequery.png"><img class="aligncenter size-medium wp-image-154" title="firequery" src="http://openpitu.com/wp-content/uploads/2010/08/firequery-300x54.png" alt="" width="300" height="54" /></a>
Pots descarregar-te i instal·lar l'<a title="FireQuery" href="https://addons.mozilla.org/en-US/firefox/addon/12632/" target="_blank">extensió</a> des de la web oficial.]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-5" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/08/29/firequery-una-extencio-de-firebug-per-desenvolupar-en-jquery/&amp;title=FireQuery%2C%20una%20extenci%C3%B3%20de%20Firebug%20per%20desenvolupar%20en%20jQuery" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-5" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/08/29/firequery-una-extencio-de-firebug-per-desenvolupar-en-jquery/&amp;title=FireQuery%2C%20una%20extenci%C3%B3%20de%20Firebug%20per%20desenvolupar%20en%20jQuery" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-5" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/08/29/firequery-una-extencio-de-firebug-per-desenvolupar-en-jquery/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-5" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/08/29/firequery-una-extencio-de-firebug-per-desenvolupar-en-jquery/&amp;title=FireQuery%2C%20una%20extenci%C3%B3%20de%20Firebug%20per%20desenvolupar%20en%20jQuery" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-5" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F08%2F29%2Ffirequery-una-extencio-de-firebug-per-desenvolupar-en-jquery%2F&amp;t=FireQuery%2C%20una%20extenci%C3%B3%20de%20Firebug%20per%20desenvolupar%20en%20jQuery&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-5" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F08%2F29%2Ffirequery-una-extencio-de-firebug-per-desenvolupar-en-jquery%2F&amp;text=FireQuery%2C%20una%20extenci%C3%B3%20de%20Firebug%20per%20desenvolupar%20en%20jQuery&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>Actualment quasi tothom quan ha de desenvolupar en JavaScript, usa el framework jQuery. Així mateix, una de les bases per a qualsevol programador web és l&#8217;extensió del Firefox, Firebug.</p>
<p><a href="http://openpitu.com/wp-content/uploads/2010/08/firebug.jpg"><img class="aligncenter size-medium wp-image-153" title="firebug" src="http://openpitu.com/wp-content/uploads/2010/08/firebug-300x213.jpg" alt="" width="300" height="213" /></a></p>
<p>Doncs ara podem veure una extensió que uneix ambdues coses: amb FireQuery, podrem examinar els objectes generats per jQuery i jQeritzar la pàgina. Realment pot millorar les funcions de Firebug.</p>
<p><a href="http://openpitu.com/wp-content/uploads/2010/08/firequery.png"><img class="aligncenter size-medium wp-image-154" title="firequery" src="http://openpitu.com/wp-content/uploads/2010/08/firequery-300x54.png" alt="" width="300" height="54" /></a></p>
<p>Pots descarregar-te i instal·lar l&#8217;<a title="FireQuery" href="https://addons.mozilla.org/en-US/firefox/addon/12632/" target="_blank">extensió</a> des de la web oficial.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/08/29/firequery-una-extencio-de-firebug-per-desenvolupar-en-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP.JS, les funcions PHP en JS</title>
		<link>http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/</link>
		<comments>http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 12:04:03 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=145</guid>
		<description><![CDATA[De la mà de <a title="Article font." href="http://www.desarrolloweb.com/articulos/phpjs.html" target="_blank">Desarrolloweb</a> he trobat aquesta llibreria JS que ens pot anar bé quan estem programant en JS i necessitem algunes funcions pròpies de PHP. Es tracta d'un projecte de codi lliure que pretén donar a JS la potència del PHP. Com és normal no totes les funcions de PHP es poden passar a JS.
<a href="http://openpitu.com/wp-content/uploads/2010/08/phpjs.png"><img class="aligncenter size-full wp-image-147" title="phpjs" src="http://openpitu.com/wp-content/uploads/2010/08/phpjs.png" alt="" width="170" height="90" /></a>
Podeu trobar la <a title="Funcions de PHP.JS" href="http://phpjs.org/functions/index" target="_blank">API de la llibreria</a> a la web oficial del projecte. Personalment encara no l'he provat, però no tardaré en mirar-me detalladament l'ús d'aquestes funcions, la seva utilitat i, si és un projecte pràctic i útil, no dubtaré en fer algun altre post ensenyant el seu ús. Podeu baixar-vos les <a title="Packages." href="http://phpjs.org/packages/index" target="_blank">llibreries</a> a la web oficial en diverses versions, segons la que més us convingui.
Per posar un exemple he estat mirant com han traduït la funció <a href="http://phpjs.org/functions/setcookie:509">SETCOOKIE</a>:
<ol class="code">
	<li>setcookie('SO', 'Linux');</li>
</ol>
<a title="PHP.JS, les funcions PHP en JS" href="?p=145">Seguir llegint...</a>]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-6" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/&amp;title=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-6" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/&amp;title=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-6" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-6" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/&amp;title=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-6" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F08%2F28%2Fphp-js-les-funcions-php-en-js%2F&amp;t=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-6" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F08%2F28%2Fphp-js-les-funcions-php-en-js%2F&amp;text=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>De la mà de <a title="Article font." href="http://www.desarrolloweb.com/articulos/phpjs.html" target="_blank">Desarrolloweb</a> he trobat aquesta llibreria JS que ens pot anar bé quan estem programant en JS i necessitem algunes funcions pròpies de PHP. Es tracta d&#8217;un projecte de codi lliure que pretén donar a JS la potència del PHP. Com és normal no totes les funcions de PHP es poden passar a JS.</p>
<p><a href="http://openpitu.com/wp-content/uploads/2010/08/phpjs.png"><img class="aligncenter size-full wp-image-147" title="phpjs" src="http://openpitu.com/wp-content/uploads/2010/08/phpjs.png" alt="" width="170" height="90" /></a></p>
<p>Podeu trobar la <a title="Funcions de PHP.JS" href="http://phpjs.org/functions/index" target="_blank">API de la llibreria</a> a la web oficial del projecte. Personalment encara no l&#8217;he provat, però no tardaré en mirar-me detalladament l&#8217;ús d&#8217;aquestes funcions, la seva utilitat i, si és un projecte pràctic i útil, no dubtaré en fer algun altre post ensenyant el seu ús. Podeu baixar-vos les <a title="Packages." href="http://phpjs.org/packages/index" target="_blank">llibreries</a> a la web oficial en diverses versions, segons la que més us convingui.</p>
<p>Per posar un exemple he estat mirant com han traduït la funció <a href="http://phpjs.org/functions/setcookie:509">SETCOOKIE</a>:</p>
<ol class="code">
<li>setcookie(&#8216;SO&#8217;, &#8216;Linux&#8217;);</li>
</ol>
<p>Aviat ho provaré i ja comentaré més detalladament com funciona i si realment ens pot estalviar bastant feina que fins ara havíem de fer nosaltres.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Degradats de fons només amb CSS</title>
		<link>http://openpitu.com/2010/08/16/degradats-de-fons-nomes-amb-css/</link>
		<comments>http://openpitu.com/2010/08/16/degradats-de-fons-nomes-amb-css/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 19:57:34 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Navegadors]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=135</guid>
		<description><![CDATA[En el disseny web, treballar amb imatges és bastant feixug, i en la major part dels cops és millor usar propietats CSS. Fins al moment sempre que volia fer algun fons amb un degradat el feia creant la imatge, cosa que genera una sèrie d'inconvenients que molts de nosaltres hem anat patint.
Avui, buscant alguna alternativa amb només CSS, he trobat <a title="Enllaç a la font." href="http://www.webdesignerwall.com/tutorials/cross-browser-css-gradient/" target="_blank">una solució</a> prou bona que funciona amb els tres navegadors:
<ol class="code">
	<li>background: -webkit-gradient(linear, left top, left bottom, from(#cccccc), to(#000000));</li>
	<li>background: -moz-linear-gradient(top,  #ccc,  #000);</li>
	<li>filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#000000');</li>
</ol>
La primera línia és per a Chrome i Safari, la segona per a Firefox (cal que sigui la versió 3.6 o superior) i la darrera per a Internet Explorer.
<a href="?p=135" title="Llegir l'article complet">Article complet.</a>]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-7" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/08/16/degradats-de-fons-nomes-amb-css/&amp;title=Degradats%20de%20fons%20nom%C3%A9s%20amb%20CSS" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-7" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/08/16/degradats-de-fons-nomes-amb-css/&amp;title=Degradats%20de%20fons%20nom%C3%A9s%20amb%20CSS" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-7" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/08/16/degradats-de-fons-nomes-amb-css/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-7" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/08/16/degradats-de-fons-nomes-amb-css/&amp;title=Degradats%20de%20fons%20nom%C3%A9s%20amb%20CSS" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-7" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F08%2F16%2Fdegradats-de-fons-nomes-amb-css%2F&amp;t=Degradats%20de%20fons%20nom%C3%A9s%20amb%20CSS&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-7" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F08%2F16%2Fdegradats-de-fons-nomes-amb-css%2F&amp;text=Degradats%20de%20fons%20nom%C3%A9s%20amb%20CSS&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>En el disseny web, treballar amb imatges és bastant feixug, i en la major part dels cops és millor usar propietats CSS. Fins al moment sempre que volia fer algun fons amb un degradat el feia creant la imatge, cosa que genera una sèrie d&#8217;inconvenients que molts de nosaltres hem anat patint.</p>
<p><a href="http://openpitu.com/wp-content/uploads/2010/08/css-gradient.gif"><img class="aligncenter size-full wp-image-137" title="css-gradient" src="http://openpitu.com/wp-content/uploads/2010/08/css-gradient.gif" alt="CSS gradient." width="130" height="115" /></a></p>
<p>Avui, buscant alguna alternativa amb només CSS, he trobat <a title="Enllaç a la font." href="http://www.webdesignerwall.com/tutorials/cross-browser-css-gradient/" target="_blank">una solució</a> prou bona que funciona amb els tres navegadors:</p>
<ol class="code">
<li>background: -webkit-gradient(linear, left top, left bottom, from(#cccccc), to(#000000));</li>
<li>background: -moz-linear-gradient(top,  #ccc,  #000);</li>
<li>filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=&#8217;#cccccc&#8217;, endColorstr=&#8217;#000000&#8242;);</li>
</ol>
<p>La primera línia és per a Chrome i Safari, la segona per a Firefox (cal que sigui la versió 3.6 o superior) i la darrera per a Internet Explorer.</p>
<p>Espero que us sigui d&#8217;utilitat.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/08/16/degradats-de-fons-nomes-amb-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Millora la llegibilitat amb CSS</title>
		<link>http://openpitu.com/2010/07/08/millora-la-llegibilitat-amb-css/</link>
		<comments>http://openpitu.com/2010/07/08/millora-la-llegibilitat-amb-css/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 23:00:44 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Navegadors]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=106</guid>
		<description><![CDATA[La llegibilitat és un conjunt de característiques que fan que un text o tipografia sigui més fàcil de llegir. Aquesta propietat es pot millorar amb diverses tècniques. Avui em centraré amb la propietat CSS <strong><em><a title="Post original" href="http://blogandweb.com/css/legibilidad-texto/?utm_source=feedburner&#38;utm_medium=feed&#38;utm_campaign=Feed:+blogandweb+(Blog+and+Web)" target="_blank">text-rendering</a></em></strong>, que va introduir Firefox3.0 i que ara també usen els sistemes basats en webkit (Safari i el gran Chrome).
<a href="http://openpitu.com/wp-content/uploads/2010/07/css.gif"><img class="aligncenter size-medium wp-image-107" title="css" src="http://openpitu.com/wp-content/uploads/2010/07/css-300x262.gif" alt="imatge CSS" width="300" height="262" /></a>
Com tota propietat CSS podem donar-li diferents valors, per tal de que actuï d'una o altra manera:
<ul>
	<li><strong><em>optimizeLegibility</em></strong>: Dóna prioritat a la llegibilitat del text. Habilita kerning i lligadura de tipografia.</li>
	<li><em><strong>auto</strong></em>: Per defecte usa el valor anterior per a lletres menors de 10px i el següent per a majors.</li>
	<li><strong><em>optimizeSpeed</em></strong>: Dóna prioritat a la velocitat amb la qual es mostrarà el text.</li>
	<li><em><strong>geometricPrecision</strong></em>: Dóna prioritat a la geometria del text.</li>
</ul>
Per tant la podem usar tal i com utilitzem qualsevol propietat CSS i podem jugar amb les diferents prioritats per tal de trobar un bon equilibri a la web. Un cop més, i com normalment ens té acostumats, és una propietat que no funciona amb Internet Explorer de Microsoft. Esperem que mica en mica el món web es vagi unificant i es segueixin els estàndards que es van marcant.
<a href="?p=106" title="Article complet.">Llegeix l'article complet per veure l'exemple</a>]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-8" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/07/08/millora-la-llegibilitat-amb-css/&amp;title=Millora%20la%20llegibilitat%20amb%20CSS" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-8" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/07/08/millora-la-llegibilitat-amb-css/&amp;title=Millora%20la%20llegibilitat%20amb%20CSS" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-8" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/07/08/millora-la-llegibilitat-amb-css/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-8" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/07/08/millora-la-llegibilitat-amb-css/&amp;title=Millora%20la%20llegibilitat%20amb%20CSS" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-8" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F07%2F08%2Fmillora-la-llegibilitat-amb-css%2F&amp;t=Millora%20la%20llegibilitat%20amb%20CSS&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-8" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F07%2F08%2Fmillora-la-llegibilitat-amb-css%2F&amp;text=Millora%20la%20llegibilitat%20amb%20CSS&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>La llegibilitat és un conjunt de característiques que fan que un text o tipografia sigui més fàcil de llegir. Aquesta propietat es pot millorar amb diverses tècniques. Avui em centraré amb la propietat CSS <strong><em><a title="Post original" href="http://blogandweb.com/css/legibilidad-texto/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+blogandweb+(Blog+and+Web)" target="_blank">text-rendering</a></em></strong>, que va introduir Firefox3.0 i que ara també usen els sistemes basats en webkit (Safari i el gran Chrome).</p>
<p><a href="http://openpitu.com/wp-content/uploads/2010/07/css.gif"><img class="aligncenter size-medium wp-image-107" title="css" src="http://openpitu.com/wp-content/uploads/2010/07/css-300x262.gif" alt="imatge CSS" width="300" height="262" /></a></p>
<p>Com tota propietat CSS podem donar-li diferents valors, per tal de que actuï d&#8217;una o altra manera:</p>
<ol class="code">
<li><strong><em>optimizeLegibility</em></strong>: Dóna prioritat a la llegibilitat del text. Habilita kerning i lligadura de tipografia.</li>
<li><em><strong>auto</strong></em>: Per defecte usa el valor anterior per a lletres menors de 10px i el següent per a majors.</li>
<li><strong><em>optimizeSpeed</em></strong>: Dóna prioritat a la velocitat amb la qual es mostrarà el text.</li>
<li><em><strong>geometricPrecision</strong></em>: Dóna prioritat a la geometria del text.</li>
</ol>
<p>Per tant la podem usar tal i com utilitzem qualsevol propietat CSS i podem jugar amb les diferents prioritats per tal de trobar un bon equilibri a la web. Per exemple:</p>
<ol class="code">
<li>#id_element, .classe_element{</li>
<li>text-rendering: auto;</li>
<li>}</li>
</ol>
<p>Un cop més, i com normalment ens té acostumats, és una propietat que no funciona amb Internet Explorer de Microsoft. Esperem que mica en mica el món web es vagi unificant i es segueixin els estàndards que es van marcant.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/07/08/millora-la-llegibilitat-amb-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Events personalitzats amb jQuery</title>
		<link>http://openpitu.com/2010/06/29/events-personalitzats-amb-jquery/</link>
		<comments>http://openpitu.com/2010/06/29/events-personalitzats-amb-jquery/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 16:53:37 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Programació]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=83</guid>
		<description><![CDATA[El disseny d'interfícies per a aplicacions d'escriptori, típicament s'ha fet a partir de la generació d'events per part d'uns elements i de la seva captura per part d'uns altres. En el projecte en el que estic a la feina, estem fent una nova arquitectura més modular. Algunes aplicacions web, ja comencen a tenir moltes propietats, i la programació dels events Click, Hover... són d'ús quotidià.
<a href="http://openpitu.com/wp-content/uploads/2010/06/mvc-workflow.png"><img class="aligncenter size-medium wp-image-87" title="mvc-workflow" src="http://openpitu.com/wp-content/uploads/2010/06/mvc-workflow-300x277.png" alt="Model Vista Controlador" width="300" height="277" /></a>
A vegades però, amb aquests events estàndards no n'hi ha prou, i és necessari programar events propis d'una component, per tal de que pugui ser llançat amb total independència des d'un altre component (i no haver de cridar una funció concreta). Per fer això jQuery ens dóna la solució.
<a href="?p=83" title="Accedeix a l'article complet per veure el codi">Continua llegint</a>]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-9" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/06/29/events-personalitzats-amb-jquery/&amp;title=Events%20personalitzats%20amb%20jQuery" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-9" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/06/29/events-personalitzats-amb-jquery/&amp;title=Events%20personalitzats%20amb%20jQuery" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-9" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/06/29/events-personalitzats-amb-jquery/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-9" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/06/29/events-personalitzats-amb-jquery/&amp;title=Events%20personalitzats%20amb%20jQuery" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-9" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F29%2Fevents-personalitzats-amb-jquery%2F&amp;t=Events%20personalitzats%20amb%20jQuery&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-9" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F29%2Fevents-personalitzats-amb-jquery%2F&amp;text=Events%20personalitzats%20amb%20jQuery&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>El disseny d&#8217;interfícies per a aplicacions d&#8217;escriptori, típicament s&#8217;ha fet a partir de la generació d&#8217;events per part d&#8217;uns elements i de la seva captura per part d&#8217;uns altres. En el projecte en el que estic a la feina, estem fent una nova arquitectura més modular. Algunes aplicacions web, ja comencen a tenir moltes propietats, i la programació dels events Click, Hover&#8230; són d&#8217;ús quotidià.</p>
<p><a href="http://openpitu.com/wp-content/uploads/2010/06/mvc-workflow.png"><img class="aligncenter size-medium wp-image-87" title="mvc-workflow" src="http://openpitu.com/wp-content/uploads/2010/06/mvc-workflow-300x277.png" alt="Model Vista Controlador" width="300" height="277" /></a></p>
<p>A vegades però, amb aquests events estàndards no n&#8217;hi ha prou, i és necessari programar events propis d&#8217;una component, per tal de que pugui ser llançat amb total independència des d&#8217;un altre component (i no haver de cridar una funció concreta). Per fer això jQuery ens dóna la solució.<br />
<a href="http://openpitu.com/wp-content/uploads/2010/06/logo_jquery_215x53.gif"><img class="aligncenter size-full wp-image-84" title="logo_jquery_215x53" src="http://openpitu.com/wp-content/uploads/2010/06/logo_jquery_215x53.gif" alt="logo jQuery" width="215" height="53" /></a><br />
Primer de tot veurem com generar un nou event:</p>
<ol class="code">
<li>$(&#8216;#el_nostre_div&#8217;).bind(&#8216;el_nostre_event&#8217;, function(){</li>
<li>alert(&#8216;Acció del nostre event!&#8217;);</li>
<li>});</li>
</ol>
<p>Per llançar aquest event des d&#8217;un altre component podem fer:</p>
<ol class="code">
<li>$(&#8216;body&#8217;).trigger(&#8216;el_nostre_event&#8217;);</li>
</ol>
<p>Finalment, a vegades ens pot interessar eliminar un event que havíem programat:</p>
<ol class="code">
<li>$(&#8216;#el_nostre_div&#8217;).unbind(&#8216;el_nostre_event&#8217;);</li>
</ol>
<p>Amb aquestes tres porcions de codi, ja podem generar, llançar i eliminar events personalitzats i generar interfícies tal i com es fa amb les aplicacions d&#8217;escriptori però en el món web.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/06/29/events-personalitzats-amb-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lightbox fet amb semàntica CSS3</title>
		<link>http://openpitu.com/2010/06/27/lightbox-fet-amb-semantica-css3/</link>
		<comments>http://openpitu.com/2010/06/27/lightbox-fet-amb-semantica-css3/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 23:46:57 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[shadowbox]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=76</guid>
		<description><![CDATA[Ja fa dies, vaig veure aquest <a title="Font d'informació." href="http://sixrevisions.com/css/semantic-css3-lightboxes/" target="_blank">article</a> en el qual s'explicava com aconseguir un producte semblant al que obtenim amb Lightbox o Shadorbox però només en CSS i, evidentment, prescindint dels bonics efectes (o no) que poden fer les dues llibreries esmentades.
Podeu veure un <a title="Demostració en viu." href="http://downloads.sixrevisions.com/css-light-box/source.html" target="_blank">exemple en viu</a> del resultat que han obtingut i fer-te una idea de què podries arribar aconseguir només amb CSS i quan fora necessari l'ús del JavaScript.
<img class="aligncenter size-full wp-image-77" title="css3" src="http://openpitu.com/wp-content/uploads/2010/06/css3.jpg" alt="" width="200" height="116" />
Segons l'article original, s'està arribant a un ús inadequat de JavaScript, amb frameworks com jQuery, ja que donen uns resultats excel·lents a la vista. Tot i aquest darrer motiu, troben necessari donar una solució a aquest problema i per això mostren com fer-ho per als fanàtics del CSS.
<a href="?p=76" title="Lightbox fet amb semàntica CSS3">Continuar llegint...</a>]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-10" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/06/27/lightbox-fet-amb-semantica-css3/&amp;title=Lightbox%20fet%20amb%20sem%C3%A0ntica%20CSS3" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-10" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/06/27/lightbox-fet-amb-semantica-css3/&amp;title=Lightbox%20fet%20amb%20sem%C3%A0ntica%20CSS3" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-10" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/06/27/lightbox-fet-amb-semantica-css3/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-10" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/06/27/lightbox-fet-amb-semantica-css3/&amp;title=Lightbox%20fet%20amb%20sem%C3%A0ntica%20CSS3" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-10" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F27%2Flightbox-fet-amb-semantica-css3%2F&amp;t=Lightbox%20fet%20amb%20sem%C3%A0ntica%20CSS3&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-10" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F27%2Flightbox-fet-amb-semantica-css3%2F&amp;text=Lightbox%20fet%20amb%20sem%C3%A0ntica%20CSS3&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>Ja fa dies, vaig veure aquest <a title="Font d'informació." href="http://sixrevisions.com/css/semantic-css3-lightboxes/" target="_blank">article</a> en el qual s&#8217;explicava com aconseguir un producte semblant al que obtenim amb Lightbox o Shadorbox però només en CSS i, evidentment, prescindint dels bonics efectes (o no) que poden fer les dues llibreries esmentades.</p>
<p>Podeu veure un <a title="Demostració en viu." href="http://downloads.sixrevisions.com/css-light-box/source.html" target="_blank">exemple en viu</a> del resultat que han obtingut i fer-te una idea de què podries arribar aconseguir només amb CSS i quan fora necessari l&#8217;ús del JavaScript.</p>
<p><a href="http://openpitu.com/wp-content/uploads/2010/06/css3.jpg"><img class="aligncenter size-full wp-image-77" title="css3" src="http://openpitu.com/wp-content/uploads/2010/06/css3.jpg" alt="" width="200" height="116" /></a></p>
<p>Segons l&#8217;article original, s&#8217;està arribant a un ús inadequat de JavaScript, amb frameworks com jQuery, ja que donen uns resultats excel·lents a la vista. Tot i aquest darrer motiu, troben necessari donar una solució a aquest problema i per això mostren com fer-ho per als fanàtics del CSS.</p>
<p>Anem a veure una mica el codi que utilitzen. Anem al gra, és a dir, veurem com cal declarar el div que volem que formi el &#8220;Lightbox&#8221; i com definir els estils CSS per a que actuï de la manera desitjada.</p>
<p>Primer l&#8217;html:</p>
<ol class="code">
<li>&lt;div class=&#8221;lightbox&#8221; id=&#8221;content&#8221;&gt;&lt;div class=&#8221;W60p h400 scroll&#8221;&gt;</li>
<li>&lt;h2&gt;El nostre contingut&lt;/h2&gt;</li>
<li>&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent quis felis suscipit tellus euismod varius quis ut nibh. Curabitur in ante nunc, vitae venenatis dui.&lt;/p&gt;</li>
<li>&lt;p&gt;&lt;a href=&#8221;#&#8221; title=&#8221;Close This Content Lightbox&#8221;&gt;Tanca &lt;span&gt;X&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</li>
<li>&lt;/div&gt;&lt;/div&gt;</li>
</ol>
<p>El css que ens faria falta:</p>
<ol class="code">
<li>html, body {  height: 100%;  overflow: hidden;  width: 100%;  margin: 0;  padding: 0; }</li>
<li>body { overflow-y: auto; }</li>
<li>.lightbox {  left: -999em;  position: absolute; }</li>
<li>.lightbox:target { bottom: 0; left: 0; right: 0; top: 0; position: absolute; }</li>
<li>.lightbox:target .close a { background: rgba(0, 0, 0, 0.75); bottom: 0; left: 0; right: 0; top: 0; position: absolute; z-index: 1; }</li>
<li>.close span { color: #FFFFFF; font-size: 2em; text-indent: 0; position: absolute; right: 0.5em; top: 0.5em; }</li>
<li>.close {text-indent: -999em;}</li>
</ol>
<p>A nivell general aquest seria el secret per tal d&#8217;aconseguir el lightbox, tot i que no s&#8217;acaba aquí i, si ho vols utilitzar el recomano que vagis a <a title="How-to complet. (Anglès)" href="http://sixrevisions.com/css/semantic-css3-lightboxes/" target="_blank">Pixelovers</a> i segueixis un per un els passos que expliquen, per tal d&#8217;aconseguir un bon funcionament amb tots els navegadors.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/06/27/lightbox-fet-amb-semantica-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accelera la càrrega de jQuery amb un CDN</title>
		<link>http://openpitu.com/2010/06/26/accelera-la-carrega-de-jquery-amb-un-cdn/</link>
		<comments>http://openpitu.com/2010/06/26/accelera-la-carrega-de-jquery-amb-un-cdn/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 12:03:54 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=67</guid>
		<description><![CDATA[El framework de jQuery és un dels més estesos actualment a molts sites d'Internet. Una bona recomanació a tota la gent que l'usa és que carregui la llibreria des d'un CDN (Content Delivery Network). Un CDN és un grup de servidors repartits per tot el món, distribuïts en llocs estratègics i pensats per a la distribució de fitxers. N'hi ha diversos, entre els que podem destacar el de Google, Microsoft o Edgecast, ja que són gratuïts.
<img class="size-medium wp-image-69" title="cdn_service" src="http://openpitu.com/wp-content/uploads/2010/06/cdn_service-300x177.gif" alt="CDN" width="300" height="177" />
Tal i com expliquen a <a title="Post original." href="http://www.pixelovers.com/acelera-carga-jquery-site-utilizando-cdn-625806" target="_blank">Pixelovers</a>, podem usar el CDN de Google de la següent manera:
<ol class="code">
	<li>&#60;script src="http://www.google.com/jsapi"&#62;</li>
	<li>&#60;script type="text/javascript"&#62;</li>
	<li>google.load("jquery", "1.3.2");</li>
	<li>&#60;/script&#62;</li>
</ol>
Mentre que per utilitzar el de Microsoft:
<ol class="code">
	<li>&#60;script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"&#62;&#60;/script&#62;</li>
</ol>
Usar un CDN per a la càrrega de llibreries té un conjunt d'avantatges:
<ul>
	<li>Alliberar al nostre servidor de càrrega de llibreries externes</li>
	<li>Incrementa les possibilitats que els fitxers estiguin a la cau del navegador.</li>
	<li>Un CDN segurament serveix el fitxer més ràpidament que el teu servidor.</li>
</ul>
Per tal d'escollir quin CDN utilitzar, el millor seria usar el més utilitzat, ja que seria la manera més fàcil que ja estigués a la cau, però com que no es disposa aquesta informació es tracta de triar, per exemple, el que vagi més ràpid. Aquí deixo aquesta gràfica per a que vosaltres mateixos escolliu quin usar:
<img class="size-medium wp-image-68" title="Comparativa de CDN" src="http://openpitu.com/wp-content/uploads/2010/06/cdn-300x155.jpg" alt="" width="300" height="155" />]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-11" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/06/26/accelera-la-carrega-de-jquery-amb-un-cdn/&amp;title=Accelera%20la%20c%C3%A0rrega%20de%20jQuery%20amb%20un%20CDN" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-11" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/06/26/accelera-la-carrega-de-jquery-amb-un-cdn/&amp;title=Accelera%20la%20c%C3%A0rrega%20de%20jQuery%20amb%20un%20CDN" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-11" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/06/26/accelera-la-carrega-de-jquery-amb-un-cdn/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-11" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/06/26/accelera-la-carrega-de-jquery-amb-un-cdn/&amp;title=Accelera%20la%20c%C3%A0rrega%20de%20jQuery%20amb%20un%20CDN" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-11" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F26%2Faccelera-la-carrega-de-jquery-amb-un-cdn%2F&amp;t=Accelera%20la%20c%C3%A0rrega%20de%20jQuery%20amb%20un%20CDN&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-11" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F26%2Faccelera-la-carrega-de-jquery-amb-un-cdn%2F&amp;text=Accelera%20la%20c%C3%A0rrega%20de%20jQuery%20amb%20un%20CDN&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>El framework de jQuery és un dels més estesos actualment a molts sites d&#8217;Internet. Una bona recomanació a tota la gent que l&#8217;usa és que carregui la llibreria des d&#8217;un CDN (Content Delivery Network). Un CDN és un grup de servidors repartits per tot el món, distribuïts en llocs estratègics i pensats per a la distribució de fitxers. N&#8217;hi ha diversos, entre els que podem destacar el de Google, Microsoft o Edgecast, ja que són gratuïts.</p>
<div id="attachment_69" class="wp-caption aligncenter" style="width: 310px"><a href="http://openpitu.com/wp-content/uploads/2010/06/cdn_service.gif"><img class="size-medium wp-image-69" title="cdn_service" src="http://openpitu.com/wp-content/uploads/2010/06/cdn_service-300x177.gif" alt="CDN" width="300" height="177" /></a><p class="wp-caption-text">Funcionament d&#39;un CDN</p></div>
<p>Tal i com expliquen a <a title="Post original." href="http://www.pixelovers.com/acelera-carga-jquery-site-utilizando-cdn-625806" target="_blank">Pixelovers</a>, podem usar el CDN de Google de la següent manera:</p>
<ol class="code">
<li>&lt;script src=&#8221;http://www.google.com/jsapi&#8221;&gt;</li>
<li>&lt;script type=&#8221;text/javascript&#8221;&gt;</li>
<li>google.load(&#8220;jquery&#8221;, &#8220;1.3.2&#8243;);</li>
<li>&lt;/script&gt;</li>
</ol>
<p>Mentre que per utilitzar el de Microsoft:</p>
<ol class="code">
<li>&lt;script src=&#8221;http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</li>
</ol>
<p>Usar un CDN per a la càrrega de llibreries té un conjunt d&#8217;avantatges:</p>
<ul>
<li>Alliberar al nostre servidor de càrrega de llibreries externes</li>
<li>Incrementa les possibilitats que els fitxers estiguin a la cau del navegador.</li>
<li>Un CDN segurament serveix el fitxer més ràpidament que el teu servidor.</li>
</ul>
<p>Per tal d&#8217;escollir quin CDN utilitzar, el millor seria usar el més utilitzat, ja que seria la manera més fàcil que ja estigués a la cau, però com que no es disposa aquesta informació es tracta de triar, per exemple, el que vagi més ràpid. Aquí deixo aquesta gràfica per a que vosaltres mateixos escolliu quin usar:</p>
<div id="attachment_68" class="wp-caption aligncenter" style="width: 310px"><a href="http://openpitu.com/wp-content/uploads/2010/06/cdn.jpg"><img class="size-medium wp-image-68" title="Comparativa de CDN" src="http://openpitu.com/wp-content/uploads/2010/06/cdn-300x155.jpg" alt="" width="300" height="155" /></a><p class="wp-caption-text">Comparativa de CDNs </p></div>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/06/26/accelera-la-carrega-de-jquery-amb-un-cdn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP i JavaScript no intrusiu</title>
		<link>http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/</link>
		<comments>http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 08:32:50 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://localhost/open-pitu/?p=21</guid>
		<description><![CDATA[Últimament està molt de moda el concepte Scripts no intrusius. Per a que un script es pugui considerar no intrusiu ha de tenir una sèrie de característiques. Ha de ser usable, legible i en la mesura que es pugui accessible (ja s'entén que no sempre pot duncionar tot amb JS desactivat). A més, cal tenir separada l'estructura, dels scripts i dels estils, ja que així tot és més mantenible.La idea principal si parlem de JavaScript és que per a que l'script funcioni només calgui incloure el fitxer.js i ja tot passi a funcionar, sense que hi hagi la necessitat de fer crides a funcions JavaScript des del fitxer de l'estructura (html, php...).
En aquest how-to ens centrarem com podem obtenir des d'un fitxer JavaScript el valor de diverses variables que controlem/calculem des del PHP. A continuació s'explica el contingut principal de l'<a title="Tots els fitxers." href="files/ajax_example.rar">exemple</a>.Primer de tot veurem l'estructura del body del document d'exemple...]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-12" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/&amp;title=PHP%20i%20JavaScript%20no%20intrusiu" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-12" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/&amp;title=PHP%20i%20JavaScript%20no%20intrusiu" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-12" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-12" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/&amp;title=PHP%20i%20JavaScript%20no%20intrusiu" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-12" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F21%2Fphp-i-javascript-no-intrusiu%2F&amp;t=PHP%20i%20JavaScript%20no%20intrusiu&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-12" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F21%2Fphp-i-javascript-no-intrusiu%2F&amp;text=PHP%20i%20JavaScript%20no%20intrusiu&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>[How-to del blog antic.]</p>
<p>Últimament està molt de moda el concepte Scripts no intrusius. Per a que un script es pugui considerar no intrusiu ha de tenir una sèrie de característiques. Ha de ser usable, legible i en la mesura que es pugui accessible (ja s&#8217;entén que no sempre pot duncionar tot amb JS desactivat). A més, cal tenir separada l&#8217;estructura, dels scripts i dels estils, ja que així tot és més mantenible.La idea principal si parlem de JavaScript és que per a que l&#8217;script funcioni només calgui incloure el fitxer.js i ja tot passi a funcionar, sense que hi hagi la necessitat de fer crides a funcions JavaScript des del fitxer de l&#8217;estructura (html, php&#8230;).</p>
<p>En aquest how-to ens centrarem com podem obtenir des d&#8217;un fitxer JavaScript el valor de diverses variables que controlem/calculem des del PHP. A continuació s&#8217;explica el contingut principal de l&#8217;<a title="Tots els fitxers." href="files/ajax_example.rar">exemple</a>.Primer de tot veurem l&#8217;estructura del body del document d&#8217;exemple:</p>
<ol class="code">
<li>&lt;body&gt;</li>
<li> &lt;div id=&#8221;content&#8221;&gt;&lt;/div&gt;</li>
<li>&lt;/body&gt;</li>
</ol>
<p>A continuació l&#8217;estructura de dades que obtenim des de php:</p>
<ol class="code">
<li class="t0"><code>&lt;?php</code></li>
<li class="t2"><code> $var1 = "hyds";</code></li>
<li class="t2"><code> $var2 = "WICAST";</code></li>
<li class="t2"><code> $var3 = "SMC";</code></li>
<li class="t2"><code> echo $var1.".".$var2.".".$var3;</code></li>
<li class="t0"><code>?&gt;</code></li>
</ol>
<p>Finalment veurem com obtenir aquestes variables i fer les crides que  necessitem:</p>
<ol class="code">
<li class="t0"><code>function get_variables_php(){</code></li>
<li class="t2"><code> var object;</code></li>
<li class="t2"><code> $.ajax({</code></li>
<li class="t3"><code> async: false,</code></li>
<li class="t3"><code> type: "post",</code></li>
<li class="t3"><code> url: PHP_VARIABLE_PATH,</code></li>
<li class="t3"><code> success: function( vars ){</code></li>
<li class="t4"><code> object = get_object( vars );</code></li>
<li class="t4"><code> // THE CODE THAT USE THIS OBJECT</code></li>
<li class="t3"><code> }</code></li>
<li class="t2"><code> });</code></li>
<li class="t0"><code>}</code></li>
</ol>
<p>La funció que acabem de veure utilitza:</p>
<ol class="code">
<li class="t0"><code>function get_object( vars ){</code></li>
<li class="t2"><code> vars = vars.split(\'.\',3);</code></li>
<li class="t2"><code> this.var1 = vars[0];</code></li>
<li class="t2"><code> this.var2 = vars[2];</code></li>
<li class="t2"><code> this.var3 = vars[3];</code></li>
<li class="t2"><code> return this;</code></li>
<li class="t0"><code>}</code></li>
</ol>
<p>A partir d&#8217;aquí es podria fer definint els events que desitjem per a què  actuï tal i com necessitem fent les crides en funció d&#8217;aquestes  variables. El link de referència ens porta a un post de Cristal Web  titulat: <a title="Link de referència" href="http://www.cristalab.com/tips/javascript-no-intrusivo-css-y-php-c31507l/">&#8220;Javascript no intrusivo, CSS y PHP&#8221;</a>. Es tracta de literatura  per iniciar-se en el concepte de &#8220;Unobtrusive Scripting&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cerca Dicotòmica</title>
		<link>http://openpitu.com/2010/06/21/cerca-dicotomica/</link>
		<comments>http://openpitu.com/2010/06/21/cerca-dicotomica/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 08:14:04 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[CPP]]></category>
		<category><![CDATA[Programació]]></category>
		<guid isPermaLink="false">http://localhost/open-pitu/?p=16</guid>
		<description><![CDATA[[How-to del blog antic.]
Algorisme de cerca en un vector. Una cerca dicotòmica necessita l'entrada ordenada. A grans trets, el que fa és dividir en dos el vector i seguir buscant en el tros de vector on pot estar el nostre valor.]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-13" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/06/21/cerca-dicotomica/&amp;title=Cerca%20Dicot%C3%B2mica" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-13" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/06/21/cerca-dicotomica/&amp;title=Cerca%20Dicot%C3%B2mica" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-13" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/06/21/cerca-dicotomica/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-13" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/06/21/cerca-dicotomica/&amp;title=Cerca%20Dicot%C3%B2mica" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-13" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F21%2Fcerca-dicotomica%2F&amp;t=Cerca%20Dicot%C3%B2mica&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-13" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F21%2Fcerca-dicotomica%2F&amp;text=Cerca%20Dicot%C3%B2mica&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>[How-to del blog antic.]</p>
<p>Algorisme de cerca en un vector. Una cerca dicotòmica necessita l&#8217;entrada ordenada. A grans trets, el que fa és dividir en dos el vector i seguir buscant en el tros de vector on pot estar el nostre valor.</p>
<pre>#include &lt;iostream&gt;
#include &lt;vector&gt;
#include "stdlib.h"
using namespace std;
static void mostra_taula ( vector&lt;int&gt;&amp; t ) {
	int i = 0;
	while( i &lt; t.size() ){
		cout &lt;&lt; t[i] &lt;&lt; " " ;
		i++;
	}
	cout &lt;&lt; endl;
}
static void fusiona( vector&lt;int&gt;&amp; t, int inici, int mig, int fi) {
    vector&lt;int&gt; aux(fi - inici + 1);
    int i = inici; // index part esquerra del vector
    int j = mig + 1; // index part dreta del vector
    int k = 0; // index del vector aux
    //mentre no acabi cap index de t, l'element mÃ©s petit es copia al vector aux
    while ( i &lt;= mig and j &lt;= fi ) {
        if ( t[i] &lt; t[j] ) {
            aux[k] = t[i];
            ++i;
        }
        else {
            aux[k] = t[j];
            ++j;
        }
        ++k;
    }
 	//cas en quÃ¨ un vector ja s'ha copiat al complert
    while (i &lt;= mig) {
        aux[k] = t[i];
        ++i;
        ++k;
    }
    while (j &lt;= fi) {
        aux[k] = t[j];
        ++j;
        ++k;
    }
    // copia els elements guardats a aux a t
    for (int n = 0; n &lt; aux.size(); ++n){
       	t[inici + n] = aux[n];
    }
}
static void merge_sort( vector&lt;int&gt;&amp; t, int inici, int fi) {
    if ( inici &lt; fi ) {
        int mig = ( inici + fi ) / 2;
        merge_sort( t, inici, mig);
        merge_sort( t, mig + 1, fi);
        fusiona( t, inici, mig, fi);
    }
}
static int cerca_dicotomica( vector&lt;int&gt; t, int x, int l, int tamany ){
	int m = (l + tamany)/2;
	if( l== tamany-1 )
		return l;
	if( x &lt; t[m] )
		return cerca_dicotomica( t, x, l, m );
	else
		return cerca_dicotomica( t, x, m, tamany);
}
int main () {
  	//MODIFICA LA VARIABLE TAMANY PER DONAR MIDA A LA TAULA.
	int tamany = 8;
	//MODIFICA ELS DOS NOMBRES DONATS
	int x = 2;
	int y = 3;
	//ES GUARDA EL RESULTAT A LA VARIABLE
	int resultat;
	int resultatX, resultatY;
	//VECTOR AMB EL QUE ES TREBALLA
	vector&lt;int&gt; taula( tamany );
	int i = 0, aux;
	for (int i=0; i&lt;taula.size(); ++i) {
  		aux = rand( ) % tamany;
  		taula[i] = aux;
	}
	//mostra_taula( taula );
	merge_sort( taula, 0, tamany);
	mostra_taula( taula );
	resultatX = cerca_dicotomica( taula, x, 0, tamany );
	resultatY = cerca_dicotomica( taula, y, 0, tamany );
	cout &lt;&lt;" NOMBRE DE CELES ENTRE "&lt;&lt; x &lt;&lt; " i "&lt;&lt; y &lt;&lt;" = "&lt;&lt; resultatY - resultatX + 1 &lt;&lt; endl;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/06/21/cerca-dicotomica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
