<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5873468744732853824</atom:id><lastBuildDate>Fri, 11 May 2012 12:31:03 +0000</lastBuildDate><category>Libros</category><category>Varios</category><category>Bugs</category><category>Yoigo</category><category>.Net</category><category>Hibernate</category><category>Opinión</category><category>Aplicaciones</category><category>Enlaces</category><category>Google</category><category>Blog</category><category>Ajax</category><category>Dominios</category><category>Universidad</category><title>blog.jaimecg.com</title><description>De mis cosas...</description><link>http://blog.jaimecg.com/</link><managingEditor>noreply@blogger.com (Jaime Cáceres)</managingEditor><generator>Blogger</generator><openSearch:totalResults>39</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/jaimecg" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jaimecg" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-3150063832574505703</guid><pubDate>Sun, 07 Aug 2011 18:03:00 +0000</pubDate><atom:updated>2012-01-05T14:52:00.407+01:00</atom:updated><title>Soporte de ZTE Blade en Ubuntu, ADB y almacenamiento</title><description>Es necesario crear el archivo: &lt;b&gt;/etc/udev/rules.d/51-android.rules&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666", GROUP="plugdev"&lt;/blockquote&gt;Para otros fabricantes consultar:&amp;nbsp;&lt;a href="http://developer.android.com/guide/developing/device.html#setting-up"&gt;http://developer.android.com/guide/developing/device.html#setting-up&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y posteriormente actualizar los permisos de acceso:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;chmod a+r /etc/udev/rules.d/51-android.rules&lt;/blockquote&gt;&lt;br /&gt;Y a parte, necesitaremos crear una regla para el usb modeswitch que permita cambiar y activar el modo de teléfono correcto. Crear el archivo: &lt;b&gt;/etc/usb_modeswitch.d/19d2:0083&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;######################################################## &lt;br /&gt;# ZTE 0083 device &lt;br /&gt;&lt;br /&gt;DefaultVendor= 0x19d2&lt;br /&gt;DefaultProduct=0x0083&lt;br /&gt;&lt;br /&gt;TargetVendor= 0x19d2&lt;br /&gt;TargetProduct= 0x0124&lt;br /&gt;&lt;br /&gt;CheckSuccess=20&lt;br /&gt;&lt;br /&gt;MessageContent="55534243f8f993882000000080000a85010101180101010101000000000000"&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-3150063832574505703?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2011/08/soporte-de-zte-blade-en-ubuntu-adb-y.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-1113150986292108441</guid><pubDate>Tue, 02 Sep 2008 11:20:00 +0000</pubDate><atom:updated>2008-09-02T13:28:36.061+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Bugs</category><title>Bug en Office 2003 Service Pack 3</title><description>Hace unos días me llamó una persona que tenía problemas con una aplicación hecha en Access, la cual funcionaba en unos ordenadores sí y en otros no.&lt;br /&gt;&lt;br /&gt;El problema consistía en campos de tipo cuadro-combinado (Combo-box) que se encontraban en blanco no mostrando los datos con los que estaban vinculados. Después de ir comprobando donde podría estar el error, llegué que aquellos campos de tipo Texto o Memo que en Formato se había especificado el valor "&gt;" (da formato de mayúsculas al contenido del campo), no eran mostrados en los desplegables, si eliminaba el formato "&gt;", ya si aparecían, pero eso no era una solución! Finalmente el problema vi que venía de aquellos ordenadores con Office 2003 Service Pack 3, y como se detalla en la página del bugfix correspondiente, este fallo es introducido al instalar este Service Pack, un poco raro que se les cuele este tipo de fallo, supongo que debería haber algún control de calidad mayor.&lt;br /&gt;&lt;br /&gt;Podéis bajaros el bugfix y más información en la página de soporte:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/945674"&gt;http://support.microsoft.com/kb/945674&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-1113150986292108441?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2008/09/bug-en-office-2003-service-pack-3.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-5926936892094194853</guid><pubDate>Thu, 05 Jun 2008 10:06:00 +0000</pubDate><atom:updated>2008-06-05T12:13:10.170+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>Error IIS 7.0 &amp; Vista. 0x80070032</title><description>¿Te has encontrado con este error?&lt;br /&gt;&lt;blockquote&gt;Error HTTP 404.3 - Not Found&lt;br /&gt;&lt;br /&gt;No puede obtener acceso a la página solicitada debido a la configuración de la extensión. Si la página es un script, agregue un controlador. Si se debe cargar el archivo, agregue una asignación MIME.&lt;br /&gt;&lt;br /&gt;Módulo: StaticFileModule&lt;br /&gt;Notificación: ExecuteRequestHandler&lt;br /&gt;Controlador: StaticFile&lt;br /&gt;Código de error: 0x80070032&lt;br /&gt;&lt;/blockquote&gt;Y esto al intentar acceder a un archivo .aspx. No te preocupes, por defecto, al instalar IIS en Vista, se configura para sólo servir contenidos estáticos, deberemos activar el soporte de ASP.NET, para ello, volvemos al Panel de Control &gt; Programas &gt; Activar o desactivar las características de Windows, y activaremos la opción: Internet Information Services &gt; Servicios World Wide Web &gt; Características de desarrollo de aplicaciones &gt; ASP.NET&lt;br /&gt;&lt;br /&gt;Ahora te debería funcionar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-5926936892094194853?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2008/06/error-iis-70-vista-0x80070032.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>11</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-2269855100502167584</guid><pubDate>Wed, 14 May 2008 11:40:00 +0000</pubDate><atom:updated>2008-05-14T14:04:46.161+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Varios</category><title>LSSI. Publicidad en correo. A buena hora reclame!</title><description>Por dónde empiezo...&lt;br /&gt;&lt;br /&gt;Hace tiempo, como un año, di mis datos de contacto (email + teléfono) a una empresa (bastante conocida en españa) para que me enviara información comercial de sus servicios. Hasta ahí, todo normal. Hace poco recibí un correo electrónico publicitario de dicha empresa, para mi sorpresa, no cumplia mucho sobre la LSSI y LOPD, por ejemplo, no informaba del nombre de la empresa (datos como razón social y dirección fiscal), no anunciaban de en qué archivo de datos se encontraba la información de donde habían sacado mis datos, y lo más importante, no informaba sobre un procedimiento de baja o anular futuras recepciones de publicidad, ni email, ni nada.&lt;br /&gt;&lt;br /&gt;Total, que no se muy bien la razón, pero les repondí quejandome un poco, y comentando que su comunicado no cumplia muy bien con la ley.&lt;br /&gt;&lt;br /&gt;¡A buenas horas se me ocurrio esto! A los pocos días, me llaman al móvil el departamento de comunicaciones o legal o una historia de esas de esta empresa, para pedirme disculpas, y que efectivamente debió de haber un error en la comunicación, y que incumplía la ley. Yo les digo que es normal, que es complicado cumplir todas las leyes, pero ya lo saben para la próxima que tienen que tener más cuidado, me avisan de que ya me han borrado de su archivo de datos y que no me volverán a molestar.&lt;br /&gt;&lt;br /&gt;Pero no acaba, ahora recibo una carta certificada pidiendome disculpas, avisandome de que ya me han borrado de archivo de datos, etc. etc.&lt;br /&gt;&lt;br /&gt;Lo próximo, como no venga alguien en persona a seguir pidiendome disculpas... aunque me podían haber regalado alguno de sus productos! :D&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Moraleja&lt;/span&gt;: Es una realidad de que las leyes LSSI y LOPD no se cumplen en todos los casos, pero si que es cierto que las empresas ya están muy concienciadas con este tema, y que ponen un claro interés, ahora sólo les falta cuidar los despistes.&lt;br /&gt;&lt;br /&gt;Algunas direcciones de intres:&lt;br /&gt;LSSI: &lt;a href="http://www.lssi.es/"&gt;http://www.lssi.es/&lt;/a&gt;&lt;br /&gt;Agencia Española de Protección de Datos: &lt;a href="https://www.agpd.es/"&gt;&lt;span class="a"&gt;https://www.agpd.es/&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-2269855100502167584?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2008/05/lssi-publicidad-en-correo-buena-hora.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-2818286566073047538</guid><pubDate>Thu, 03 Apr 2008 12:25:00 +0000</pubDate><atom:updated>2008-04-03T14:39:01.228+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Varios</category><title>Uptime de un VPS</title><description>Como curiosidad, en el trabajo tenemos un par de VPS (Virtual Private Server / Servidor Privado Virtual) contratados, uno es un Windows Server 2003, el cual tengo que reiniciar de vez en cuando, y el otro es una Debian. Bien, este último tiene un uptime de:&lt;br /&gt;&lt;br /&gt;xxxxx2:~# uptime&lt;br /&gt; 12:38:38 up 226 days, 4 min,  1 user,  load average: 0.00, 0.00, 0.00&lt;br /&gt;&lt;br /&gt;226 días, no está mal! Lo que viene a demostrar esto es que los servidores VPS son una solución bastante válida y estable (al menos con Linux), y lo más importante, ¡económica!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-2818286566073047538?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2008/04/uptime-de-un-vps.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-2180315659384935416</guid><pubDate>Mon, 17 Mar 2008 12:27:00 +0000</pubDate><atom:updated>2008-03-17T13:59:13.147+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Varios</category><title>Balnearios, la importancia de la salud para trabajos de oficina.</title><description>Hoy voy a hablaros de algo que, aunque parezca que no tiene que ver con la informática, tiene sus aplicaciones prácticas. Los balenarios, spa, termas...&lt;br /&gt;&lt;br /&gt;Todos los trabajos que se realizan en una oficina, y en particular aquellos como los relacionados con informática donde pasamos tantas horas sentados delante de una pantalla de ordenador, sin apenas movernos durante el día, sabemos que es común que aparezcan algún que otro dolor de espalda, incomodidad, tensión en los hombros y cuello. Debemos tener en cuenta que la salud es realmente importante, y si bien, cuidamos nuestro entorno para que sea lo más confortable posible (correcto nivel de la altura del monitor, reposa muñecas, un buen estado de la silla, levantarnos cada hora 5 minutos, etc.), ¿por qué no complementarlo con una sesión de relajación muscular y mental fuera del horario de trabajo? Una solución que te propongo es que te acerques, de vez en cuando (tu mismo te darás cuenta cuando lo necesitas), a un balneario o spa donde baños en agua caliente /fria, saunas, camas de burbujas, lamparas de calor, y un sin fin más de tratamientos que aliviarán la fatiga de la rutina diaria.&lt;br /&gt;&lt;br /&gt;Como experiencia personal, comentar que este fin de semana pasado estuve en uno de estos sitios, exactamente en: &lt;a href="http://www.thermasdegrinon.com/"&gt;Thermas de Griñón&lt;/a&gt; [http://www.thermasdegrinon.com/], unas instalaciónes grandes, limpias y completas, que harán que durante tres horas sólo te preocupes de descansar. Se encuentra a 25 km de Madrid en la carretera de Toledo A-42, merece la pena acercarse.&lt;br /&gt;&lt;br /&gt;Si además notas que tienes una gran tensión en alguna parte de tu cuerpo, tal vez deberías completarlo con una sesión de masajes con un profesional, en estos centros existen la opción de contratar estos servicios, además de disponer personal cualificado que te asesorará sobre lo más beneficioso para tu salud.&lt;br /&gt;&lt;br /&gt;Finalmente, el precio aproximado de hacer un circuito general de 3 horas de duración, durante el cual irás a las diferentes piscinas, saunas, etc. que quieras, es de 33 euros, si además quieres masajes, los hay desde los 26 euros los relajantes con una duración de 30 minutos.&lt;br /&gt;&lt;br /&gt;Y si te animas a ir, te invito a poner un comentario contando como te fue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-2180315659384935416?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2008/03/balnearios-la-importancia-de-la-salud.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-707110512882474853</guid><pubDate>Mon, 03 Mar 2008 16:47:00 +0000</pubDate><atom:updated>2008-03-03T17:54:12.855+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Varios</category><title>Formatos abiertos soportados en la Administración Pública</title><description>Estamos en marzo y este mes me toca preparar la justificación de una ayuda recibida por el  Plan Avanza del Ministerio de Industria, Turismo y Comercio, y descubro con gran asombro que los modelos de la diferente documentación a realizar se encuentra en: pdf y doc, para los documentos de texto y para las hojas de cálculo en: xls, ods (Uno de los formatos soportados por ejemplo por OpenOffice). Y además en las instrucciones se especifica como formatos aceptados (porque se presenta via telemática a través de una aplicación web) para documentos de texto los formatos pdf, doc y odt, y en el caso de hojas de cálculo, xls y ods. Resumiendo, olé, olé por el Ministerio, ya no tendré que ir buscando un ordenador con Office para presentar la documentación. :)&lt;br /&gt;&lt;br /&gt;PD: ODT y ODS son formatos de OpenDocument que fue aprovado como estándar OASIS. &lt;a href="http://es.wikipedia.org/wiki/OpenDocument"&gt;+ info&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-707110512882474853?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2008/03/formatos-abiertos-soportados-en-la.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-4476857044857488667</guid><pubDate>Mon, 26 Nov 2007 11:27:00 +0000</pubDate><atom:updated>2007-11-26T12:34:15.854+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>Visual Studio 2008 Express Edition disponible para descarga</title><description>Por si alguien se había despistado, ya está disponible para descargar las herramientas Express Edition que habitualmente Microsoft nos ofrece como versiones reducidas de su herramienta de desarrollo Visual Studio.&lt;br /&gt;&lt;br /&gt;La página de donde podéis bajarolsas es:&lt;br /&gt;&lt;a href="http://www.microsoft.com/express/download/"&gt;http://www.microsoft.com/express/download/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La descarga está disponible de forma individual como de forma conjunta en un único archivo (DVD).&lt;br /&gt;&lt;br /&gt;PD. De momento sólo están disponible en inglés.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-4476857044857488667?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/11/visual-studio-2008-express-edition.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-4062696224996773844</guid><pubDate>Fri, 05 Oct 2007 15:08:00 +0000</pubDate><atom:updated>2007-10-05T17:34:21.163+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>C# Cast de Array a IList usando genéricos</title><description>Llevo todo el día revisando código que encuentro por Internet referente al manejo datos en general (persistencias, modelos, etc.) y es muy habitual necesitar convertir de un array de un determinado tipo de datos a una lísta usando genéricos. Sobre todo porque muchas librerías antiguas se hicieron cuando estos no existían y es recomendable usar genéricos para una larga lista de casos (aunque de eso mejor hablar en un artículo dedicado a ello).&lt;br /&gt;&lt;br /&gt;Lo curioso es que en una gran cantidad de listados de códigos de diversos autores me encuentro con esto:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Usuario[] usuarios = (Usuario[])Usuario.FindAll();&lt;br /&gt;IList&amp;lt;Usuario&amp;gt; usuarios_g = new List&amp;lt;Usuario&amp;gt;();&lt;br /&gt;foreach (Usuario usuario in usuarios)&lt;br /&gt;{&lt;br /&gt;usuarios_g.Add(usuario);&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Bueno, esto funciona, vale, pero... ¿tantas líneas de código para hacer una conversión? ¿No os parece muy cansado de escribir? Por no hablar de la baja eficiencia que hay detrás de esas líneas.&lt;br /&gt;&lt;br /&gt;Supongo que no se les ocurrió probar antes algo tan simple como:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;/* Usuario.FindAll() devuelve un Usuario[] */&lt;br /&gt;IList&amp;lt;Usuario&amp;gt; usuarios = (IList&amp;lt;Usuario&amp;gt;)Usuario.FindAll();&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Efectivamente, el cast entre un array y una lista usando genéricos es completamente válido. Mucho más límpio, sencillo y seguramente mucho más eficiente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-4062696224996773844?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/10/c-cast-de-array-list-usando-genericos.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-6789461979025324580</guid><pubDate>Tue, 21 Aug 2007 10:10:00 +0000</pubDate><atom:updated>2007-08-21T12:34:40.511+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Varios</category><title>Cómo instalar php5 en un Plesk 8.2 con Linux Debian</title><description>Ahora que estoy metido en servidores virtuales estuve configurando durante el día de ayer una Debian Etch con 1 GB de disco duro y unos pocos megas de ram. Sólo me encontré con un problema y que pongo la solución por aquí.&lt;br /&gt;&lt;br /&gt;Resulta que una de las aplicaciones web que había que instalar requería PHP5 y por desgracia sólo estaba instalado PHP4 como módulo Apache y PHP5 como cgi (pero sin configurar), el problema de dejarlo como cgi consumia demasiados recursos para el número de visitas que iban a gestionarse y ya bastante pocos recursos libres hay en un servidor compartido.&lt;br /&gt;&lt;br /&gt;La solución instalar php5 como módulo de apache, pero el servidor que nos dejan puesto no tiene /etc/apt/sources.list con lo que no tienes de ningún sitio para actualizar, y además hay un montón de paquetes psa (Plesk) que dependen de php4 (los cuales te obliga a desinstalar si intentas directamente php5)&lt;br /&gt;&lt;br /&gt;La solución está en la web de swsoft: http://kb.swsoft.com/en/1762&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# apt-get install psa-php5-configurator libapache2-mod-php5&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Lo que no dicen de donde te bajas el paquete psa-php5-configurator. Pero sólo necesitarás crearte un /etc/apt/sources.list como el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# Para todas los paquetes de configuración de Plesk&lt;br /&gt;deb http://autoinstall.plesk.com/debian/PSA_8.2.0 etch all&lt;br /&gt;&lt;br /&gt;# Para Debian&lt;br /&gt;deb ftp://ftp.rediris.es/debian etch main contrib non-free&lt;br /&gt;deb http://security.debian.org etch/updates main contrib non-free&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Con estos repositorios también podemos instalar otras opciones como FastCgi:&lt;br /&gt;&lt;blockquote&gt;apt-get install psa-mod-fcgid-configurator&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Espero que os sea útil.&lt;br /&gt;&lt;br /&gt;Un saludo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-6789461979025324580?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/08/como-instalar-php5-en-un-plesk-82-con.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-685263584265299248</guid><pubDate>Tue, 07 Aug 2007 15:39:00 +0000</pubDate><atom:updated>2007-11-30T12:47:40.251+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Varios</category><title>Análisis ordenador Dell Vostro 200</title><description>Hace unas horas que ha llegado un nuevo ordenador para sustituir al equipo que utilizo en el trabajo. Un bonito Dell Vostro 200. Voy a contar un poco lo que me ha parecido y demás.&lt;br /&gt;&lt;br /&gt;Lo primero decir que el embalaje perfecto, como suele ser con Dell :). El tiempo de espera desde que se compró hasta que llegó apenas 2 semanas, así que también muy bien. Manuales y CDs también completito, trae CD de recuperación, otro con controladores y algunos con aplicaciones extras.&lt;br /&gt;&lt;br /&gt;Una vez que está montado en la mesa, es bastante bonito y, el aspecto de las piezas parece de buena calidad. Todo va a juego en color negro (Torre, pantalla, teclado y ratón).&lt;br /&gt;&lt;br /&gt;Llegado el momento de encenderlo, resaltar que es un equipo bastante silencioso y ningún pixel muerto en la pantalla y el Windows Vista (que es lo que traía preinstalado) después de las primeras acciones, que parece ser que necesita cachear algunas cosas, ya va todo bastante suave y rápido.&lt;br /&gt;&lt;br /&gt;La configuración del equipo es:&lt;br /&gt;&lt;br /&gt;- Intel Core 2 CPU 1.86Ghz&lt;br /&gt;- 2GB RAM&lt;br /&gt;- 2 x 250GB Disco duro&lt;br /&gt;- Gráfica ATI Radeon X1300PRO 256MB&lt;br /&gt;- Monitor TFT 22 pulgadas panorámico&lt;br /&gt;- Windows Vista Business Edition&lt;br /&gt;&lt;br /&gt;Bastante completito... y ahora el precio, que es lo que más me gusta. Todo esto sale aproximadamente por unos 650€ (más IVA), teniendo en cuenta que sólo la licencia del Windows calculo que deben ser unos 100€, así que no esta nada nada mal.&lt;br /&gt;&lt;br /&gt;Si estás buscando un equipo, te recomiendo que eches un vistazo a esta opción.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Actualizado&lt;/span&gt; 30/11/2007 : Hace tiempo ya instalé Ubuntu 7.10 en este pc y todo funcionando sin problemas, aunque no he llegado a probar compiz por falta de tiempo, la tarjeta gráfica usando los drivers propietarios va perfecta.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-685263584265299248?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/08/analisis-ordeandor-dell-vostro-200.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-3299482038381174810</guid><pubDate>Sat, 14 Jul 2007 13:35:00 +0000</pubDate><atom:updated>2008-12-10T14:34:31.263+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Google</category><title>GMail detecta los track number de UPS</title><description>Hoy descubrí una nueva integración de GMail. Resulta que hace un par de días compré unos artículos a una tienda de Internet y solicité que me lo enviaran por la agencia UPS. Cuando me gestionaron el pedido me enviaron un correo electrónico donde me informaban del &lt;i&gt;track number&lt;/i&gt; para poder realizar el seguimiento. Curioso como GMail detecta el código y nos muestra una nueva opción para acceder directamente al seguimiento de dicho envío.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_gj1cVm3cx7A/Ro5GDWCYYCI/AAAAAAAAAA0/68tg8MQZKSM/s1600-h/gmail-ups.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_gj1cVm3cx7A/Ro5GDWCYYCI/AAAAAAAAAA0/68tg8MQZKSM/s320/gmail-ups.png" alt="" id="BLOGGER_PHOTO_ID_5084078052616986658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Está claro que la capacidad de análisis de textos de Google parece no tener límites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-3299482038381174810?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/07/gmail-detecta-los-track-number-de-ups.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_gj1cVm3cx7A/Ro5GDWCYYCI/AAAAAAAAAA0/68tg8MQZKSM/s72-c/gmail-ups.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-204176863829904422</guid><pubDate>Wed, 04 Jul 2007 12:17:00 +0000</pubDate><atom:updated>2007-07-04T15:07:10.123+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Varios</category><title>Evitar el cansancio de la vista al manejar documentos</title><description>&lt;p class="MsoNormal"&gt;Cuando nos tenemos que pasar más de la mitad de la jornada laboral delante del monitor escribiendo documentos, los ojos se empiezan a cansar de estar expuesto tanto tiempo ante una pantalla en blanco con pequeño texto en negro. Seguramente recordaréis algunos que antiguamente existían procesadores de texto como Wordpress versiones 5 en la que se trabajaba sobre fondo azul oscuro y letras en blanco, aquella combinación de colores no era casual, siendo el resultado de estudios sobre ergonomía visual.&lt;/p&gt;      &lt;p class="MsoNormal"&gt;El objetivo de este artículo es enseñar como cambiar la apariencia visual del procesador de textos para trabajar de forma más relajada.&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Para la aplicación Microsoft Word:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;En el menú superior, marcamos la opción “Herramientas” -&gt; “Opciones”.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Nos aparecerá una ventana donde deberemos ir a la pestaña “General”.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Activaremos la opción: “Fondo azul, texto blanco”. Y finalmente al botón “Aceptar”.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Para la aplicación Openoffice.org Write:&lt;/p&gt;      &lt;p class="MsoNormal"&gt;Menú superior: "Herramientas" -&gt; "Opciones…"&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Y en la ventana que nos aparece: "OpenOffice.org" -&gt; "Representación"&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;Aquí podremos seleccionar o crear esquemas de colores, que viene a ser los distintos colores que usará la aplicación para representar cada uno de los elementos. En este caso sólo necesitamos modificar el elemento "Fondo de documento" y seleccionar el color "Azul" y, el "Color de la fuente" a color "Blanco".&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;También podremos personalizar bastantes más cosas como, colores para enlaces, saltos, índices y otros.&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;No os preocupéis, que aunque veáis el documento con fondo azul, al imprimir, seguirá imprimiendose en blanco.&lt;/p&gt;Por cierto, que aquí en la oficina, cada vez somos más los que tenemos activas este tipo de opciones. En cuanto te acostumbres, ya no querras volver al cansado blanco.&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-204176863829904422?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/07/evitar-el-cansancio-de-la-vista-al.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-5045169607172459174</guid><pubDate>Tue, 03 Jul 2007 13:03:00 +0000</pubDate><atom:updated>2007-07-03T15:25:12.200+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Dominios</category><title>Dominio Chinese.com</title><description>Pues ahora mismo acaba de terminar la subasta del dominio &lt;span style="font-weight: bold;"&gt;Chinese.com&lt;/span&gt; que se estaba realizando en el portal de compra-venta de dominios SEDO.&lt;br /&gt;&lt;br /&gt;La friolera cifra de: 805.001 euros.&lt;br /&gt;&lt;br /&gt;No está mal...&lt;br /&gt;&lt;br /&gt;Ya de paso comentaré lo que me paso hace unas semanas con un dominio. Resulta que recibí una oferta de 300 euros por uno de mis dominios que más me gusta. Como me pareció poco, decidí hacerle una contraoferta. Lo curioso es que todas las cifras que iba pensando me parecía poco... hasta que me decanté por pedir 113.000 euros. Lógicamente esta cifra era demasiado alta, y el comprador canceló la negociación directamente (no lo culpo). Lo que queda de moraleja es que ya no estamos en el año 2000 y los dominios valen lo que valen y no intentes sacar más que nadie te lo va a dar.&lt;br /&gt;&lt;br /&gt;PD. Seguramente el dominio en cuestión tuviera realmente un precio de unos 2.000 euros. Para la próxima se que tengo que ser más realista con las cantidades que la gente estaría dispuesta a pagar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-5045169607172459174?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/07/dominio-chinesecom.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-6298653302270955515</guid><pubDate>Fri, 29 Jun 2007 14:20:00 +0000</pubDate><atom:updated>2007-06-29T16:22:31.467+02:00</atom:updated><title>Cómo solicitar una subvención de innovación tecnológica</title><description>&lt;p&gt;Últimamente en el trabajo me estoy encargando de redactar la documentación para solicitar ayudas con las que realizar determinados proyectos tecnológicos. Como comprenderéis, es algo a lo que no te enseñan en la universidad...&lt;br /&gt;&lt;br /&gt;Os voy a hablar un poco del temas de ayudas a proyectos de tecnología por si alguna vez os toca pedir alguna.&lt;br /&gt;&lt;br /&gt;Hay diferentes tipos de ayudas, están las de nivel europeo (de estas no las he tocado), a nivel nacional (generalmente dadas por un ministerio, principalmente el &lt;a href="http://www.mityc.es/"&gt;Mityc&lt;/a&gt;  ) y a nivel comunidad autónoma.&lt;br /&gt;&lt;br /&gt;Os contaré algunas ayudas dadas por el Ministerio de Industria, Turismo y Comercio.&lt;br /&gt;Os podéis informar de las ayudas disponibles en cada momento a través del portal &lt;a href="http://www.mityc.es/portalayudas"&gt;&gt;&gt;&lt;/a&gt; .&lt;br /&gt;Cada subvención tiene unas condiciones determinadas y que son publicadas en el BOE, y generalmente salen dos órdenes en el Boletín, una primera la cual informa del tipo de ayuda (Plan Avanza Pyme, etc...) y que introducen algún tipo de ayuda que se dará durante varios años (ejemplo: 2007-2012), a estas órdenes se las suele llamar &lt;span style="font-style: italic;"&gt;reguladoras&lt;/span&gt;. Por otra parte para cada año concreto aparece la orden de dicho año, en la que ya aparece información más específica de la subvención, presupuesto disponible en ayudas, etc. Con lo que es recomendable leerse ambas órdenes.&lt;br /&gt;En cuanto al contenido de la memoria depende de cada ayuda, pero por lo general encontramos una estructura común formada por tres partes:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Memoria técnica. Dónde se describirá el proyecto, es importante reflejar aquí los objetivos que se buscan, los beneficios de la sociedad que se desean conseguir y un definición de fases en las que se dividirá el proyecto. Generalmente cuanto más innovador es el proyecto más puede despertar el interés por los técnicos que revisén la petición, pero hay que tener cuidado en describir todo bien, dado que por lo general, no conocerán las tecnologías más actuales.&lt;/li&gt;&lt;li&gt;Memoria económica. Tendremos que escribir un presupuesto respetando las fases que anteriormente hemos desglosado en la memoria técnica, y acordarnos de poner el coste por hora de cada tipo de personal, así como los diferentes costes de inversiones requeridas para el proyecto (compra de material informático, licencias de software, etc.). Lo más complicado de esta parte es saber meter cada gasto en el apartado correcto, dado que el porcentaje que se subvenciona varía si es parte de consultoría o desarrollo, adquisición de equipos, inmuebles, etc. cada tipo tendrá un porcentaje a aplicar para la petición y para esto son muy muy estrictos los técnicos. Cuando hablo de porcentaje me refiero a lo siguiente: imaginemos que tenemos un gasto de 100 horas de consultor junior a un coste de 50€/h, eso daría un total de coste de 5.000€, la consultoría en muchos proyectos se subvenciona al 50%, luego aunque el coste total sea de 5.000€ sólo podremos pedir 2.500€.&lt;/li&gt;&lt;li&gt;Memoria de solvencia. Básicamente la capacidad de la empresa o asociación de realizar el proyecto. Aquí es importante remarcar la antigüedad de la empresa, facturación de los últimos tres años y otros proyectos realizados satisfactoriamente. Si además contamos con proyectos subvencionados otros años, está bien ponerlo también.&lt;/li&gt;&lt;/ul&gt;Y con esto ya tendríamos toda la memoria lista. Generalmente estamos haciendo unas 50-60 hojas por proyecto de unos 100.000€, aunque después sólo se pague una pequeña parte, siempre viene bien este tipo de ayudas.&lt;br /&gt;&lt;br /&gt;Sólo me falta decir que en todos los apartados, cuantas más cifras, gráficas, y demás pongamos mejor! Dado que dará mayor sensación de tener controlado el proyecto. Además de que suele ser más fácil de comprender la amplitud de una acción por medio de números que leyendo un montón de párrafos describiendo algo abstracto.&lt;br /&gt;&lt;br /&gt;Espero que os animeis a pedir las vuestras. ¡Suerte!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-6298653302270955515?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/06/como-solicitar-una-subvencion-de.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-1238933867503671628</guid><pubDate>Sat, 02 Jun 2007 22:56:00 +0000</pubDate><atom:updated>2007-07-03T15:24:04.454+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Universidad</category><title>Patrones de diseño</title><description>Supongo que ya estaréis artos de escuchar por todas partes las palabras "...patrones de diseño..." y lo importantes que son dominarlos para mejorar la eficiencia en el diseño de aplicaciones. Pues os voy a hablar otro poco más.&lt;br /&gt;Este año estoy cursando en la escuela una asignatura dedicados a ellos, se llama algo así como: "Reutilización y diseño de patrones de software". Previamente conocía que existían e incluso sabía usar e implementar un par de ellos, pero nunca me animaba a ponerme seriamente con ellos.&lt;br /&gt;Ahora creo que se usar más o menos bien unos 8 patrones, además de conocer otros tantos (por si algún día tengo que tirar de ellos). La pregunta después de todo esto es: ¿Son realmente útiles? Pues eso parece... veamos el porqué.&lt;br /&gt;&lt;br /&gt;En la mayoría de los casos, los ejemplos de los patrones suelen ser muy simples y bonitos que funcionana perfectamente, pero cuando estamos haciendo el diseño de un programa, las cosas no son tan fáciles. No obstante conocer que existen y estudiar su implementación nos hacen ver otro punto de vista para solucionar problemas, que si bien no se adaptará 100% a los requisitos y por lo tanto no se podrá usar tal cual, nos ayudará a que nuestros diseños poco a poco empiecen a parecerse a unos u otros patrones y comenzaremos a pensar de forma más abstracta a la hora de tirar líneas de código.&lt;br /&gt;&lt;br /&gt;Otra razón de peso para empezar a usar patrones es la mayor facilidad de explicar el código de una aplicación a otra persona, siempre y cuando esta persona también conozca los patrones, porque   nos ahorraremos de tener que explicar lo que hacen dichas partes de código.&lt;br /&gt;&lt;br /&gt;Libro recomendado: "Patrones de diseño aplicados a Java" de Stephen Steling y Olav Maasseng. Editorial Prentice Hall (2002).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-1238933867503671628?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/06/patrones-de-diseo.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-8842500582628175779</guid><pubDate>Fri, 30 Mar 2007 09:04:00 +0000</pubDate><atom:updated>2007-03-30T11:51:13.044+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>DevDay 2007</title><description>Ayer ( 29 de Marzo de 2007 ) se celebró en Madrid la &lt;a href="http://www.microsoft.com/spanish/msdn/spain/eventos/devday/default.mspx"&gt;DevDay 2007&lt;/a&gt;. Voy a contaros un poco lo que se pudo ver allí y las impresiones que me llevé.&lt;br /&gt;&lt;br /&gt;A las 9:15 aproximadamente ya estaba entrando, nos dieron una entrada para la peli 300, una bolsa con revistas varias de informática y un libro sobre Windows Presentation Foundation.&lt;br /&gt;&lt;br /&gt;La primera charla "Mejores prácticas en aplicaciones servidor" fue una de las más interesantes del día (tal vez porque al ser la primera se presta más atención), hablaron sobre pruebas de stress con Visual Studio Test Edition, crear páginas web asíncronas para mejorar el performance de un servidor, y una herramienta llamada CLR Profiler capaz de analizar la memoria de proceso en .net y permitir analizar que objetos tiene instanciados y el árbol que forman en la memoria.&lt;br /&gt;&lt;br /&gt;Segunda charla (acumulando ya media hora de retraso) fue acerca de "Metodologías con Visual Studio Team System", no lo miré mucho porque fue un ver de nuevo una charla que dieron hace dos años también sobre esto.&lt;br /&gt;&lt;br /&gt;Tercera charla de "Mejores prácticas en la experiencia de usuario". Además de definir qué es la experiencia de usuario, me quedó como interesante el que existieran unas guías sobre la experiencia de usuario para Vista, un monton de consejos sobre cómo debemos hacer las interfaces para que sean agradables al usuario y facilite su utilización: &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/UxGuide/UXGuide/Home.asp"&gt;Windows Vista User Experience Guidelines&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cuarta charla de "Mejores prácticas en el desarrollo Web:ASP.NET 2.0 AJAX", me esperaba otra cosa en esta conferencia. Está claro que al Web.config hay que cambiar a "debug=false" cuando estamos en producción y que esto era lo que la gente hacía, pero debe ser que no, porque insistieron mucho. Hubo una referencia sobre una aplicación para analizar Ajax y un par de patrones interesantes de usar.&lt;br /&gt;&lt;br /&gt;Llegó la hora de comer y descanso de 1 hora.&lt;br /&gt;&lt;br /&gt;En la sesión de tarde se agregó una de las charlas que estaba programada para la mañana pero que por falta de tiempo no pudo darse.&lt;br /&gt;&lt;br /&gt;Quinta charla de "Mejores prácticas en el desarrollo para SQL Server", supongo que un poco de lo de siempre, cuándo y por qué usar procedimientos almacenados, funciones de usuario etc, con una demo para ver lo que pasa cuando se hacen cosas mal y de pasar una consulta con 35.000.000 lecturas (supongo que de bloques lógicos) a 6 lecturas con una consulta y procedimientos/funciones/etc bien creados.&lt;br /&gt;&lt;br /&gt;Sexta charla de "Mejores prácticas de desarrollo de código seguro", digamos que fue una charla diferente, resaltaron que hay que cuidar mucho la seguridad en el nivel de aplicaciones y que recomiendan usar una metodología de seguridad como la SDL-IT (Security Development Lifecicle for IT)&lt;br /&gt;&lt;br /&gt;Septima charla de "Orcas. La nueva generación de Visual Studio" que nos contaron las novedades de .net 3.0 y ligeras pinceladas de lo que trairía la nueva versión de Visual Studio, así como del Team Foundation Server. No me parecio que hubiera grandes cambios. Ah! bueno después una demo de LINQ mostrando un poco que es y para que sirve.&lt;br /&gt;&lt;br /&gt;Y con esto llegamos a la última charla, septima de "Desarrollo de gadgets para Windows Vista" he de reconocer que no atendí mucho esta charla, porque como aun no he manejado Vista ni los gadgets me llamaban mucho la atención... básicamente dejaron claro que eran como páginas web metidas en un pequeño cuadrado, y mientras hicieron un juego raro en el que se cambiaron de vestimenta a una de gala para pasar a el último evento. La entrega de premios de un concurso sobre desarrollo de gadgets.&lt;br /&gt;&lt;br /&gt;Y se acabó, ya aquí me fui para casa. Aunque bastante gente creo que se quedó a un pase al que estabamos invitados de la película 300.&lt;br /&gt;&lt;br /&gt;Ahora que ya he ido a dos DevDay (el anterior fue el 2005) puedo comparar. Y he de decir, que el anterior DevDay 2005 me dejó mejor sabor de boca que este. También es cierto que en aquel evento se presento VS.NET 2005 y cosas que no había visto hasta aquel momento.&lt;br /&gt;&lt;br /&gt;Ahora a la espera de que manden el email con las presentaciones y así ver las referencias, que hubo alguna que otra interesante y que no pude cazar en el momento.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-8842500582628175779?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/03/devday-2007.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-1807315493726166277</guid><pubDate>Mon, 26 Mar 2007 20:29:00 +0000</pubDate><atom:updated>2007-04-14T21:51:51.089+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>Cómo forzar la descarga de un archivo en una página web</title><description>Voy a comentaros este pequeño truco. Se trata de hacer que desde una página web en la que queremos enviar un archivo al cliente y que el navegador le pregunte lo típico de: Abrir, Guardar ... en vez de que lo abrá directamente dentro del navegador. Ejemplo, fichero .pdf y queremos que le pregunte si desea guardarlo, etc. en vez de abrirlo incómodamente dentro del navegador como ocurre muchas veces.&lt;br /&gt;&lt;br /&gt;La solución es tan fácil como indicarlo en las cabeceras. Para Asp.Net sería algo así:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;string nombreFichero = "documento.pdf"; // o el nombre que queramos poner&lt;br /&gt;Response.AppendHeader("content-disposition", "attachment; filename=" + nombreFichero);&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Después quedaría asignar el tipo de contenido a través de las mime-type:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Response.ContentType = "application/pdf";&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Y finalmente asignar los datos del fichero que queremos transferir (hay muchas formas de hacer esto):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Response.BinaryWrite( (byte[]) datos);&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Es bueno que indicar que se desea terminar la transferencia de la petición del cliente por medio del comando:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Response.End();&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Para que no se procese el texto de la página, ni el Render de los componentes.&lt;br /&gt;&lt;br /&gt;Espero que os sea de utilidad.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Actualización&lt;/span&gt;: No lo comenté, pero lo que se hace con todo esto es agregar una opción más en las cabeceras de la respuesta http, en este ejemplo se agregaría:&lt;br /&gt;&lt;blockquote&gt;content-disposition: attachment; filename=documento.pdf&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-1807315493726166277?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/03/cmo-forzar-la-descarga-de-un-archivo-en.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-4386679048715463643</guid><pubDate>Sat, 24 Mar 2007 13:25:00 +0000</pubDate><atom:updated>2007-03-24T14:26:59.029+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>Descargar MSDN Library</title><description>Después de perder una gran cantidad de tiempo navegando por las leeeentas páginas de Msdn Library he terminado haciendo una búsqueda para ver si estaba disponible pada descargar y trabajar en local. Y afortunadamente existe!&lt;br /&gt;&lt;br /&gt;2GB de fichero en formato ISO. Puedes descargarlo de:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=es&amp;FamilyID=94596af5-cc58-45af-a14b-df627a31e783"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=es&amp;FamilyID=94596af5-cc58-45af-a14b-df627a31e783&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esta es la versión de diciembre 2006... bastante actualizado.&lt;br /&gt;&lt;br /&gt;Para mi gusto, no termina de ser excesivamente cómoda. Está en formato ayuda de windows y puedes llegar a perderte con un treeview taaaan grande (aunque existen filtros). La versión del enlace es la correspondiente con español, pero eso no quiere decir que sea más reducida que la versión inglesa, realmente tiene los mismo artículos, lo único que algunos como es natural están sin traducir.&lt;br /&gt;&lt;br /&gt;Interesante tener a mano para leer de vez en cuando.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-4386679048715463643?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/03/descargar-msdn-library.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-3465062665455332489</guid><pubDate>Fri, 23 Mar 2007 01:25:00 +0000</pubDate><atom:updated>2007-03-24T14:27:53.234+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>Como crear un MembershipProvider personalizado</title><description>Estaba navegando por el newsgroup de soporte que tiene Microsoft y una de las primeras dudas que veo de alguien era directamente sobre algo en lo que estuve mirandome estos dos últimos días. ¡Casualidad! así que me he marcado un post respondiendole y de pasó aquí lo dejo también :)&lt;br /&gt;&lt;br /&gt;La duda es sobre las limitaciones de SQLMembershipProvider y si se puede ampliar las funcionalidades de alguna forma. La respuesta es que si, creando nuestro propio MembershipProvider, y a continuación el How to de como sería esto:&lt;br /&gt;&lt;br /&gt;-------------------&lt;br /&gt;Curiosamente estoy haciendo ahora un MembershipProvider personalizado :) (Exactamente un Db4oMembershipProvider)&lt;br /&gt;&lt;br /&gt;SQLMembershipProvider hereda de la clase MembershipProvider, que es la clase abstracta que define los métodos y propiedades que debe tener un MembershipProvider en general.&lt;br /&gt;&lt;br /&gt;La clase que usas SQLMember... está como tu bien dices sólo para usar la estructura de datos que se crea automáticamente, etc.&lt;br /&gt;&lt;br /&gt;Si necesitas algo más avanzado o personalizado tendrás que crearte tu propia clase, MyMembershipProvider (por ponerle un nombre)&lt;br /&gt;&lt;br /&gt;Pasos que tendrás que hacer:&lt;br /&gt;&lt;br /&gt;- Crearte una clase que herede de System.Web.Security.MembershipProvider&lt;br /&gt;&lt;br /&gt;- Implementar todos los métodos y propiedades que tiene dicha clase. Esto con Visual Studio es muy fácil. Botón derecho en el nombre de la clase -&gt; implementar métodos abstractos...&lt;br /&gt;&lt;br /&gt;- Tendrás que escribir los métodos con las funcionalidades que necesitesutilizar, y los que no, puedes dejarlos con un throw new Exception("No implementado");&lt;br /&gt;&lt;br /&gt;- Y bueno, hay una cosa un poco rara que te comento de paso. Todo MembershipProvider tiene que tener un nombre. Tendrás que definir una propiedad Name como algo parecido a:&lt;br /&gt;---------------------------------------&lt;br /&gt;     private string _name;&lt;br /&gt;&lt;br /&gt;     public override string Name {&lt;br /&gt;        get { return _name; }&lt;br /&gt;     }&lt;br /&gt;---------------------------------------&lt;br /&gt;&lt;br /&gt;Y aquí está el problema, el nombre se le da al provider por medio de un método llamado Initialize, pero este creo que no estaba marcado como abstrac y por lo tanto por defecto no se genera el método override... tendrás que añadir algo como:&lt;br /&gt;&lt;br /&gt;---------------------------------------&lt;br /&gt;     public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)&lt;br /&gt;     {&lt;br /&gt;         if (String.IsNullOrEmpty(name))&lt;br /&gt;             _name = "CMembershipProvider";&lt;br /&gt;         else&lt;br /&gt;             _name = name;&lt;br /&gt;&lt;br /&gt;         base.Initialize(name, config);&lt;br /&gt;     }&lt;br /&gt;---------------------------------------&lt;br /&gt;&lt;br /&gt;Después deberás agregar en el Web.Config unas líneas para indicar que quieres disponer de un determinado MembershipProvider dentro de tu catálogo de Providers y definirlo como por defecto:&lt;br /&gt;&lt;br /&gt;---------------------------------------&lt;br /&gt;&amp;lt;system.web&amp;gt;&lt;br /&gt;[...]&lt;br /&gt;   &amp;lt;membership defaultprovider="MyMembershipProvider"&amp;gt;&lt;br /&gt;     &amp;lt;providers&amp;gt;&lt;br /&gt;       &amp;lt;add name="MyMembershipProvider" type="MyNamespace.MyMembershipProvider" applicationname="/"&amp;gt;&lt;br /&gt;     &amp;lt;/add&amp;gt;&lt;br /&gt;   &amp;lt;/providers&amp;gt;&lt;br /&gt;[...]&lt;br /&gt;&amp;lt;/membership&amp;gt;&lt;br /&gt;---------------------------------------&lt;br /&gt;&lt;br /&gt;El name no tiene por que coincidir con el nombre de la clase, es sólo para identificarlo dentro del catálogo de Providers. Y en type es donde tendrás que poner la ruta a tu clase personalizada (incluyendo los namespaces).&lt;br /&gt;&lt;br /&gt;Espero que te haya servido de ayuda ;)&lt;br /&gt;&lt;br /&gt;Jaime&lt;br /&gt;&lt;br /&gt;&lt;system.web&gt;&lt;/system.web&gt;&lt;/system.web&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-3465062665455332489?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/03/como-crear-un-membershipprovider.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-363836327258552563</guid><pubDate>Wed, 21 Mar 2007 02:34:00 +0000</pubDate><atom:updated>2007-03-21T03:50:34.440+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><title>¡Para recordar! En Asp.Net poner siempre el ID en los controles creados dinámicamente.</title><description>Creo que he perdido como 6 horas por no poner los ID manualmente a los controles que creo dinámicamente.&lt;br /&gt;&lt;br /&gt;La historia se resume en que en un WebForm insertaba unos cuantos botones por ahí en función de ciertos datos que eran fruto de eventos generados previamente por el usuario.&lt;br /&gt;&lt;br /&gt;Yo que confío mucho en los frameworks y esas cosas, con lo que estaba dejando que el propio asp.net estableciera los ID de todos los componentes que creaba dinámicamente, (esos nombres que siempre establece como ctr01, ctr02...). Todo parece ir bien hasta que... esos botones tienen eventos asociados de Command (básicamente como el Click) con métodos que tenía en el "codebehind".&lt;br /&gt;&lt;br /&gt;De repente y después de medio funcionar todo, algunos botones dejan de generar el evento, además con cierta aleatoriedad (aunque siempre encontré un patrón por el que fallaban)&lt;br /&gt;&lt;br /&gt;¿Qué estaba sucediendo? Pues que por determinadas razones que no vienen mucho a cuento, no se estaban asignado el mismo ID a los botones de una llamada a otra (siempre las llamadas eran PostBack), así que el gestor de eventos se hacía un poco el lio y encontraba peticiones de botones que él no reconocía. Dado que la petición anterior esos botones tenían un nombre diferente.&lt;br /&gt;&lt;br /&gt;Lo se, toda la culpa es mia, pero lo que más rabia me da, es que hace 5 meses estuve haciendo también una cosa parecida y cometí el mismo fallo!!!&lt;br /&gt;&lt;br /&gt;En fin, errar es de hombres y yo debo de ser muy humano.&lt;br /&gt;&lt;br /&gt;Al menos con tanto rebuscar, he dado un buen refresco al sistema de ejecución de páginas en asp.net además de las opciones de depuración de Visual Studio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-363836327258552563?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/03/para-recordar-en-aspnet-poner-siempre.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-4518895558929161312</guid><pubDate>Sun, 11 Mar 2007 21:36:00 +0000</pubDate><atom:updated>2007-03-24T14:33:30.329+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Yoigo</category><title>Configurar Internet  y MMS en Yoigo</title><description>¡Esta vez la novedad es que tengo un móvil 3G con Yoigo! Pues si, mi novia me ha hecho un regalazo al que le había echado el ojo desde hace unas semanas, un pack con el Sony Ericsson K610i y con número de Yoigo incluido.&lt;br /&gt;&lt;br /&gt;La necesidad que intento cubrir con esto es básicamente poder tener conectividad a Internet cada vez que estoy de viaje o simplemente fuera de casa. El móvil un lujazo en calidad/precio. Bluetooth, cámara 2Mps, ranura para tarjeta de memoria (tipo 2M), trae un navegador bastante decente, así como aplicaciones extras como lector RSS, soporte de Java Midlet 2.0, y un montón de cosas más. En la caja venía el móvil, cargador, cable conexión USB con el ordenador y CD con los típicos programas para configurar el móvil con el orde.&lt;br /&gt;&lt;br /&gt;En cuanto a Yoigo, este fin de semana estuve en una casa perdida en una montaña y como esperaba... no había cobertura Yoigo, pero ahí estaba Vodafone para echar un cable.&lt;br /&gt;&lt;br /&gt;Lo mejor, cuando ya has llegado al 1,20€, recibir los mensajes con la información de gasto de 0€ !!&lt;br /&gt;&lt;br /&gt;Y bueno, aunque la gente habla muy bien de la conexión de datos de Vodafone, como no he probado las dos, no puedo comparar. Pero de momento me quedo con esta que además parece salir más económica :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para ver configuraciónes de móviles / ordenadores para conectarte a internet a través de Yoigo ver: &lt;a href="http://yoigo.blogspot.com/search/label/Configuraciones"&gt;Configuración acceso a internet con Yoigo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-4518895558929161312?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/03/configurar-internet-y-mms-en-yoigo.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-8429215120745872601</guid><pubDate>Wed, 21 Feb 2007 13:09:00 +0000</pubDate><atom:updated>2007-07-03T15:23:39.934+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Universidad</category><title>Proyecto fin de carrera</title><description>Pues ya me van quedando pocas asignaturas para terminar la carrera así que debo empezar a plantearme que proyecto fin de carrera hacer. Lo primero decir que acepto sugerencias!!&lt;br /&gt;&lt;br /&gt;De momento las cosas que había pensado son:&lt;br /&gt;- Análisis web, o cosas relacionadas con SEO.&lt;br /&gt;- Identificar algún protocolo de lo que sea que no esté soportado por J2ME y crear una implementación de dicho protocolo.&lt;br /&gt;- Algo relacionado con mobility... posibles tecnologías: gps, bluetooth, rfid, etc.&lt;br /&gt;&lt;br /&gt;Seguiré pensando, espero que se me ocurra algo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-8429215120745872601?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/02/proyecto-fin-decarrera.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-1277196603765689299</guid><pubDate>Tue, 06 Feb 2007 22:33:00 +0000</pubDate><atom:updated>2007-02-08T12:49:03.690+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Google</category><title>Google AdSense for domains</title><description>Hace poco, &lt;a href="http://jaimecg.blogspot.com/2007/01/pensando-en-vender-un-dominio.html"&gt;hablaba&lt;/a&gt; sobre alojar dominios sin contenidos en algún parking tipo SEDO e intentar amortizar el coste de mantener dicho dominio.&lt;br /&gt;&lt;br /&gt;Bien, si eres un &lt;span style="font-style:italic;"&gt;&lt;a target="_blank" href="http://es.wikipedia.org/wiki/Domainer"&gt;domainer&lt;/a&gt;&lt;/span&gt; con una gran lista de dominios que desea aparcar, entonces te recomiendo que eches un vistazo al servicio de &lt;a target="_blank" href="http://www.google.com/domainpark/"&gt;Google AdSense for Domains&lt;/a&gt;. El gran problema es que sólo está disponible para aquellas cuentas con un alto número de dominios y previa petición. Aunque no tengo datos concretos, creo que es más interesante económicamente que otras compañías de parkings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-1277196603765689299?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/02/google-adsense-for-domains.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5873468744732853824.post-3962447715949884256</guid><pubDate>Sun, 21 Jan 2007 14:17:00 +0000</pubDate><atom:updated>2007-01-21T15:22:39.445+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Enlaces</category><title>El uso de tablas en páginas web</title><description>Hoy encontré a através de meneame una web que habla sobre el gran error de utilizar tablas para maquetar una página web.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.effectivetranslations.com/stupidtables/everything_es.html"&gt;Porqué el diseñar con tablas es estúpido&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recomiendo su lectura, encontrarás argumentos bastante contundentes por si alguna vez necesitas convencer a alguien.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5873468744732853824-3962447715949884256?l=blog.jaimecg.com' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.jaimecg.com/2007/01/el-uso-de-tablas-en-pginas-web.html</link><author>noreply@blogger.com (Jaime Cáceres)</author><thr:total>0</thr:total></item></channel></rss>

