<?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>FactorSim &#187; Programación</title>
	<atom:link href="http://www.factorsim.info/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.factorsim.info</link>
	<description>Solutions in media</description>
	<lastBuildDate>Thu, 22 Dec 2011 12:55:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Steve Jobs, loco o genio?</title>
		<link>http://www.factorsim.info/2011/10/26/steve-jobs-loco-o-genio/</link>
		<comments>http://www.factorsim.info/2011/10/26/steve-jobs-loco-o-genio/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 15:25:21 +0000</pubDate>
		<dc:creator>Victor</dc:creator>
				<category><![CDATA[Cultura]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Propiedad Intelectual]]></category>
		<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=1513</guid>
		<description><![CDATA[
Todos o casi todos sabemos que hace poco murió Steve Jobs, lo que realmente no saben muchos es si realmente era un genio o estaba muy mal de la cabeza o incluso ambas cosas a la vez.
Desde mi punto de vista, estaba fatal de la cabeza y si consiguió grandes cosas en la vida fue sobretodo porque se juntó con las personas adecuadas en el momento adecuado.
Mucha gente destaca que detrás de Jobs siempre estuvo Wozniak que era quien realmente hacía el trabajo.
17 días después de su muerte ya ha ...]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-1516" href="http://www.factorsim.info/2011/10/26/steve-jobs-loco-o-genio/jobs_and_wozniak_1975-75644511/"><img class="size-medium wp-image-1516 alignright" style="margin: 10px;" title="jobs and wozniak" src="http://www.factorsim.info/wp-content/2011/10/jobs_and_wozniak_1975-75644511-534x400.jpg" alt="" width="331" height="245" /></a><br />
Todos o <strong>casi</strong> todos sabemos que hace poco murió Steve Jobs, lo que realmente no saben muchos es si realmente era un genio o estaba muy mal de la cabeza o incluso ambas cosas a la vez.</p>
<p>Desde mi punto de vista, estaba <strong>fatal de la cabeza</strong> y si consiguió grandes cosas en la vida fue sobretodo porque se juntó con las personas adecuadas en el momento adecuado.</p>
<p>Mucha gente destaca que detrás de Jobs siempre estuvo <a href="http://es.wikipedia.org/wiki/Stephen_Wozniak">Wozniak</a> que era quien realmente hacía el trabajo.</p>
<p><strong>17 días</strong> después de su muerte ya ha aparecido su biografía autorizada en las que destacan perlas como “voy a destruir Android, porque es un <strong>producto robado</strong>. Voy a iniciar una <strong>guerra termonuclear</strong> en este asunto”.</p>
<p>Otra buena también&#8230;“dedicaré mi último aliento, si es necesario, y gastaré cada penique de  los 40.000 millones de dólares que tiene Apple en el banco, para  arreglar este error”. Esta animadversión contra el <strong>sistema operativo</strong> para <strong>smartphones</strong> de <strong>Google </strong>podría explicar la cruenta guerra de patentes que está peleando <strong>Apple</strong> contra varios fabricantes de teléfonos móviles.</p>
<p><a rel="attachment wp-att-1519" href="http://www.factorsim.info/2011/10/26/steve-jobs-loco-o-genio/android_ios_2/"><img class="aligncenter size-medium wp-image-1519" title="android_ios_2" src="http://www.factorsim.info/wp-content/2011/10/android_ios_2-544x400.jpg" alt="" width="544" height="400" /></a></p>
<p>También era conocido por su forma de tratar a muchos empleados. Tenía una cruel facilidad para llevar a sus empleados al borde de un  ataque de nervios y luego cargárselos; pocos quisieron trabajar con él  dos veces.</p>
<p>Además de todo esto hay que sumar sus creencias místicas que le llevaron a la muerte. A Steve Jobs cuando le detectaron el <strong>cáncer de páncreas</strong>, era justamente un tipo muy especial que por suerte era <strong>fácilmente tratable</strong>. El problema vino cuando decidió seguir su camino para curarlo mediante <a href="http://www.meneame.net/backend/go.php?id=1415066">medicinas alternativas</a>. Esto le costó que un día tuviera que ingresar de urgencias en el hospital en un estado lamentable y costarle definitivamente la vida.</p>
<p>Viendo un poco la visión general, saquen sus propias conclusiones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2011/10/26/steve-jobs-loco-o-genio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Selenium IDE: testeo automático para webs</title>
		<link>http://www.factorsim.info/2011/10/19/selenium-ide-testeo-automatico-para-webs/</link>
		<comments>http://www.factorsim.info/2011/10/19/selenium-ide-testeo-automatico-para-webs/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 10:34:47 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=1482</guid>
		<description><![CDATA[En Factorsim siempre nos alegra encontrar herramientas de esas que facilitan enormemente la vida. Ya no nos acordamos de lo tedioso que era escribir código javascript antes de jQuery o de debugar código mediante alerts en lugar de usar firebug.
Precisamente en esta linea, hoy he estado evaluando una utilidad que cubre un vacío importante: Selenium IDE. Se trata de unos plugins y un programa servidor que permiten grabar o crear guiones de testeo (habeis grabado alguna vez una macro con word/openoffice? Pues algo muy similar) para después poder ejecutarlos en ...]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-1483" title="selenium-ide" src="http://www.factorsim.info/wp-content/2011/10/selenium-ide-307x400.gif" alt="" width="307" height="400" />En Factorsim siempre nos alegra encontrar herramientas de esas que facilitan enormemente la vida. Ya no nos acordamos de lo tedioso que era escribir código javascript antes de <a href="http://jquery.com/" target="_blank">jQuery</a> o de debugar código mediante alerts en lugar de usar <a href="http://getfirebug.com/" target="_blank">firebug</a>.</p>
<p>Precisamente en esta linea, hoy he estado evaluando una utilidad que cubre un vacío importante: <a href="http://seleniumhq.org/projects/ide/" target="_blank">Selenium IDE</a>. Se trata de unos plugins y un programa servidor que permiten grabar o crear guiones de testeo (habeis grabado alguna vez una macro con word/openoffice? Pues algo muy similar) para después poder ejecutarlos en masa de manera automática y en diferentes navegadores.</p>
<p>Los comandos que ofrece para usar desde los guiones son muchos y potentes. La principal limitación que le veo a primer vistazo es que no es posible interactuar con plugins (flash, java, etc&#8230;), aunque parecería que la tendencia hacia HTML5 va a hacer esto cada vez un problema menos importante.</p>
<p>Nuestro objetivo es utilizar esta herramienta para instaurar una cultura de testeo automatizado (&#8220;un bug no se da por corregido hasta que no tenga un guión de testeo&#8221;), lanzar tests automáticos cada noche y así no volver a tener una regresión sin enterarnos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2011/10/19/selenium-ide-testeo-automatico-para-webs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript PC Emulator</title>
		<link>http://www.factorsim.info/2011/10/10/javascript-pc-emulator/</link>
		<comments>http://www.factorsim.info/2011/10/10/javascript-pc-emulator/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 10:31:54 +0000</pubDate>
		<dc:creator>Victor</dc:creator>
				<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=1457</guid>
		<description><![CDATA[Sorprendente de lo que es capaz HTML 5 y Javascript
He encontrado navegando por páginas de tecnología un emulador x86 implementado en javascript y que es capaz de ejecutar Linux.
Además permite guardar cosas en memoria gracias a las facilidades de Local Storage que provee HTML5
Aquí tenéis el emulador. Se entra con usuario root y sin password.
http://stud.hro.nl/0814604/jslinuxdemo/emulator.html
Se atormenta una vecina con HTML 5 ya vereis&#8230;
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">Sorprendente de lo que es capaz HTML 5 y Javascript</p>
<p>He encontrado navegando por páginas de tecnología un emulador x86 implementado en javascript y que es capaz de ejecutar Linux.</p>
<p>Además permite guardar cosas en memoria gracias a las facilidades de <em>Local Storage</em> que provee HTML5</p>
<p>Aquí tenéis el emulador. Se entra con usuario root y sin password.</p>
<p><a href="http://stud.hro.nl/0814604/jslinuxdemo/emulator.html">http://stud.hro.nl/0814604/jslinuxdemo/emulator.html</a><a rel="attachment wp-att-1458" href="http://www.factorsim.info/2011/10/10/javascript-pc-emulator/linux_js_html5/"><img class="size-medium wp-image-1458 aligncenter" title="linux_js_html5" src="http://www.factorsim.info/wp-content/2011/10/linux_js_html5-500x400.png" alt="" width="500" height="400" /></a></p>
<p>Se atormenta una vecina con HTML 5 ya vereis&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2011/10/10/javascript-pc-emulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un pequeño truco de diseño para Moodle</title>
		<link>http://www.factorsim.info/2011/05/24/un-pequeno-truco-de-diseno-para-moodle/</link>
		<comments>http://www.factorsim.info/2011/05/24/un-pequeno-truco-de-diseno-para-moodle/#comments</comments>
		<pubDate>Tue, 24 May 2011 22:26:25 +0000</pubDate>
		<dc:creator>tak</dc:creator>
				<category><![CDATA[LMS]]></category>
		<category><![CDATA[Moodle]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=1279</guid>
		<description><![CDATA[En la última MoodleMoot, realizamos un taller sobre cómo Moodle no tiene porqué ser feo.
 Moodle no tiene que ser feo 
 View more presentations from Factorsim 

Durante el taller, presentamos entre otras técnicas, el uso de JQuery y CSS para modificar ciertos comportamientos del tema gráfico y crear una sensación de dinamismo. En concreto hicimos dos pequeños códigos:
En el header.html, añadimos la librería de JQUERY (si no está ya instalada):
&#60;script type=&#8221;text/javascript&#8221; src=&#8221;&#60;?php echo $CFG-&#62;themewww .&#8217;/&#8217;. current_theme() ?&#62;/jquery-1.2.6.min.js&#8221;&#62;&#60;/script&#62;
y posteriormente añadimos este código:
&#60;script language=&#8221;javascript&#8221;&#62;
$(document).ready(function() {
$(&#8220;#left-column&#8221;).click(function(){
$(&#8220;#middle-column&#8221;).fadeIn();
$(this).toggleClass(&#8220;active&#8221;); return false;
});
$(&#8220;#right-column&#8221;).click(function(){
$(&#8220;#middle-column&#8221;).fadeOut();
$(this).toggleClass(&#8220;active&#8221;); return false;
});
});
&#60;/script&#62;
El código lo ...]]></description>
			<content:encoded><![CDATA[<p>En la última <a title="http://www.moodlemoot.net" href="http://www.moodlemoot.net" target="_blank">MoodleMoot</a>, realizamos un taller sobre cómo <a title="http://www.slideshare.net/tumbukta/101012-mootes2010" href="http://www.slideshare.net/tumbukta/101012-mootes2010" target="_blank"><strong>Moodle no tiene porqué ser feo.</strong></a></p>
<div style="width:510px" id="__ss_5753500"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/tumbukta/101012-mootes2010" title="Moodle no tiene que ser feo">Moodle no tiene que ser feo</a></strong> <object id="__sse5753500" width="510" height="426"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=101012mootes2010-101112061856-phpapp02&#038;stripped_title=101012-mootes2010&#038;userName=tumbukta" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5753500" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=101012mootes2010-101112061856-phpapp02&#038;stripped_title=101012-mootes2010&#038;userName=tumbukta" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="510" height="426"></embed></object>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/tumbukta">Factorsim</a> </div>
</p></div>
<p>Durante el taller, presentamos entre otras técnicas, el uso de JQuery y CSS para modificar ciertos comportamientos del tema gráfico y crear una sensación de dinamismo. En concreto hicimos dos pequeños códigos:</p>
<p>En el header.html, añadimos la librería de <a title="http://jquery.com/" href="http://jquery.com/" target="_blank"><strong>JQUERY</strong></a> (si no está ya instalada):</p>
<p><span style="color: #888888;">&lt;script type=&#8221;text/javascript&#8221; src=&#8221;&lt;?php echo $CFG-&gt;themewww .&#8217;/&#8217;. current_theme() ?&gt;/jquery-1.2.6.min.js&#8221;&gt;&lt;/script&gt;</span></p>
<p>y posteriormente añadimos este código:</p>
<p><span style="color: #888888;">&lt;script language=&#8221;javascript&#8221;&gt;<br />
$(document).ready(function() {<br />
$(&#8220;#left-column&#8221;).click(function(){<br />
$(&#8220;#middle-column&#8221;).fadeIn();<br />
$(this).toggleClass(&#8220;active&#8221;); return false;<br />
});<br />
$(&#8220;#right-column&#8221;).click(function(){<br />
$(&#8220;#middle-column&#8221;).fadeOut();<br />
$(this).toggleClass(&#8220;active&#8221;); return false;<br />
});<br />
});<br />
&lt;/script&gt;</span></p>
<p>El código lo que hace es algo tan &#8220;sencillo&#8221; cómo ocultar una columna al clicar en ella. No tiene una utilidad práctica, pero permite ver la potencia de trabajar con código de programación en los temas gráficos.</p>
<p>El <strong>segundo código</strong> es más divertido, primero añadimos un código php en el header.html para obtener la ciudad del alumno y pintarla en la construcción del div page:</p>
<p><span style="color: #888888;">&lt;div id=&#8221;page&#8221; &lt;?php<br />
echo &#8220;class=&#8217;&#8221;;<br />
if($USER-&gt;city==&#8221;") echo &#8220;default&#8221;;<br />
else echo $USER-&gt;city;<br />
echo &#8220;&#8216;&#8221;;<br />
?&gt;<br />
&gt;</span></p>
<p>Según esto, el &lt;div id=&#8221;page&#8221;&gt; pasaría a ser &lt;div id=&#8221;page&#8221; class=&#8221;madrid&#8221;&gt;, por ejemplo.</p>
<p>Una vez que sabemos un dato de usuario podemos hacer cambios y juegos visuales vía css, por ejemplo:</p>
<p><span style="color: #888888;">.madrid #header,<br />
.madrid #header-home{<br />
background-image:url(barca.jpg);<br />
background-repeat:repeat;<br />
height:120px;<br />
}</span></p>
<p>Lo que hacemos con el código es pintar una imagen del Barça a todos aquellos que son del Madrid. Aparte de la pequeña broma, nos permite  personalizar la apariencia dependiendo de la variable que leamos del usuario.</p>
<p>Quedaría más o menos así:<br />
<img class="aligncenter size-medium wp-image-1281" title="cabecera" src="http://www.factorsim.info/wp-content/2011/05/cabecera-600x223.jpg" alt="" width="600" height="223" /></p>
<p>Con esto ya podemos ampliar un poquito más los límites de Moodle&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2011/05/24/un-pequeno-truco-de-diseno-para-moodle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Youtube RSS Player</title>
		<link>http://www.factorsim.info/2010/05/19/youtube-rss-player-2/</link>
		<comments>http://www.factorsim.info/2010/05/19/youtube-rss-player-2/#comments</comments>
		<pubDate>Wed, 19 May 2010 16:08:09 +0000</pubDate>
		<dc:creator>andreu</dc:creator>
				<category><![CDATA[e-learning]]></category>
		<category><![CDATA[Moodle]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=1009</guid>
		<description><![CDATA[Youtube RSS Player es un bloque de Moodle desarrollado por FactorSIM que integra las funcionalidades de un reproductor de vídeos de Youtube y de un canal RSS, es decir, permite añadir un canal RSS de Youtube, por ejemplo de un usuario en concreto, y la reproducción del vídeo en el mismo bloque.

Requisitos 
Moodle 1.8 o superior, aunque es posible que funcione para versiones anteriores, pero no está probado.
Uso del bloque 
La configuración de Youtube RSS Player es muy sencilla, una vez tenemos un curso creado, entramos al modo edición. En la ...]]></description>
			<content:encoded><![CDATA[<p>Youtube RSS Player es un bloque de Moodle desarrollado por <a href="http://www.factorsim.com" target="_blank"><strong>FactorSIM</strong></a> que integra las funcionalidades de un reproductor de vídeos de Youtube y de un canal RSS, es decir, permite añadir un canal RSS de Youtube, por ejemplo de un usuario en concreto, y la reproducción del vídeo en el mismo bloque.</p>
<div align="center"><img class="aligncenter size-full wp-image-1010" title="Youtube RSS player" src="http://www.factorsim.info/wp-content/2010/05/YoutubeRSSplayer.png" alt="Youtube RSS player" width="244" height="270" /></div>
<p><strong>Requisitos </strong></p>
<p>Moodle 1.8 o superior, aunque es posible que funcione para versiones anteriores, pero no está probado.</p>
<p><strong>Uso del bloque </strong></p>
<p>La configuración de Youtube RSS Player es muy sencilla, una vez tenemos un curso creado, entramos al modo edición. En la opción “Añadir bloque” nos aparecerá la opción de añadirlo. Una vez añadido, entramos en la edición del bloque y únicamente hemos de rellenar 2 campos:</p>
<ul>
<li>Cargar JQuery localmente: Si ya usamos JQuery en nuestro Moodle podemos deshabilitar la opción, en caso contrario o de duda lo dejamos activado.</li>
<li>URL del canal RSS de youtube: Introducimos la dirección web del canal. En este caso es interesante indicar que existe una gran variedad de opciones, podemos publicar canales RSS de novedades de una etiqueta concreta o de un usuario, entre otras. En el <a title="Canales RSS de youtube" href="http://www.youtube.com/rssls" target="_blank">siguiente enlace</a> podemos ver una descripción más detallada.</li>
</ul>
<p><strong>Enlaces </strong></p>
<p>Youtube RSS Player en Moodle:<br />
<a title="Youtube RSS Player en Moodle" href="http://moodle.org/mod/data/view.php?d=13&amp;rid=2392&amp;filter=1" target="_blank">http://moodle.org/mod/data/view.php?d=13&amp;rid=2392&amp;filter=1</a></p>
<p>Descarga directa de RSS Player:<br />
<a title="Descarga directa de RSS Player" href="http://factorsim.info/proyectos/youtuberssplayer/youtube_list.zip" target="_blank">http://factorsim.info/proyectos/youtuberssplayer/youtube_list.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2010/05/19/youtube-rss-player-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Conversión de archivos .doc con php</title>
		<link>http://www.factorsim.info/2010/01/13/conversion-de-archivos-doc-con-php/</link>
		<comments>http://www.factorsim.info/2010/01/13/conversion-de-archivos-doc-con-php/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 12:02:21 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Factorsim]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=873</guid>
		<description><![CDATA[Trabajando en 2 proyectos similares de cursos para varios clientes (uno del sector banca y otro institucional) nos encontramos con la necesidad de pasar un archivo doc a html.
Las posibilidades eran hacerlo mediante código en el servidor o que los usuarios de la aplicación enviaran directamente los archivos html.

El método más &#8220;cómodo&#8221; para usuarios no técnicos es guardar el archivo en formato html desde el propio word. Haciéndolo de esta forma se introduce una cantidad exagerada de tags html, unas que solo sirven para poner estilos y que se podrían ...]]></description>
			<content:encoded><![CDATA[<p>Trabajando en <strong>2 proyectos</strong> similares de cursos para varios clientes (uno del sector banca y otro institucional) nos encontramos con la necesidad de pasar un archivo doc a html.</p>
<p>Las posibilidades eran hacerlo mediante código en el servidor o que los usuarios de la aplicación enviaran directamente los archivos html.</p>
<p style="text-align: center;"><img class="size-medium wp-image-880 aligncenter" title="Tamaño" src="http://www.factorsim.info/wp-content/2010/01/1083340_70894012-466x350.jpg" alt="Tamaño" width="466" height="350" /></p>
<p>El método más &#8220;cómodo&#8221; para usuarios no técnicos es guardar el archivo en formato html desde el propio <em>word</em>. Haciéndolo de esta forma se introduce una cantidad exagerada de tags <strong>html, </strong>unas que solo sirven para<strong> </strong>poner <strong>estilos </strong>y que se podrían poner de forma más<strong> cómoda</strong> y las que corresponden a la <strong>estructura</strong> del html están en un formato que, como no, <strong>no sigue el <em><span style="color: #800000;">estandard</span></em></strong>.</p>
<p>Así que buscando por la red al final se optó por hacer la<strong> conversión directamente en el servidor</strong> mediante <strong>php</strong> y <strong>openoffice</strong> de la siguiente forma:</p>
<p>En el editor de textos de openoffice (<strong>writer</strong>) crear una <strong>macro</strong> como la que sigue:</p>
<blockquote><p>REM  *****  BASIC  *****</p>
<p>Sub odttohtml (Path)<br />
Dim Url as String<br />
Url = convertToUrl(Path)</p>
<p>Set oDesk = CreateUnoService( &#8220;com.sun.star.frame.Desktop&#8221; )<br />
Dim OpenParam(1) As New com.sun.star.beans.PropertyValue &#8216;Parameters to open the doc<br />
OpenParam(0).Name=&#8221;Hidden&#8221; : OpenParam(0).Value=True<br />
Dim Doc<br />
Doc = oDesk.loadComponentFromURL(Url, &#8220;_blank&#8221;, 0, OpenParam())</p>
<p>Dim outputfile as String<br />
outputfile = Left( Path, Len( Path ) &#8211; 3 ) + &#8220;html&#8221;</p>
<p>Dim SaveParam(0) As New com.sun.star.beans.PropertyValue<br />
SaveParam(0).Name=&#8221;FilterName&#8221; : SaveParam(0).Value=&#8221;HTML (StarWriter)&#8221;</p>
<p>Url = convertToUrl(outputfile)<br />
Doc.storeAsURL(Url, SaveParam() )<br />
Doc.close( True )<br />
End Sub</p></blockquote>
<p>Con la función <strong>odttohtml</strong> se consigue pasar un documento doc a html con un formato &#8220;casi&#8221; estricto (algunos tags no se cierran).</p>
<p>Una vez guardada la macro, ya se puede invocar mediante php con el siguiente código:</p>
<blockquote><p>shell_exec(&#8216;soffice -headless &#8220;macro:///Standard.Module1.odttohtml(doc_file.doc)&#8221;&#8216;);</p></blockquote>
<p>Esto nos da como resultado un documento html bastante aceptable para poder ser usado por &#8220;<em><span style="color: #800000;"><strong>humanos</strong></span></em>&#8221; y que sigue el <em><span style="color: #800000;"><strong>estandard</strong></span></em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2010/01/13/conversion-de-archivos-doc-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source CMS Award 2009</title>
		<link>http://www.factorsim.info/2009/11/13/open-source-cms-award-2009/</link>
		<comments>http://www.factorsim.info/2009/11/13/open-source-cms-award-2009/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 11:27:17 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Factorsim]]></category>
		<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Innovación]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=675</guid>
		<description><![CDATA[En los premios de &#8220;Open Source CMS Award&#8221; de 2009 ha sido premiado Drupal en la categoria de Mejor PHP Open Source CMS seguido de WordPress y Joomla!.
Lista de premiados:
Ganador General:

WordPress
MODx
SilverStripe

Open Source CMS más prometedor:

ImpressCMS
Pixie
Pligg

Mejor PHP Open Source CMS:

Drupal
WordPress
Joomla!

Mirando el histórico desde el 2006 se ve una progresión de Drupal que ha logrado por segundo año consecutivo ganar el premio al Mejor PHP Open Source CMS y está entre los mejores CMS.
Recientemente se ha publicado la notícia que La Casa Blanca (http://www.whitehouse.gov/) ha migrado los contenidos de su web a ...]]></description>
			<content:encoded><![CDATA[<p>En los premios de &#8220;<a href="http://www.packtpub.com/award" target="_blank">Open Source CMS Award</a>&#8221; de 2009 ha sido premiado <strong>Drupal</strong> en la categoria de Mejor PHP Open Source CMS seguido de <strong>WordPress</strong> y Joomla!.</p>
<p>Lista de premiados:</p>
<p><strong>Ganador General:</strong></p>
<ol>
<li><strong>WordPress</strong></li>
<li>MODx</li>
<li>SilverStripe</li>
</ol>
<p><strong>Open Source CMS más prometedor</strong>:</p>
<ol>
<li>ImpressCMS</li>
<li>Pixie</li>
<li>Pligg</li>
</ol>
<p><strong>Mejor PHP Open Source CMS</strong>:</p>
<ol>
<li><strong>Drupal</strong></li>
<li><strong>WordPress</strong></li>
<li>Joomla!</li>
</ol>
<p>Mirando el <a href="http://www.packtpub.com/open-source-cms-award-previous-winners" target="_blank">histórico</a> desde el 2006 se ve una progresión de <strong>Drupal</strong> que ha logrado por segundo año consecutivo ganar el premio al <strong>Mejor PHP Open Source CMS</strong> y está entre los mejores CMS.</p>
<p>Recientemente se ha publicado la <a href="http://buytaert.net/whitehouse-gov-using-drupal" target="_blank">notícia</a> que <strong>La Casa Blanca</strong> (<a href="http://www.whitehouse.gov/" target="_blank">http://www.whitehouse.gov/</a>) ha migrado los contenidos de su web a <strong>Drupal</strong> lo cual indica que es un CMS con la suficiente estabilidad, funcionalidad y seguridad para llevar a cabo sites tan complejos como este.</p>
<p><img title="drupal-whitehouse-gov-500x500" src="http://www.factorsim.info/wp-content/2009/11/drupal-whitehouse-gov-500x500.jpg" alt="drupal-whitehouse-gov-500x500" width="500" height="328" /></p>
<p>Tanto <strong>Drupal</strong> como <strong>WordPress</strong> son los CMS que habitualmente implementamos en proyectos, por su potencia y versatilidad en el caso de Drupal y por la facilidad de uso en WordPress. Coincide que en dos semanas saldrá publicado en <a title="http://mosaic.uoc.edu/" href="http://mosaic.uoc.edu/" target="_blank"><strong>MOSAIC</strong></a>, un artículo que <a title="http://www.factorsim.info/2009/09/07/comparando-wordpress-joomla-drupal-y-plone-2/" href="http://www.factorsim.info/2009/09/07/comparando-wordpress-joomla-drupal-y-plone-2/" target="_blank">compara Drupal, Joomla, WordPress y Plone.</a></p>
<p>Varios ejemplos de sites que ha realizado <strong><span style="color: #004080;">Factor</span><span style="color: #92df00;">Sim</span></strong> con <strong>Drupal</strong> son:</p>
<p>Las webs segmentadas por países de <strong>Roca</strong>, entre ellos <strong>Roca protugal</strong> (<a href="http://www.roca-sa.com/" target="_blank">http://www.roca-sa.com/</a>):</p>
<p><img class="alignnone size-medium wp-image-678" title="roca_sa" src="http://www.factorsim.info/wp-content/2009/11/roca_sa-500x247.png" alt="roca_sa" width="500" height="247" /></p>
<p>Una web autogestionada para <strong>Clic-Austral</strong> (<a href="http://clic-austral.com/" target="_blank">http://clic-austral.com/</a>):</p>
<p><img class="alignnone size-medium wp-image-696" title="clic-austral" src="http://www.factorsim.info/wp-content/2009/11/clic-austral1-346x350.png" alt="clic-austral" width="346" height="350" /></p>
<p>A nosotros, esta noticia nos ha traido una nueva tarea. Probar MODx y SilverStripe para evaluar porqué han sido elegidos entre los mejores CMS del mundo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2009/11/13/open-source-cms-award-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Visualizador de datos para TNS-Sofres</title>
		<link>http://www.factorsim.info/2009/07/06/visualizador-de-datos-para-tns-sofres/</link>
		<comments>http://www.factorsim.info/2009/07/06/visualizador-de-datos-para-tns-sofres/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 13:18:54 +0000</pubDate>
		<dc:creator>tak</dc:creator>
				<category><![CDATA[Factorsim]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=356</guid>
		<description><![CDATA[TNS (Sofres Audiencia de Medios, S.A) ha confiado a DigitalSeed, por su conocimiento especializado en marketing en Internet, y a FactorSim, por su experiencia en el desarrollo de aplicaciones web 2.0 complejas, el desarrollo de una aplicación interactiva que permite a la agencia mostrar y dar acceso al recopilatorio de datos sobre la audiencia de TV, desde 1996 hasta la actualidad.
Con el anuario 2008, TNS deja atrás un modelo estático de presentación de la información, utilizando por primera vez tecnologías de lectura de XML, con integración de otros elementos de ...]]></description>
			<content:encoded><![CDATA[<p><a title="TNS-global" href="http://www.tnsglobal.com/" target="_blank"><strong>TNS (Sofres Audiencia de Medios, S.A)</strong></a> ha confiado a <strong><a title="Digital seed" href="http://www.digitalseed.es/" target="_blank">DigitalSeed</a></strong>, por su conocimiento especializado en marketing en Internet, y a <strong><a title="Factorsim" href="http://www.factorsim.com" target="_blank">FactorSim</a></strong>, por su experiencia en el desarrollo de aplicaciones web 2.0 complejas, el desarrollo de una aplicación interactiva que permite a la agencia mostrar y dar acceso al recopilatorio de datos sobre la audiencia de TV, desde 1996 hasta la actualidad.</p>
<p>Con el anuario 2008, TNS deja atrás un modelo estático de presentación de la información, utilizando por primera vez tecnologías de lectura de <strong>XML</strong>, con integración de otros elementos de programación que permiten visualizar y acceder a los contenidos de manera más gráfica y flexible. La información se basa en datos sobre el consumo y la cuota, el perfil de cadenas y el ranking de programas y emisiones, entre otros.</p>
<p>Para ello, desde <strong>Factorsim</strong> hemos desarrollado un <strong>frontend web</strong> para mostrar los datos de audiencias de una manera más ágil que la permite la versión impresa. Partiendo de ficheros de datos proporcionados por TNS que son procesados mediante un conjunto de instrucciones pre-programadas, guardamos la información que contienen en formato <a title="JSON" href="http://es.wikipedia.org/wiki/JSON" target="_blank"><strong>JSON</strong></a>.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-357" title="grafica_curvas" src="http://www.factorsim.info/wp-content/2009/07/grafica_curvas.jpg" alt="grafica_curvas" width="550" height="437" /></p>
<p>Una vez hecho esto, una aplicación JavaScript se encarga de leer las tablas y proporciona las distintas visualizaciones mediante una treintena de plantillas. Algunas de ellas generan tablas numéricas, otras dibujan diferentes tipos de gráficas a partir de los mismos datos. En las tablas más complejas y extensas podemos ver los datos por grupos mediante un selector y mostrar gráficas adicionales en ventanas independientes a petición del usuario.</p>
<p>La aplicación interactiva desarrollada puede ejecutarse desde un CD, visualizarse a través de un navegador o consultarse desde un servidor web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2009/07/06/visualizador-de-datos-para-tns-sofres/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Un hack de moodle</title>
		<link>http://www.factorsim.info/2009/05/14/un-hack-de-moodle/</link>
		<comments>http://www.factorsim.info/2009/05/14/un-hack-de-moodle/#comments</comments>
		<pubDate>Thu, 14 May 2009 13:48:44 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Moodle]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=202</guid>
		<description><![CDATA[Al programar un sitio web en moodle nos ha surgido la necesidad de añadir un archivo de estilos (css) dependiendo de si el usuario es un estudiante y no incluirlo de lo contrario.
Para ello hay que editar uno de los archivos del tema que se utiliza, se puede editar el &#8220;header.html&#8221; o bien el &#8220;meta.php&#8221; .
El código que hay que añadir al archivo es el siguiente:
&#60;?php
global $CFG;
global $course;
if (!is_null($course-&#62;id)) {
$context = get_context_instance(CONTEXT_COURSE, $course-&#62;id);   // Course context
$student_role=array_shift(get_roles_with_capability(&#8216;moodle/legacy:student&#8217;, CAP_ALLOW, $context));
$user_roles=get_user_roles($context);
foreach($user_roles as $value){
if($value-&#62;name==$student_role-&#62;name){
print(&#8216;&#60;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;&#8216;.$CFG-&#62;httpsthemewww.&#8217;/standard/student.css&#8221; /&#62;&#8217;);
break;
}
}
}
?&#62;
Y con esta simple modificación ...]]></description>
			<content:encoded><![CDATA[<p>Al programar un sitio web en moodle nos ha surgido la necesidad de añadir un archivo de estilos (css) dependiendo de si el usuario es un estudiante y no incluirlo de lo contrario.</p>
<p>Para ello hay que editar uno de los archivos del tema que se utiliza, se puede editar el &#8220;header.html&#8221; o bien el &#8220;meta.php&#8221; .</p>
<p>El código que hay que añadir al archivo es el siguiente:</p>
<blockquote><p>&lt;?php</p>
<p style="padding-left: 30px;">global $CFG;</p>
<p style="padding-left: 30px;">global $course;</p>
<p style="padding-left: 30px;">if (!is_null($course-&gt;id)) {</p>
<p style="padding-left: 60px;">$context = get_context_instance(CONTEXT_COURSE, $course-&gt;id);   // Course context</p>
<p style="padding-left: 60px;">$student_role=array_shift(get_roles_with_capability(&#8216;moodle/legacy:student&#8217;, CAP_ALLOW, $context));</p>
<p style="padding-left: 60px;">$user_roles=get_user_roles($context);</p>
<p style="padding-left: 60px;">foreach($user_roles as $value){</p>
<p style="padding-left: 90px;">if($value-&gt;name==$student_role-&gt;name){</p>
<p style="padding-left: 120px;">print(&#8216;&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;&#8216;.$CFG-&gt;httpsthemewww.&#8217;/standard/student.css&#8221; /&gt;&#8217;);</p>
<p style="padding-left: 120px;">break;</p>
<p style="padding-left: 90px;">}</p>
<p style="padding-left: 60px;">}</p>
<p style="padding-left: 30px;">}</p>
<p>?&gt;</p></blockquote>
<p>Y con esta simple modificación se incluye el archivo &#8220;student.css&#8221; con los estilos especificos para los estudiantes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2009/05/14/un-hack-de-moodle/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Por qué utilizamos SVN</title>
		<link>http://www.factorsim.info/2009/05/12/por-que-utilizamos-svn/</link>
		<comments>http://www.factorsim.info/2009/05/12/por-que-utilizamos-svn/#comments</comments>
		<pubDate>Tue, 12 May 2009 07:51:56 +0000</pubDate>
		<dc:creator>dani</dc:creator>
				<category><![CDATA[Gestión de Proyectos]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.factorsim.info/?p=192</guid>
		<description><![CDATA[
Hay ya muchos textos escritos sobre Subversion, pero hoy no hablaré de sus características, de lo que puede hacer ni de cómo lo hace. Hoy me centraré en qué es lo que le encontramos interesante para utilizarlo como herramienta en una empresa. En otras palabras: por qué lo utilizamos.


Ha llamado un cliente. Dice que 	tiene un problema con la versión j29rc20. ¿Alguien sabe de dónde 	puedo conseguir esa versión para hacer unas pruebas?


Uffff&#8230; j29rc20 significa “jueves 	29, versión que estaba en el discoduro de Ricardo Cano a las 2:00”. 	¡A ...]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;">Hay ya muchos textos escritos sobre Subversion, pero hoy no hablaré de sus características, de lo que puede hacer ni de cómo lo hace. Hoy me centraré en qué es lo que le encontramos interesante para utilizarlo como herramienta en una empresa. En otras palabras: por qué lo utilizamos.<span id="more-192"></span></p>
<ul>
<li>
<p style="margin-bottom: 0cm;">Ha llamado un cliente. Dice que 	tiene un problema con la versión j29rc20. ¿Alguien sabe de dónde 	puedo conseguir esa versión para hacer unas pruebas?</p>
</li>
<li>
<p style="margin-bottom: 0cm;">Uffff&#8230; j29rc20 significa “jueves 	29, versión que estaba en el discoduro de Ricardo Cano a las 2:00”. 	¡A saber dónde estará esa versión ya ahora!</p>
</li>
</ul>
<p style="margin-bottom: 0cm;">Subversion guarda todas las versiones que pasan por sus manos. Además, permite dar un nombre (etiquetas, en nomenclatura SVN) a cualquiera de esas versiones. Así, si j29rc20 fuese una etiqueta SVN, obtener esa versión seria trivial.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<ul>
<li>
<p style="margin-bottom: 0cm;">¡Ostras! ¡He copiado esta 	versión encima de la antigua pensando que no tenía nada importante 	y me he cargado todo mi trabajo de la última semana!</p>
</li>
</ul>
<p style="margin-bottom: 0cm;">En un repositorio SVN, la incorporación y mezcla de los cambios hechos por los diferentes usuarios (o incluso de copias de trabajo distintas de una misma persona) se realiza de manera automática, garantizando que nadie sobreescribe el trabajo de otro. Y si has borrado un archivo que no debías o has hecho cambios que no son correctos, siempre puedes recuperar cualquiera de las versiones anteriores que hay guardadas.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<ul>
<li>
<p style="margin-bottom: 0cm;">¿Cuando corregimos la alineación 	de las imágenes para IE6 lo hicimos mediante CSS o JS?</p>
</li>
</ul>
<p style="margin-bottom: 0cm;">Subversion permite comparar fácilmente cualquier par de versiones de cualquier archivo. Si unimos a esto la posibilidad de explicar en los comentarios qué es lo que hemos modificado en cada versión, responder a esta pregunta es tan fácil cómo ojear la lista de comentarios e inspeccionar las diferencias de la versión relevante con la anterior. Además, nos vendrá de regalo la información sobre quién hizo ese cambio y cuándo.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<ul>
<li>
<p style="margin-bottom: 0cm;">Queremos implementar una 	funcionalidad experimental que va a afectar la estabilidad del 	proyecto pero incluirla en la siguiente versión sólo si está ya 	suficientemente estable. Nos arriesgamos a ir haciendo los cambios o 	cómo lo hacemos?</p>
</li>
</ul>
<p style="margin-bottom: 0cm;">En el mundo SVN la respuesta es única: mediante una rama. En cada rama que creemos podremos tener una evolución independiente del mismo código, de manera que no se interfieran entre ellas. Crea una rama nueva para implementar allí la funcionalidad experimental. Cuando el código esté maduro podrás integrar fácilmente los cambios en la rama principal antes de hacer la nueva versión.  Si esa integración de cambios no llega a tiempo, la rama principal incorporará otros cambios no desestabilizadores pero nada de la rama experimental.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<ul>
<li>
<p style="margin-bottom: 0cm;">Tenemos un directorio JS que es 	común a todos estos proyectos, pero ahora ha llegado una versión 	nueva del JS. ¿Tenemos que copiarlo a todos los proyectos uno por 	uno?</p>
</li>
</ul>
<p style="margin-bottom: 0cm;">En SVN, no. Separa el directorio JS en un apartado del repositorio y vincúlalo al resto de proyectos. De esta manera, los cambios de cualquiera de los proyectos se trasladarán al JS común y de ahí a todos los demás proyectos. Modifica el JS común o la copia vinculada a cualquiera de los proyectos y todos los demás sitios se actualizarán por arte de magia. Todo lo que dijimos antes sobre la seguridad de no sobreescribir cambios de otros y las versiones se aplica aquí también, por supuesto.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><strong>Pero no todo es de color de rosa&#8230;</strong></p>
<p style="margin-bottom: 0cm;">Subversion al fin y al cabo es sólo una herramienta. Que resulte beneficiosa o nociva depende del uso que se le dé. Hay algunos problemas muy comunes:</p>
<p style="margin-bottom: 0cm;">Subversion permite tener todos los archivos de un proyecto muy bien ordenados e indentificados. Pero no obliga a ello. De hecho, con etiquetas, ramas, vínculos y una estructura de directorios mal definida SVN puede llevarnos a un nuevo nivel de caos desconocido hasta la fecha.</p>
<p style="margin-bottom: 0cm;">Por otro lado, como cualquier otra tecnología, requiere un aprendizaje. Trabajar con una copia de trabajo en SVN es muy similar a trabajar con archivos normales. Demasiado parecido. Pero quienes acostumbren a copiar proyectos (o partes de ellos) de un directorio a otro se encontrarán con unas cuantas sorpresas desagradables al intentar sincronizar su trabajo con SVN, sin ir más lejos. También hay que aprender a crear archivos nuevos, borrarlos o incluyo renombrarlos o cambiarlos de sitio cuando residen en un proyecto SVN. Es igual de sencillo que hacer esas operaciones sobre archivos normales, pero hay que recordar que la manera concreta de hacerlo cambia.</p>
<p style="margin-bottom: 0cm;">Por último, para aprovechar los proyectos organizados que nos posibilita un repositorio de código lo mejor es tener una gestión organizada. Una gestión que establezca claramente las entregas, las versiones, los objetivos de cada una de ellas, las iteraciones de testeo y corrección de errores, etc&#8230;</p>
<p style="margin-bottom: 0cm;">Pero todo esto es ya material para otro post (sí: es una amenaza).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.factorsim.info/2009/05/12/por-que-utilizamos-svn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

