<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Dupermag &#187; open source</title>
	<atom:link href="http://dupermag.com/category/programacion/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://dupermag.com</link>
	<description>Emprendimiento, Freelancing, Diseño, Desarrollo, y la Web 2.x. Por Armando Sosa</description>
	<lastBuildDate>Sat, 24 Dec 2011 20:16:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CodeHere</title>
		<link>http://dupermag.com/2010/03/17/codehere/</link>
		<comments>http://dupermag.com/2010/03/17/codehere/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 21:51:18 +0000</pubDate>
		<dc:creator>Armando Sosa</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[descargas]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://dupermag.com/?p=839</guid>
		<description><![CDATA[En un post anterior, les platiqu&#233; de mis eternos problemas para insertar snippets de c&#243;digo en este humilde blog. En aquella ocasi&#243;n hab&#237;a llegado a la conclusi&#243;n que Gist era la herramienta perfecta pero la verdad es que tiene un defecto: el c&#243;digo no se ve en el feed. As&#237; que se me ocurri&#243; que [...]]]></description>
			<content:encoded><![CDATA[	<p>En un post anterior, les platiqu&#233; de mis eternos problemas para insertar snippets de c&#243;digo en este humilde blog. En aquella ocasi&#243;n hab&#237;a llegado a la conclusi&#243;n que <a href="http://gist.github.com">Gist</a> era la herramienta perfecta pero la verdad es que tiene un defecto: el c&#243;digo no se ve en el feed.</p>

	<p>As&#237; que se me ocurri&#243; que no era necesario para nada escribir el c&#243;digo &#8220;a mano&#8221; en el post (lo cual apesta) sino que es m&#225;s f&#225;cil subirlo WordPress, adjuntarlo al post y luego usar un plugin para colorear el c&#243;digo. Y aqui les presento &#233;ste plugin.</p>

	<p>Bueno, lo presento despues del salto.<br />
<span id="more-839"></span></p>

	<p>CodeHere funciona de esta manera: </p>

	<p><ol><br />
<li>Instalas el plugin.</li><br />
<li>Creas tu c&#243;digo de ejemplo en un archivo en tu editor de c&#243;digo favorito.</li><br />
<li>Lo adjuntas a tu post usando el dialogo &#8220;Upload/Insert&#8221; (el mismo que usas para adjuntar fotos) pero no insertas nada, solo copias el nombre del archivo.</li><br />
<li>Lo insertas en tu post mediante un sencillo shortcode: &#091;codehere].</li><br />
</ol></p>

	<p>As&#237; que suponiendo que subes un archivo llamado html5.html, lo insertar&#225;s en t&#250; codigo escribiendo lo siguiente</p>

<code>[codehere html5.html lang=html]</code>

	<p>Y el resultado ser&#225; el siguiente:</p>

	<div class="codehere"><p><a class="show-raw" href="#">view raw</a> | <a href="http://dupermag.com/wp-content/uploads/2010/03/html5.html" target="_blank">download html5.html &darr;</a></p><div class="higlighted"><div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="hl-main" valign="top"><pre><span class="hl-brackets">&lt;</span><span class="hl-code">!</span><span class="hl-var">DOCTYPE</span><span class="hl-code"> </span><span class="hl-var">HTML</span><span class="hl-brackets">&gt;</span><span class="hl-code">
</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">html</span><span class="hl-code"> </span><span class="hl-var">lang</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">en-EN</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">
</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">head</span><span class="hl-brackets">&gt;</span><span class="hl-code">
    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">title</span><span class="hl-brackets">&gt;</span><span class="hl-code">This is an HTML5 document</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">title</span><span class="hl-brackets">&gt;</span><span class="hl-code">
    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">meta</span><span class="hl-code"> </span><span class="hl-var">charset</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">UTF-8</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">
</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">head</span><span class="hl-brackets">&gt;</span><span class="hl-code">
</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">body</span><span class="hl-brackets">&gt;</span><span class="hl-code">
    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">header</span><span class="hl-brackets">&gt;</span><span class="hl-code">
        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">h1</span><span class="hl-brackets">&gt;</span><span class="hl-code">With a header</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">h1</span><span class="hl-brackets">&gt;</span><span class="hl-code">
    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">header</span><span class="hl-brackets">&gt;</span><span class="hl-code">
    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">section</span><span class="hl-brackets">&gt;</span><span class="hl-code">
        And a section
    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">section</span><span class="hl-brackets">&gt;</span><span class="hl-code">        
</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">body</span><span class="hl-brackets">&gt;</span><span class="hl-code">
</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">html</span><span class="hl-brackets">&gt;</span></pre></td></tr></table></div></div><div class="raw" style="display:none;"><pre>&lt;!DOCTYPE HTML&gt;
&lt;html lang=&quot;en-EN&quot;&gt;
&lt;head&gt;
	&lt;title&gt;This is an HTML5 document&lt;/title&gt;
	&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;header&gt;
		&lt;h1&gt;With a header&lt;/h1&gt;
	&lt;/header&gt;
	&lt;section&gt;
		And a section
	&lt;/section&gt;		
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

	<p>Puedes tambien hacerlo mismo con css</p>

<code>[codehere code.css lang=css]</code><br />
<div class="codehere"><p><a class="show-raw" href="#">view raw</a> | <a href="http://dupermag.com/wp-content/uploads/2010/03/code.css" target="_blank">download code.css &darr;</a></p><div class="higlighted"><div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="hl-main" valign="top"><pre><span class="hl-identifier">.codehere</span><span class="hl-code"> </span><span class="hl-identifier">p</span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">text-align:</span><span class="hl-string">right</span><span class="hl-reserved"></span><span class="hl-code">;
    </span><span class="hl-reserved">margin:</span><span class="hl-number">0</span><span class="hl-reserved"></span><span class="hl-code">;
    </span><span class="hl-reserved">font-size:</span><span class="hl-number">11</span><span class="hl-string">px</span><span class="hl-reserved"></span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">
 
</span><span class="hl-identifier">.hl-main</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">font-size:</span><span class="hl-number">12</span><span class="hl-string">px</span><span class="hl-reserved"></span><span class="hl-code">;
    </span><span class="hl-reserved">font-family:</span><span class="hl-code">Monaco</span><span class="hl-code">, </span><span class="hl-code">Andale</span><span class="hl-code"> </span><span class="hl-code">mono</span><span class="hl-code">, </span><span class="hl-code">courier</span><span class="hl-code">, </span><span class="hl-string">monospace</span><span class="hl-reserved"></span><span class="hl-code">;
    </span><span class="hl-reserved">line-height:</span><span class="hl-number">18</span><span class="hl-string">px</span><span class="hl-reserved"></span><span class="hl-code">;
    </span><span class="hl-reserved">background:</span><span class="hl-var">#234</span><span class="hl-reserved"></span><span class="hl-code">;
    </span><span class="hl-reserved">overflow:</span><span class="hl-string">auto</span><span class="hl-reserved"></span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">
 
</span><span class="hl-identifier">.hl-default</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">color:</span><span class="hl-code"> </span><span class="hl-var">#fff</span><span class="hl-reserved"></span><span class="hl-code">;
</span><span class="hl-brackets">}</span></pre></td></tr></table></div></div><div class="raw" style="display:none;"><pre>.codehere p{
	text-align:right;
	margin:0;
	font-size:11px;
}

.hl-main {
	font-size:12px;
	font-family:Monaco, Andale mono, courier, monospace;
	line-height:18px;
	background:#234;
	overflow:auto;
}

.hl-default {
    color: #fff;
}</pre></div></div>

	<p>Y hasta ruby</p>

<code>[codehere sinatra.rb lang=ruby]</code><br />
<div class="codehere"><p><a class="show-raw" href="#">view raw</a> | <a href="http://dupermag.com/wp-content/uploads/2010/03/sinatra.rb_.txt" target="_blank">download sinatra.rb &darr;</a></p><div class="higlighted"><div class="hl-main"><table class="hl-table" width="100%"><tr><td class="hl-gutter" align="right" valign="top"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="hl-main" valign="top"><pre><span class="hl-identifier">get</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">/say/*/to/*</span><span class="hl-quotes">'</span><span class="hl-code"> </span><span class="hl-reserved">do</span><span class="hl-code">
  </span><span class="hl-comment">#</span><span class="hl-comment"> matches /say/hello/to/world</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-identifier">params</span><span class="hl-brackets">[</span><span class="hl-code">:</span><span class="hl-identifier">splat</span><span class="hl-brackets">]</span><span class="hl-code"> </span><span class="hl-comment">#</span><span class="hl-comment"> =&gt; [&quot;hello&quot;, &quot;world&quot;]</span><span class="hl-comment"></span><span class="hl-code">
</span><span class="hl-reserved">end</span><span class="hl-code">
 
</span><span class="hl-identifier">get</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">/download/*.*</span><span class="hl-quotes">'</span><span class="hl-code"> </span><span class="hl-reserved">do</span><span class="hl-code">
  </span><span class="hl-comment">#</span><span class="hl-comment"> matches /download/path/to/file.xml</span><span class="hl-comment"></span><span class="hl-code">
  </span><span class="hl-identifier">params</span><span class="hl-brackets">[</span><span class="hl-code">:</span><span class="hl-identifier">splat</span><span class="hl-brackets">]</span><span class="hl-code"> </span><span class="hl-comment">#</span><span class="hl-comment"> =&gt; [&quot;path/to/file&quot;, &quot;xml&quot;]</span><span class="hl-comment"></span><span class="hl-code">
</span><span class="hl-reserved">end</span></pre></td></tr></table></div></div><div class="raw" style="display:none;"><pre>get '/say/*/to/*' do
  # matches /say/hello/to/world
  params[:splat] # =&gt; [&quot;hello&quot;, &quot;world&quot;]
end

get '/download/*.*' do
  # matches /download/path/to/file.xml
  params[:splat] # =&gt; [&quot;path/to/file&quot;, &quot;xml&quot;]
end
</pre></div></div>

	<p>En este &#250;ltimo caso, WordPress no permite subir archivos con extensi&#243;n .rb (imagino que por cuestiones de seguridad) en este caso, el archivo tiene una extensi&#243;n <code>.rb.txt</code> pero la parte de txt la ignoraremos  en nuestro c&#243;digo.</p>

	<p>El plugin <a href="http://github.com/soska/CodeHere-plugin">est&#225; alojado en GitHub</a> y pueden descrgarlo la <a href="http://github.com/soska/CodeHere-plugin/downloads">&#250;ltima versi&#243;n desde aqu&#237;</a>.</p>

	<p>Si les es de utilidad alguna, un enlace siempre se agradece.</p>



 ]]></content:encoded>
			<wfw:commentRss>http://dupermag.com/2010/03/17/codehere/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CSML</title>
		<link>http://dupermag.com/2009/12/14/csml/</link>
		<comments>http://dupermag.com/2009/12/14/csml/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 19:43:41 +0000</pubDate>
		<dc:creator>Armando Sosa</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[csml]]></category>
		<category><![CDATA[dte]]></category>
		<category><![CDATA[duperrific]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://dupermag.com/?p=634</guid>
		<description><![CDATA[CSML es una pequeña clase (requiere PHP5) que permite generar tags de HTML, usando selectores de CSS]]></description>
			<content:encoded><![CDATA[	<p>CSML es una peque&#241;a clase (requiere PHP5) que permite generar tags de HTML, usando selectores de CSS sin salir de sus bloques de c&#243;digo, sin necesidad de hacer complicadas concatenaciones ni aprender sintaxis complicadas.</p>

	<p><a href="http://github.com/soska/csml/archives/master"><img src="http://dupermag.com/wp-content/uploads/2009/12/download-button.png" alt="download-button" title="download-button" width="300" height="100" /></a></p>

	<p>Hay una cosa que odio: mezclar bloques de PHP con bloques de HTML. Ser&#225; que CakePHP me ha mal acostumbrado a tener separadas las vistas de la l&#243;gica, pero de verdad me molesta c&#243;digo que se ve as&#237; (tomado del tema default de WordPress):</p>

	<p><script src="http://gist.github.com/256319.js?file=wordpress-sidebar.php"></script></p>

	<p>No se a ustedes, pero a m&#237; tanto <code> &lt;? ?&gt;  </code> me marea y luego se me hace muy dificil entender donde empieza y donde termina un bloque. Desgraciadamente &#233;ste tipo de programaci&#243;n es muy com&#250;n en el mundo de WordPress, algunos pupulares temas y plugins son verdaderos spaghettis indescifrables, y esto es en cierta manera porque asi es la manera en que WP est&#225; escrito.</p>

	<p>CakePHP, por otra parte, tiene una soluci&#243;n interesante para este <em>problema</em> (en realidad, creo que es una soluci&#243;n para un problema distinto, pero denme chance) en la forma del <a href="http://api.cakephp.org/class/html-helper#method-HtmlHelperdiv">HTMLHelper</a>, pero para tags complicados y con muchos  atributos, el c&#243;digo se vuelve demasiado y a mi siempre me cuesta recordar el orden de los parametros.</p>

	<p>Cuando decid&#237; aventarme a crear temas premium para WP, una soluci&#243;n para &#233;ste problema fue una de las principales razones para escribir el <a href="http://github.com/soska/dte">Duperrific Theme Engine</a> de donde finalmente extraigo lo que ahora les presento como CSML.</p>

	<p>Ejemplo:<br />
<script src="http://gist.github.com/256319.js?file=csml-example-1.php"></script></p>

	<p>Como ver&#225;s <code>csml::tag()</code> toma un selector como parametro y regresa un tag de HTML, mientras que <code>csml::entag()</code> toma una cadena y la envuelve con el selector designado en el segundo parametro. En el caso de <code>csml::entag()</code> el segundo parametro tambien puede ser un array de selectores, lo que har&#225; que anide los selectores uno dentro de otro, empezando por el &#250;ltimo selector del array.</p>

	<p>Aunque la forma m&#225;s facil de utilizar csml, es usando las dos funciones inclu&#237;das: <code>t()</code> y <code>en()</code> que son wrappers para <code>csml::tag()</code> y <code>csml::entag()</code> respectivamente y adem&#225;s imprimen el tag.</p>

	<p>Un ejemplo m&#225;s de la vida real:<br />
<script src="http://gist.github.com/256319.js?file=csml-example-2.php"></script></p>

	<p>Apenas estoy empezando en esto de liberar cosas que he hecho, as&#237; que espero que les resulte tan &#250;til como a m&#237; me ha resultado. Si la usan me avisan y si encuentran alg&#250;n bug me dicen o, mejor a&#250;n, <a href="http://github.com/soska/csml">forkean el proyecto</a> y lo arreglan.</p>

	<p><a href="http://github.com/soska/csml/"><img src="http://dupermag.com/wp-content/uploads/2009/12/download-button.png" alt="download-button" title="download-button" width="300" height="100" /></a></p>


 ]]></content:encoded>
			<wfw:commentRss>http://dupermag.com/2009/12/14/csml/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sobre CakePHP 1.2</title>
		<link>http://dupermag.com/2007/11/10/sobre-cakephp-12/</link>
		<comments>http://dupermag.com/2007/11/10/sobre-cakephp-12/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 18:35:35 +0000</pubDate>
		<dc:creator>Armando Sosa</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[recomendaciones]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://www.blog.armandososa.com/2007/11/10/sobre-cakephp-12/</guid>
		<description><![CDATA[No recuerdo si ya lo hab&#237;a mencionado, pero la pr&#243;xima versi&#243;n de Cake, la 1.2 va a ser una cosa impresionante. Aunque la versi&#243;n actual estable es una chulada, es una nada comparada con esta nueva versi&#243;n que muchos nos hemos decidido a usar aunque su API aun no sea 100% estable. Actualmente est&#225; en [...]]]></description>
			<content:encoded><![CDATA[	<p>No recuerdo si ya lo hab&#237;a mencionado, pero la pr&#243;xima versi&#243;n de <a href="http://cakephp.org">Cake</a>, la 1.2 va a ser una cosa impresionante. Aunque la versi&#243;n actual estable es una chulada, es una nada comparada con esta nueva versi&#243;n que muchos nos hemos decidido a usar aunque su API aun no sea 100% estable. Actualmente est&#225; en fase pre-beta y se espera que en muy poco tiempo salga la esperada versi&#243;n beta finalmente.</p>

	<p>Podr&#237;a describirles con detalle cuales son las ventajas de esta nueva versi&#243;n, pero no lo har&#233; por que hace muy poquito lo hizo <a href="http://www.carlosleopoldo.com/">Carlos Leopoldo</a> en <a href="http://www.carlosleopoldo.com/2007/10/15/lo-nuevo-en-cakephp-12-y-las-diferencias-con-cakephp-11/">este excelente post</a></p>

	<p>Leanlo y diganme si no se les hace agua la boca. A ver si un dia de estos me animo y rese&#241;o con detalle una o dos de las caracter&#237;sticas que m&#225;s me hacen feliz.</p>


 ]]></content:encoded>
			<wfw:commentRss>http://dupermag.com/2007/11/10/sobre-cakephp-12/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Una pregunta para mis amigos desarrolladores</title>
		<link>http://dupermag.com/2007/10/25/una-pregunta-para-mis-amigos-desarrolladores/</link>
		<comments>http://dupermag.com/2007/10/25/una-pregunta-para-mis-amigos-desarrolladores/#comments</comments>
		<pubDate>Fri, 26 Oct 2007 04:30:11 +0000</pubDate>
		<dc:creator>Armando Sosa</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[simpleflan]]></category>

		<guid isPermaLink="false">http://www.blog.armandososa.com/2007/10/25/una-pregunta-para-mis-amigos-desarrolladores/</guid>
		<description><![CDATA[Como hace poco les adelante, estoy trabajando en un nuevo proyecto que increiblemente est&#225; casi listo para declararlo una versi&#243;n alfa ( Los que me conocen saben lo increible que es esto, dada mi reputaci&#243;n de creador de vaporware). Pero a raiz de esto me han salido algunas dudas: Dede el principio he pensado en [...]]]></description>
			<content:encoded><![CDATA[	<p>Como hace poco les adelante, estoy trabajando en un nuevo proyecto que increiblemente est&#225; casi listo para declararlo una versi&#243;n alfa ( Los que me conocen saben lo increible que es esto, dada mi reputaci&#243;n de creador de vaporware).</p>

	<p>Pero a raiz de esto me han salido algunas dudas: Dede el principio he pensado en liberarlo como codigo abierto pero la verdad es que la tarea me asusta un poco porque es algo que jamas he hecho y hasta ahora ni siquiera he participado activamente en ning&#250;n proyecto (mi participacion en CakePHP es muuuy pasiva). As&#237; que no tengo ni idea de como empezar.</p>

	<p>Ademas no se que licencia escoger ni que usar para administrar el proyecto ni donde hospedarlo&#8230; bueno, la verdad es que no se nada.</p>

	<p>Asi que si en la audiencia hay gente que sepa de &#233;sto y tenga interes en orientarme y pasarme tips o ligas que me sean de utilidad, pues se los agradecer&#237;a mucho.</p>


 ]]></content:encoded>
			<wfw:commentRss>http://dupermag.com/2007/10/25/una-pregunta-para-mis-amigos-desarrolladores/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: dupermag.com @ 2012-02-12 08:23:40 by W3 Total Cache -->
