<?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>El solitario camino de los unos y ceros &#187; programación</title>
	<atom:link href="http://www.caminandosolo.com/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.caminandosolo.com</link>
	<description>caminandosolo.com ::: Infórmatica, sobre todo software y algún off-topic</description>
	<lastBuildDate>Sun, 27 Nov 2011 21:55:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>¿Qué es WPF?</title>
		<link>http://www.caminandosolo.com/2011/08/11/que-es-wpf-windows-presentation-foundation/</link>
		<comments>http://www.caminandosolo.com/2011/08/11/que-es-wpf-windows-presentation-foundation/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 16:16:17 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[microsoft]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[visual studio]]></category>
		<category><![CDATA[windows forms]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=221</guid>
		<description><![CDATA[Cuando desarrollamos una aplicación para Windows, también llamada aplicación de escritorio (usando herramientas de desarrollo de Microsoft) tenemos disponibles dos tecnologías desde Visual Studio: WPF: Windows Presentation Foundation. Windows Forms. Los formularios de Windows han sido la opción más habitual para crear los interfaces de usuario en Visual Studio. Sin embargo, WPF es la tecnología [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando desarrollamos una aplicación para Windows, también llamada aplicación de escritorio (usando herramientas de desarrollo de Microsoft) tenemos disponibles dos tecnologías desde Visual Studio:</p>
<ul>
<li>WPF: Windows Presentation Foundation.</li>
<li>Windows Forms.</li>
</ul>
<p>Los formularios de Windows han sido la opción más habitual para crear los interfaces de usuario en Visual Studio. Sin embargo, WPF es la tecnología destinada a sustuir a Windows Forms. Tienen una diferencia (que para mí es una ventaja) fundamental: el código del interfaz está separado del código de la aplicación. De esta forma, el código de la aplicación lo definiremos con lenguajes como Visual Basic o C#, mientras que el interfaz lo deniremos con una lenguaje llamado XAML (eXtensible application markup language).</p>
<p>En WPF se pueden usar tres tipos de controles:</p>
<ol>
<li>Controles individuales: tienen un único propósito o uso, como por ejemplo los botones, las cajas de texto, los deslizadores, las barras de progreso y las etiquetas.</li>
<li>Controles de tipo item: sirven para contener grupos de elementos gráficos relacionados. Por ejemplo, un <em>ComboBox</em>, un <em>ListBox</em>, un menú o una barra de herramientas.</li>
<li>Controles <em>layout</em>: contienen otros controles y definen visualmente cómo van a estar posicionados dichos controles. Por ejemplo, un <em>grid panel</em>, un <em>dock panel</em> o un <em>canvas</em>.</li>
</ol>
<p>Todos los elementos gráficos de WPF se controlan mediante sus propiedades, pero además, en determinados casos y según el layout utilizado, pueden aparecer unas propiedades adicionales llamadas <em>attached properties</em>, que contienen información de la posición del control dentro de su layout, por ejemplo, si un control está dentro de un <em>grid panel</em> aparecen propiedades para indicar en qué fila y columna se encuentra.</p>
<p>Podemos ver el XAML que define los controles en Windows como una especie HTML, que mediante etiquetas, valores y propiedades define una ventana. Algunos ejemplos podrían ser:</p>
<p>Definición de un TextBox:</p>
<pre class="brush:vb">&lt;TextBox Name="usuario" Height="95" Margin="15,30,15,30" VerticalAlignment="Top" /&gt;</pre>
<p>Definición de un ListBox:</p>
<pre class="brush:vb">&lt;ListBox Name=color"&gt;

&lt;CheckBox Name="rojo"&gt;Color rojo&lt;/CheckBox&gt;

&lt;CheckBox Name="azul"&gt;Color azul&lt;/CheckBox&gt;

&lt;CheckBox Name="verde"&gt;Color verde&lt;/CheckBox&gt;

&lt;/ListBox&gt;</pre>
<p>Si podemos ver el XAML como una especie de HTML, este también tiene su definición de estilos como si CSS se tratara, de forma que en un formulario podemos utilizar una declaración como esta:</p>
<pre class="brush:vb">
&lt;Window.Resources&gt;

&lt;Style TargetType="Button"&gt;

&lt;Setter Property="Background" Value="Black" /&gt;
&lt;Setter Property="Foreground" Value="White" /&gt;
&lt;Setter Property="Width" Value="135" /&gt;

&lt;/Style&gt;

&lt;/Window.Resources&gt;
</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2011/08/11/que-es-wpf-windows-presentation-foundation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Transferir Prestashop entre dominios</title>
		<link>http://www.caminandosolo.com/2011/06/25/transferir-prestashop-entre-dominios/</link>
		<comments>http://www.caminandosolo.com/2011/06/25/transferir-prestashop-entre-dominios/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 12:11:59 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[prestashop]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=218</guid>
		<description><![CDATA[Ayer tuve que transferir Prestashop (ver. 1.4.3) entre dos dominios, y la verdad es que muuyyy sencillo. Lo que ha mí me funcionado es: Copia de seguridad de la base de datos en el dominio actual. Copia completa de todos los ficheros y carpetas del dominio actual. Crear la base de datos en el segundo [...]]]></description>
			<content:encoded><![CDATA[<p>Ayer tuve que transferir Prestashop (ver. 1.4.3) entre dos dominios, y la verdad es que muuyyy sencillo. Lo que ha mí me funcionado es:</p>
<ol>
<li>Copia de seguridad de la base de datos en el dominio actual.</li>
<li>Copia completa de todos los ficheros y carpetas del dominio actual.</li>
<li>Crear la base de datos en el segundo dominio, y a continuación restaurar la copia de seguridad.</li>
<li>Modificar el fichero <em>settings.inc.php</em> dentro de la carpeta <em>config</em>, para indicar el nombre, usuario y contraseña de la nueva de la nueva base de datos en el segundo dominio.</li>
<li>Subir todos los ficheros y carpetas al segundo dominio.</li>
</ol>
<p>Y listo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2011/06/25/transferir-prestashop-entre-dominios/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Publicar en Twitter con PHP</title>
		<link>http://www.caminandosolo.com/2009/08/24/publicar-en-twitter-con-php/</link>
		<comments>http://www.caminandosolo.com/2009/08/24/publicar-en-twitter-con-php/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 15:46:20 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[tweeter]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=123</guid>
		<description><![CDATA[Tenía pensada para una pequeña aplicación con PHP, recoger datos estadísticos de un fichero CSV y después publicarlos en Twitter. Después de sacar los datos que me interesan, utilizo un script como este que dejo aquí por si a alguien le interesa, para publicarlos: // Establecer los parámetros $nombre = 'usuario_twitter'; $clave = 'clave_usuario'; $estado [...]]]></description>
			<content:encoded><![CDATA[<p>Tenía pensada para una pequeña aplicación con PHP, recoger datos estadísticos de un fichero CSV y después publicarlos en Twitter. Después de sacar los datos que me interesan, utilizo un script como este que dejo aquí por si a alguien le interesa, para publicarlos:</p>
<pre class="brush:php">// Establecer los parámetros
$nombre = 'usuario_twitter';
$clave = 'clave_usuario';
$estado = 'Mensaje para publicar';
// URL del API de Twitter
$url = 'http://twitter.com/statuses/update.xml';
// Pasar los parámetros mediante PHP con curl
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$estado");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$nombre:$clave");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
// Comprobar el resultado
if (empty($buffer))
     mail("micorreo@midominio.com","Error al publicar en Twitter","Mensaje: ".$estado);</pre>
<p>En una breve explicación:</p>
<ol>
<li>Las primeras variables son los parámetros de nombre y contraseña de usuario de twitter y la actualización de estado que queremos publicar.</li>
<li>El resto es el trabajo de la función <em>curl</em>.</li>
<li>Por último con el <em>if</em>, se si se produce un error, envio un mensaje a una cuenta de correo para saber si ha habido algún problema.</li>
</ol>
<p>Evidentemente se pueden hacer muchas cosas más, pero para actualizaciones sencillas es suficiente con este código.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2009/08/24/publicar-en-twitter-con-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zend Studio 7&#8230; a la nevera</title>
		<link>http://www.caminandosolo.com/2009/08/19/zend-studio-7-a-la-nevera/</link>
		<comments>http://www.caminandosolo.com/2009/08/19/zend-studio-7-a-la-nevera/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 15:34:54 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=121</guid>
		<description><![CDATA[Tenía ganas de probar la versión 7 de Zend Studio, la herramienta de desarrollo de Zend Technologies para PHP. Hace tiempo había usado la versión 5 y me pareció un buen producto, sin embargo, mi impresión de la versión 7 es que han sacado al mercado un fiasco. Es una aplicación que vale 399€ y [...]]]></description>
			<content:encoded><![CDATA[<p>Tenía ganas de probar la versión 7 de <a href="http://www.zend.com/en/products/studio/" target="_blank">Zend Studio</a>, la herramienta de desarrollo de Zend Technologies para PHP. Hace tiempo había usado la versión 5 y me pareció un buen producto, sin embargo, mi impresión de la versión 7 es que han sacado al mercado un fiasco.</p>
<p>Es una aplicación que vale 399€ y que no tiene versión en español. Pero el problema es su extrema lentitud (en mi caso, después de tres horas de empezar la creación de un proyecto que contiene unos 340 ficheros PHP, más CSS y algún HTML, el proceso estaba en el 5%)  y sus constantes bloqueos trabajando con servidor FTP. Si la usas en ficheros locales funciona bien, pero claro eso vale para entornos de test, pero no para hacer cambios para sistemas en un servidor remoto.</p>
<p>Después de probar algunas recomendaciones: desactivar el analizador semántico, cambiar la librería base de PHP 5.3 a PHP 5.2, forzar UTF-8, etc. No he notado ninguna mejoría.</p>
<p>Este error está siendo <a href="http://forums.zend.com/search.php?st=0&amp;sk=t&amp;sd=d&amp;keywords=slow&amp;fid[]=59&amp;start=20" target="_blank">criticado en los foros</a> de la propia empresa. Y yo por mi parte, tendré que dejar este Zend Studio 7 en la nevera hasta que alguna actualización lo solucione. Una pena, porque el producto promete.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2009/08/19/zend-studio-7-a-la-nevera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog sobre SAAS</title>
		<link>http://www.caminandosolo.com/2009/01/14/blog-sobre-saas/</link>
		<comments>http://www.caminandosolo.com/2009/01/14/blog-sobre-saas/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 05:38:32 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=80</guid>
		<description><![CDATA[Ya he  hablado un par de veces en el blog sobre el hecho de que creo que el futuro del software gira en torno al cloud-computing. La aparición de los ultraportátiles y los teléfonos o &#8220;dispositivos tipo iphone&#8221; con conexión a Internet en cualquier lugar y una menor potencia de cálculo que cada vez son [...]]]></description>
			<content:encoded><![CDATA[<p>Ya he  hablado un par de veces en el blog sobre el hecho de que creo que el <a href="http://www.caminandosolo.com/2008/10/31/el-futuro-de-la-informatica-es-el-cloud-computing/">futuro del software</a> gira en torno al cloud-computing.</p>
<p>La aparición de los ultraportátiles y los teléfonos o &#8220;dispositivos tipo iphone&#8221; con conexión a Internet en cualquier lugar y una menor potencia de cálculo que cada vez son más habituales, van a acelerar el proceso de implantación de herramientas de ese tipo.</p>
<p>Las aplicaciones sobre SAAS (software como servicio) basadas en la nube y los productos de desarrollo para la creación de estas aplicaciones de software son la temática de <a href="http://www.saasmania.com" target="_blank">Saasmania</a>, un blog que he descubierto hace poco, pero que sigo para estar al día sobre este tema.</p>
<p>Me parece un blog muy recomendable, con buen contenido, hasta el momento sin publicidad y profundidad en los artículos (para empezar os recomiendo el de las <a href="http://www.saasmania.com/2008/12/31/%c2%bfque-pasara-en-el-2009-con-el-cloud-computing/">predicciones para 2009</a>).</p>
<p>Buena suerte.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2009/01/14/blog-sobre-saas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Future of web apps 2009</title>
		<link>http://www.caminandosolo.com/2008/12/30/future-of-web-apps-2009/</link>
		<comments>http://www.caminandosolo.com/2008/12/30/future-of-web-apps-2009/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 23:02:08 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=65</guid>
		<description><![CDATA[Va a celebrar en febrero y marzo de 2009 el evento future of web apps. Los días 23 y 24 en Miami, y el 6 de marzo en Dublin. Son charlas con gente de bastante nivel, hasta ahora gente como Tony Lucas de Amazon, hablando de Amazon Web Services, Adam Gross de salesforce.com hablando de [...]]]></description>
			<content:encoded><![CDATA[<p>Va a celebrar en febrero y marzo de 2009 el evento future of web apps. Los días 23 y 24 en Miami, y el 6 de marzo en Dublin.</p>
<p>Son charlas con gente de bastante nivel, hasta ahora gente como Tony Lucas de Amazon, hablando de Amazon Web Services, Adam Gross de <em>salesforce.com</em> hablando de cloud computing, Edwin Aoki de AOL, etc.</p>
<p>En cualquier caso, para los que no vamos a acudir, en la página del evento hay vídeos, podcasts, en incluso transcripciones por RSS.</p>
<p>Vía el <a href="http://www.joelonsoftware.com/items/2008/12/21.html">blog de Joel Spolsky</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2008/12/30/future-of-web-apps-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Con cakePHP hemos topado (1ª parte)</title>
		<link>http://www.caminandosolo.com/2008/11/29/con-cakephp-hemos-topado-1%c2%aa-parte/</link>
		<comments>http://www.caminandosolo.com/2008/11/29/con-cakephp-hemos-topado-1%c2%aa-parte/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 07:56:01 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[software libre]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=28</guid>
		<description><![CDATA[En septiembre estuve evaluando la posibilidad de hacer parte de una aplicación de escritorio como aplicación web, así que dije lo primero que tenía claro es que iba a utilizar un framework para desarrollar. El único requerimiento que tenía es que la base de datos debía ser SQL Server porque ya se utilizaba en producción. [...]]]></description>
			<content:encoded><![CDATA[<p>En septiembre estuve evaluando la posibilidad de hacer parte de una aplicación de escritorio como aplicación web, así que dije lo primero que tenía claro es que iba a utilizar un <em>framework </em> para desarrollar.</p>
<p>El único requerimiento que tenía es que la base de datos debía ser SQL Server porque ya se utilizaba en producción. A partir de aquí podía decidir sistema operativo, servidor web y lenguaje sin ningún problema.</p>
<p>Hace un tiempo desarrollé con Ruby on Rails y fue la primera opción que valoré pero la descarté porque si en un futuro necesitaba escalar es más complicado que con PHP y los resultados de velocidad de respuesta que hice en su momento me decían que era más lento.</p>
<p>Así que me dije: Apache+PHP, y como en el equipo de pruebas ya tenía instalado uno sobre Windows configuré PHP y me decidí a probar cakePHP antes que el <em>framework</em> de Zend.</p>
<p>Pues bien mi experiencia de momento es bastante mala. Supongo que toda esa gente que está encantada con cakePHP estará usando MySQL, porque desde luego con SQL Server para mí, ha sido un desastre. Os cuento:</p>
<ol>
<li>Configuro una base de datos de prueba.</li>
<li>Asigno permisos y modifico el fichero de configuración de cake PHP.</li>
<li>Creo una tabla de pruebas.</li>
<li>Voy a la página de inicio y veo el mensaje de conexión Ok, pero aparece un error de lectura de la tabla del motor de base de datos donde se almacenan las tablas: INFORMATION_SCHEMA.TABLES.</li>
<li>Después de buscar soluciones a este problema y no encontrarlas, pongo un mensaje en <a title="Google groups" href="http://http//groups.google.com/group/cake-php/browse_thread/thread/8a104ec07c478f02/883ad9ce75e09430?lnk=gst&amp;q=SELECT+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES#883ad9ce75e09430">Google groups</a>, al fin y al cabo se supone que la ventaja de este tipo de software &#8220;Open source&#8221; es que tienes una comunidad que lo apoya.</li>
<li>Después de dos meses recibo un día en mi e-mail la solución y el problema está en que en elfichero mssql_dbo.php hay un error y en una comparación textual no se ha incluído el texto en idioma español. La solución está <a href="https://trac.cakephp.org/changeset/7426">aquí</a> (gracias seven).</li>
</ol>
<p>En fin, no me parece correcto por parte de los programadores de cakePHP que ese tipo de comparación afectada por el idioma aparezca en un fichero que realiza las operaciones básicas de interacción con la estructura de la base de datos. Todavía no sé bien de la complejidad de cakePHP, ni estoy seguro de que esto se pueda separar correctamente, pero un error de este tipo porque la comparación del mensaje de SQL Server está en italiano e inglés y no en español, italiano e inglés; de entrada no parece hablar bien del <em>framework </em>y da que pensar si habrá otros problemas de este tipo con el idioma más adelante en un desarrollo.</p>
<p>En cualquier caso, emocionado, actualizo el fichero en cuestón y lo pruebo: este error se soluciona, pero aparecen otros. Esos os los contaré en mi siguiente entrega de este post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2008/11/29/con-cakephp-hemos-topado-1%c2%aa-parte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo hacer un backup de SQL Server fácil</title>
		<link>http://www.caminandosolo.com/2008/07/26/backup-sql-server-facil/</link>
		<comments>http://www.caminandosolo.com/2008/07/26/backup-sql-server-facil/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 08:05:34 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[base de datos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=19</guid>
		<description><![CDATA[SQL Server es una base de datos más que conocida, así que hay multitud de aplicaciones para hacer una copia de seguridad, incluyendo claro, las de la propia Microsoft. De todas formas es posible hacer copias de seguridad sin contar con ninguna de esas herramientas gráficas y de forma sencilla y desatendida, de forma que [...]]]></description>
			<content:encoded><![CDATA[<p>SQL Server es una base de datos más que conocida, así que hay multitud de aplicaciones para hacer una copia de seguridad, incluyendo claro, las de la propia Microsoft.</p>
<p>De todas formas es posible hacer copias de seguridad sin contar con ninguna de esas herramientas gráficas y de forma sencilla y desatendida, de forma que se puedan programar de forma automática.</p>
<p>Lo que voy a comentar lo uso para bases de datos de prueba o en fases iniciales de producción ya que realiza una copia completa (no diferencial).</p>
<p><strong>Objetivo</strong>: hacer una copia de seguridad diaria y sin intervención de administrador, que además esos ficheros se guarden en otro servidor diferente y que pueda conservar las copias antiguas para tener un historial y poder restaurar la base de datos días atrás por si hay un problema de programación.</p>
<p><strong>Para conseguirlo</strong>:</p>
<ul>
<li>Supongamos que la base de datos se llama&#8230; Dummy (original, ¿no?). Creamos en un fichero de texo .SQL con la sentencia que realiza el volcado de datos. El fichero lo llamo Dummybackup.sql y contiene lo siguiente:</li>
</ul>
<blockquote>
<pre style="text-align: justify;">BACKUP DATABASE [sea] TO  DISK = N'C:\Dummybackup.bak' WITH  DESCRIPTION = N'Copia de seguridad completa de Base de datos', NOFORMAT, NOINIT,  NAME = N'Dummybackup.bak', SKIP, NOREWIND, NOUNLOAD,  STATS = 10</pre>
<pre style="text-align: justify;">
GO</pre>
<pre style="text-align: justify;">
declare @backupSetId as int</pre>
<pre style="text-align: justify;">
select @backupSetId = position from msdb..backupset where database_name=N'dummy' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'dummy' )</pre>
<pre style="text-align: justify;">
if @backupSetId is null begin raiserror(N'Error de comprobación. No se encuentra la información de copia de seguridad para la base de datos ''Dummy''.', 16, 1) end</pre>
<pre style="text-align: justify;">
RESTORE VERIFYONLY FROM  DISK = N'C:\Dummy_backup.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND</pre>
<pre style="text-align: justify;">
GO</pre>
</blockquote>
<ul>
<li>Creamos en el PC servidor un fichero .BAT con este contenido:</li>
</ul>
<blockquote>
<pre>@ECHO OFF</pre>
<pre>
sqlcmd -S SERVIDOR2003\SQLSRV -U adminBD -P adminClave -d Dummy -i Dummybackup.sql</pre>
<pre>
copy Dummybackup.bak Z:\Dummybackup_%date:/=-%.bak</pre>
<pre>
del Dummybackup.bak</pre>
</blockquote>
<p>En este fichero llamamos al interprete interactivo de sqlcmd de SQL Server, y le indicamos:</p>
<p>- Parámetro S: sobre qué servidor vamos a trabajar.</p>
<p>- Parámetro U: usuario</p>
<p>- Parámetro P: contraseña</p>
<p>- Parámetro d: base de datos</p>
<p>- Parámetro i: fichero con la sentencia/s SQL a ejecutar.</p>
<p>Depués copiamos el volcado a la unidad Z creando un fichero que contiene la fecha del día actual, de forma que conseguimos un historial de backups y al haber montado la unidad Z sobre otro servidor, además tenemos los datos en PC diferente. Por último borramos el fichero con el volcado &#8220;temporal&#8221;.</p>
<p>Eso es todo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2008/07/26/backup-sql-server-facil/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>stackoverflow.com: web profesional y gratuita para resolver tus dudas de programación</title>
		<link>http://www.caminandosolo.com/2008/04/19/stackoverflowcom-web-profesional-y-gratuita-para-resolver-tus-dudas-de-programacion/</link>
		<comments>http://www.caminandosolo.com/2008/04/19/stackoverflowcom-web-profesional-y-gratuita-para-resolver-tus-dudas-de-programacion/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 07:18:21 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/?p=18</guid>
		<description><![CDATA[stackoverflow.com, una expresión maldita para muchos programadores es el nuevo proyecto de Joel Spolsky (en realidad interviene como CEO de Fog Creek Software en joint venture con Jeff Atwood). Su idea es: un programador cuando tiene una duda va a Google y en muchos casos se encuentra sitios de pago, que además muestran respuestas de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://stackoverflow.com">stackoverflow.com</a>, una expresión maldita para muchos programadores es el nuevo proyecto de <a href="http://www.joelonsoftware.com">Joel Spolsky</a> (en realidad interviene como CEO de Fog Creek Software en joint venture con <a href="http://www.codinghorror.com/">Jeff Atwood</a>). Su idea es: un programador cuando tiene una duda va a Google y en muchos casos se encuentra sitios de pago, que además muestran respuestas de otros usuarios programadores como tú y que pueden tener la respuesta correcta o no, pues entonces, construyamos un sitio de preguntas y respuestas de programadores para programadores gratuito, sin publicidad, sin popups, con HTML y diseño básico, gratuito y donde sólo se registren los usuarios de forma voluntaria y si quieren tener un &#8220;karma&#8221;.</p>
<p>Desearles mucha suerte y seguiremos la evolución del proyecto. De momento en su web tienen una presentación echa por ellos mismos y un chiste que merece la pena ver.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2008/04/19/stackoverflowcom-web-profesional-y-gratuita-para-resolver-tus-dudas-de-programacion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dos monitores aumentan la productividad, pero no tanto</title>
		<link>http://www.caminandosolo.com/2008/03/13/dos-monitores-aumentan-la-productividad-pero-no-tanto/</link>
		<comments>http://www.caminandosolo.com/2008/03/13/dos-monitores-aumentan-la-productividad-pero-no-tanto/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 23:17:38 +0000</pubDate>
		<dc:creator>caminandosolo.com</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[productividad]]></category>

		<guid isPermaLink="false">http://www.caminandosolo.com/2008/03/13/dos-monitores-aumentan-la-productividad-pero-no-tanto/</guid>
		<description><![CDATA[El otro día veía unas fotos de la oficina nueva de Google en Zurich y leía que sus trabajadores usan como estándar 2 monitores porque aumenta la productividad (de hecho algunos empleados usan más de dos). He buscado un poquito de información y resulta que cuando Apple inició su tendencia de monitores de gran tamaño, [...]]]></description>
			<content:encoded><![CDATA[<p>El otro día veía unas fotos de la <a href="http://www.elpais.com/fotogaleria/Googlelandia/algo/oficina/5210-2/elpgal/" title="Google en Zurich" target="_blank">oficina nueva de Google en Zurich</a> y leía que sus trabajadores usan como estándar 2 monitores porque aumenta la productividad (de hecho algunos empleados usan más de dos). He buscado un poquito de información y resulta que cuando Apple inició su tendencia de monitores de gran tamaño, presentó un informe que decía que de esa forma <a href="http://www.macdailynews.com/index.php/weblog/comments/apple_sponsored_study_finds_larger_monitors_can_increase_productivity/" title="MacDailyNews">se incrementaba la productividad</a>. El informe desarrollado por Pfeiffer Consulting se desarrolló comparando una pantalla de 30&#8243; de Apple con una 17&#8243; de Samsung y usando las herramientas: InDesign, Photoshop, Illustrator, Microsoft Office y QuarkExpress (<a href="http://www.pfeifferreport.com/" title="Informe Pfeiffer">puedes verlo completo</a>).</p>
<p>Pues bien, yo estoy usando ahora la pantalla de mi portátil (15&#8243;) con un monitor 19&#8243; panorámico y me pregunté si realmente era más efectivo, porque me parecía evidentemente que era más cómodo. Mi metodología ha sido la siguiente:</p>
<p>1. Prueba A: desarrollo de aplicación de escritorio.</p>
<ul>
<li>Trabajo: crear un formulario enlazado con base de datos consultado en 4 tablas diferentes y con un grid en maestro-detalle.</li>
<li>Aplicaciones: Visual Basic 6. Utilizo un formulario estándar con 3 ADO Datacontrol y un grid que es TrueDBGrid versión 8. La base de datos es SQL Server 2005.</li>
<li>Ventanas:
<ul>
<li><a href="http://www.microsoft.com/spanish/msdn/centro_recursos/vbnet/default.mspx" title="Visual Basic">Visual Basic 6</a></li>
<li>Programa en ejecución</li>
<li><a href="http://sqlmanager.net/" title="SQL Manager">EMS SQL Manager</a> como front-end de <a href="http://www.microsoft.com/spain/sql/default.mspx" title="SQL Server 2005">SQL Server.</a></li>
</ul>
</li>
<li>Tiempo de desarrollo con dos monitores: 46 minutos.</li>
</ul>
<p>2. Prueba B: desarrollo web</p>
<ul>
<li>Trabajo: crear un página web que contiene un formulario con 240 listas desplegables (80 filas con 3 columnas con una lista en cada celda de una tabla) y que debe actualizar una base de datos mediante Ajax con el valor con el valor que el usuario selecciona. Hay que mostrar la lista actualizada desde la base de datos y junto a ella la fecha/hora de actualización por parte del usuario.</li>
<li>Aplicaciones: Zend development studio 5 para editar los ficheros sobre un sevidor con Linux. La base de datos es MySQL versión 4.3. El framework de Javascript es Prototype.</li>
<li>Ventanas:
<ul>
<li>Zend Studio.</li>
<li><a href="http://www.mozilla-europe.org/es/products/firefox/" title="Firefox">Firefox</a>.</li>
<li><a href="http://www.phpmyadmin.net/home_page/index.php" title="php-myAdmin">php-myAdmin</a>, como front-end de <a href="http://www.mysql.com/">MySQL</a>.</li>
</ul>
</li>
<li>Tiempo de desarrollo con dos monitores: 79 minutos.</li>
</ul>
<p>¿Cuál ha sido el tiempo que he ahorrado con respecto al uso de un solo monitor?. Pues bien, básicamente como la cantidad de código no me obligaba a hacer demasiado scroll en ambos casos, el tiempo de mejora iba a estar en el salto entre aplicaciones, así que grabé las sesiones de trabajo en vídeo y conté los cambios de ventana.</p>
<p>En la prueba A cambié de ventana 38 veces, y en la prueba B, 93 veces. Ahora sólo quedaba calcular cuánto tiempo había ahorrado a tener 1 ventana en cada monitor, y después de varias pruebas lo cifré en 3 segundos. Eso significaría que en cambios de ventana, ahorré 1 min. 54 seg. en la prueba A y 4 min. 39 seg. en la prueba B.</p>
<p>Si a esto le añadimos que durante el trabajo reduces errores al poder, por ejemplo, ver los nombres de los campos de la base de datos mientras desarrollas, o hacer una traza del código mientras ves los resultados del programa en ejecución y añadimos 2 min. para la prueba A y 1 min. para la B, los resultados quedarían así:</p>
<table height="58" width="548">
<tr>
<td align="center"><strong>Prueba</strong></td>
<td align="center"><strong>Tiempo desarrollo con 1 monitor</strong></td>
<td align="center"><strong>Tiempo desarrollo con 2 monitores</strong></td>
<td align="center"><strong>Ahorro tiempo (%)</strong></td>
</tr>
<tr>
<td align="center"><strong>A</strong></td>
<td align="center">49:54</td>
<td align="center">46</td>
<td align="center">7,8 %</td>
</tr>
<tr>
<td align="center"><strong>B</strong></td>
<td align="center">84:39</td>
<td align="center">79</td>
<td align="center">6,7 %</td>
</tr>
</table>
<p>Es decir, no llega ni más ni menos que al 8%. Que significa eso que por cada jornada de trabajo de 8 hrs. ganaríamos unos 40 minutos y unas 13 hrs. al final del mes, eso significa jornada y media aprox. Evidentemente esto no llega a lo que que el informe de Pfeiffer Consulting decía, pero bueno, al precio de los TFT del momento, se justifica más que de sobra el comprar un segundo monitor.</p>
<p>Además hay que contar factores como el cansancio visual que se reduce con monitores de mayor tamaño o la ergonomía, al no tener reducir los movimientos de ratón, no cambiar la vista de distancia focal al mover el puntero hacia la zona inferior del monitor y volver al centro, etc.</p>
<p>En resumen, si no lo teneis ya, mi consejo es que tengais un segundo monitor (o quien sabe, un tercero&#8230;). ¿Qué os parece la idea?</p>
<p>P.D.: Continuará&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.caminandosolo.com/2008/03/13/dos-monitores-aumentan-la-productividad-pero-no-tanto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

