<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" 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-5731334693514485625</atom:id><lastBuildDate>Thu, 05 Sep 2024 11:12:34 +0000</lastBuildDate><category>tecnología</category><category>noticias</category><category>subvenciones</category><category>accesibilidad</category><category>web</category><category>agile</category><category>cursos</category><category>scrum</category><category>linux</category><category>móviles</category><category>usabilidad</category><category>css</category><category>eclipse</category><category>java</category><category>liderazgo</category><category>programacion</category><category>REST</category><category>aprovisionamiento</category><category>coaching</category><category>css3</category><category>google</category><category>grails</category><category>groovy</category><category>html5</category><category>vagrant</category><category>virtualizacion</category><category>Glassfish</category><category>SEO</category><category>ansible</category><category>apache</category><category>diseño</category><category>docker</category><category>ear</category><category>ejb</category><category>git</category><category>github</category><category>jee</category><category>opinion</category><category>provisioning</category><category>veewee</category><category>wordpress</category><title>Adama Consulting</title><description>Ciencia tecnología y humanismo</description><link>http://adamaconsulting.blogspot.com/</link><managingEditor>noreply@blogger.com (David Palomar)</managingEditor><generator>Blogger</generator><openSearch:totalResults>59</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-7104301237149359123</guid><pubDate>Thu, 12 May 2016 12:05:00 +0000</pubDate><atom:updated>2016-05-12T14:05:56.813+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">eclipse</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Solución para instalar JPA Diagram Editor en Eclipse Mars</title><description>Si tratas de instalar&lt;b&gt; JPA Diagram Editor&lt;/b&gt; en&lt;b&gt; eclipse Mars&lt;/b&gt; y te devuelve una pantalla en blanco con el error&amp;nbsp;&lt;span style=&quot;background-color: cornsilk; color: #242729; font-family: Arial, &#39;Helvetica Neue&#39;, Helvetica, sans-serif; font-size: 15px; line-height: 19.5px;&quot;&gt;diagramTypeProvider must not be null.&lt;/span&gt;&amp;nbsp; Enhorabuena has descubierto un &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=472835&quot;&gt;bug de eclipse Mars&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
A continuación te voy a enseñar como repararlo y poder disfrutar del editor de diagramas. Es sencillo, solamente hay que instalar una versión anterior de un componente que se llama Graphiti.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Solución&lt;/h4&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Clic en menú &lt;b&gt;Help -&amp;gt; Install new software&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Clic en botón &lt;b&gt;Add &lt;/b&gt;y pega la siguiente URL en el campo &lt;b&gt;Location&lt;/b&gt;:&amp;nbsp;http://download.eclipse.org/graphiti/updates/0.11.4/&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1dLVLR8gT0nkpilTZZeEKSqMrCuDS4vM5DZZwclk3EG9hyphenhyphenO1eHXUnncRNvNTpubZunLlcjDhILaamLaWTr0wBrt8JbKY2UXuJTnGoqect-7wVIg4A3LVftxvAqXcnhnvR-G7mE2lvvxE/s1600/graphiti_011.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;135&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1dLVLR8gT0nkpilTZZeEKSqMrCuDS4vM5DZZwclk3EG9hyphenhyphenO1eHXUnncRNvNTpubZunLlcjDhILaamLaWTr0wBrt8JbKY2UXuJTnGoqect-7wVIg4A3LVftxvAqXcnhnvR-G7mE2lvvxE/s320/graphiti_011.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Selecciona los componentes de graphiti 0.11 y pulsa el botón &lt;b&gt;next&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvRoJd13a7iaZFcxjdYhD3ZZNH8ihNDLpN7wFCt2LV6FU4GN7VgSsj26EW2dCTckD0VZT1amoY5l6wcqoYCrufFgAn2unvqrWleMhCQXLY3BVc3zGf1ZbMYwRxZzMJnFwQDAeXCbBBBj8/s1600/select_graphiti.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvRoJd13a7iaZFcxjdYhD3ZZNH8ihNDLpN7wFCt2LV6FU4GN7VgSsj26EW2dCTckD0VZT1amoY5l6wcqoYCrufFgAn2unvqrWleMhCQXLY3BVc3zGf1ZbMYwRxZzMJnFwQDAeXCbBBBj8/s640/select_graphiti.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comenzará la descarga y te advertirá que &amp;nbsp;la operación por defecto es desinstalar JPA Diagram Editor (si lo tienes instalado) porque es incompatible con la versión que quieres instalar de graphiti 0.11&lt;br /&gt;
&lt;br /&gt;
Acepta y cuando termine te pedirá reiniciar eclipse.&lt;br /&gt;
&lt;br /&gt;
Vuelve al menú de instalación de software y elige esta vez la url de &lt;b&gt;releases de mars&lt;/b&gt; como aparece en la imagen. Selecciona &lt;b&gt;JPA Diagram Editor &lt;/b&gt;y acepta:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi08KPYJVK1fEHQTBkADDS23UV4QJnevKDVt7f35kvT1KZvaP6MA7DS5uYVvi2nX8v9_hNc5A7jD4CPx58H8vG7ryT32vIndq-CEnNzFXH9Mhzefb78Kx9EqtzBXByMQy6Ri1An-FN8XTc/s1600/jpa_diagram_editor.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi08KPYJVK1fEHQTBkADDS23UV4QJnevKDVt7f35kvT1KZvaP6MA7DS5uYVvi2nX8v9_hNc5A7jD4CPx58H8vG7ryT32vIndq-CEnNzFXH9Mhzefb78Kx9EqtzBXByMQy6Ri1An-FN8XTc/s640/jpa_diagram_editor.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Te pedirá reiniciar nuevamente eclipse cuando termine. Después de eso ya podrás disfrutar de tu Editor de diagramas JPA.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfYSIGHcohVit0qBMrgm6ixi08_gZj2YrZoccTYbuJ0FL14ARzE-4Hzml9c0KFTzv94hz-S_HjH5wchwQDG1si869Oa8q3DxtUKjk2NVB7O8LQH0IEEeQp_MM1s-WMHfjcDY_ryQwuhUs/s1600/jpa_diagram.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfYSIGHcohVit0qBMrgm6ixi08_gZj2YrZoccTYbuJ0FL14ARzE-4Hzml9c0KFTzv94hz-S_HjH5wchwQDG1si869Oa8q3DxtUKjk2NVB7O8LQH0IEEeQp_MM1s-WMHfjcDY_ryQwuhUs/s640/jpa_diagram.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://adamaconsulting.blogspot.com/2016/05/solucion-para-instalar-jpa-diagram.html</link><author>noreply@blogger.com (David Palomar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1dLVLR8gT0nkpilTZZeEKSqMrCuDS4vM5DZZwclk3EG9hyphenhyphenO1eHXUnncRNvNTpubZunLlcjDhILaamLaWTr0wBrt8JbKY2UXuJTnGoqect-7wVIg4A3LVftxvAqXcnhnvR-G7mE2lvvxE/s72-c/graphiti_011.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-1442306886233250918</guid><pubDate>Tue, 19 Jan 2016 14:48:00 +0000</pubDate><atom:updated>2016-01-19T15:48:21.736+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ansible</category><category domain="http://www.blogger.com/atom/ns#">aprovisionamiento</category><category domain="http://www.blogger.com/atom/ns#">docker</category><category domain="http://www.blogger.com/atom/ns#">vagrant</category><category domain="http://www.blogger.com/atom/ns#">virtualizacion</category><title>Como instalar Ansible en Windows</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://upload.wikimedia.org/wikipedia/commons/0/05/Ansible_Logo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://upload.wikimedia.org/wikipedia/commons/0/05/Ansible_Logo.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Ansible es una potente herramienta para la automatización y aprovisionamiento de imágenes virtuales. Dentro del espacio que ocupan otras herramientas similares, podríamos decir que &lt;a href=&quot;http://www.ansible.com/&quot; target=&quot;_blank&quot;&gt;ansible &lt;/a&gt;necesita menos requerimientos, ya que toda la comunicación la puede hacer vía SSH, sin necesidad de instalar agentes, o infraestructuras con pesados servidores y también la sencillez al tratar la configuración mediante ficheros yaml.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Instalación de Ansible en Windows&lt;/h2&gt;
&lt;br /&gt;
Ansible funciona solamente con entornos linux, así que eso representa un problema con Windows. Además es una herramienta creada con python, por lo que necesitaremos de este entorno para hacerla funcionar. Por tanto, necesitaremos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cygwin.com/&quot;&gt;Cygwin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Intérprete python&lt;/li&gt;
&lt;li&gt;Cliente git&lt;/li&gt;
&lt;li&gt;PyYAML&lt;/li&gt;
&lt;li&gt;Jinja2&lt;/li&gt;
&lt;li&gt;clonar el repositorio de ansible&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
En algunos posts de internet la explicación es bastante larga, con muchos pasos en la configuración. Por ejemplo en &lt;a href=&quot;http://www.azavea.com/blogs/labs/2014/10/running-vagrant-with-ansible-provisioning-on-windows/&quot; target=&quot;_blank&quot;&gt;azavea&lt;/a&gt;, o en &lt;a href=&quot;https://servercheck.in/blog/running-ansible-within-windows&quot;&gt;servercheck.in&lt;/a&gt;&amp;nbsp;y por lo tanto propensa a fallos. Sin embargo en &lt;a href=&quot;http://stackoverflow.com/questions/32596203/cygwin-how-to-install-ansible&quot;&gt;stackoverflow &lt;/a&gt;encontramos una solución muy elegante y simple.&lt;br /&gt;
&lt;br /&gt;
Primero en lugar de descargar los paquetes desde el instalador de cygwin, vamos a usar &amp;nbsp;un gestor de paquetes para Cygwin. en este caso &lt;a href=&quot;https://github.com/transcode-open/apt-cyg&quot;&gt;atp-cyg&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Desde el terminal de cygwin escribimos lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg &amp;gt; apt-cyg&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;install apt-cyg /bin&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Una vez instalado podemos ejecutar los siguientes comandos. O bien utilizar el script que proponen en stackoverflow:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;#!/bin/sh&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;type apt-cyg || exit&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;apt-cyg install git python-{jinja2,six,yaml}&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;git clone --depth 1 git://github.com/ansible/ansible&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;cd ansible&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;PATH+=:~+/bin&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;export PYTHONPATH=~+/lib&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;ansible --version&lt;/span&gt;&lt;/blockquote&gt;
&lt;h3&gt;
Alternativa&lt;/h3&gt;
&lt;br /&gt;
Quizá la mejor alternativa sea la de usar una imagen de Linux para realizar la instalación de ansible y que dicha imagen haga de host, ya que en la &lt;a href=&quot;http://docs.ansible.com/ansible/intro_windows.html#reminder-you-must-have-a-linux-control-machine&quot;&gt;documentación de ansible&lt;/a&gt; se indica que &lt;b&gt;ni windows, ni cygwin están soportados&lt;/b&gt; y no hay previsiones de que se haga. Se puede usar una imagen rápidamente con &lt;b&gt;Vagrant &lt;/b&gt;o con &lt;b&gt;Docker&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://adamaconsulting.blogspot.com/2016/01/como-instalar-ansible-en-windows.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-8783778538680119949</guid><pubDate>Mon, 11 Jan 2016 11:58:00 +0000</pubDate><atom:updated>2016-01-11T12:58:38.532+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">aprovisionamiento</category><category domain="http://www.blogger.com/atom/ns#">provisioning</category><category domain="http://www.blogger.com/atom/ns#">vagrant</category><category domain="http://www.blogger.com/atom/ns#">veewee</category><category domain="http://www.blogger.com/atom/ns#">virtualizacion</category><title>Como instalar VeeWee en windows</title><description>La instalación de VeeWee en windows no es fácil y es propensa a errores, lo que últimamente viene siendo una tónica habitual con windows y herramientas basadas en ruby o node.&lt;br /&gt;
&lt;br /&gt;
En este artículo vamos a tratar de realizar el proceso lo menos doloroso posible y para ello vas a necesitar las siguientes herramientas:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Ruby&lt;/li&gt;
&lt;li&gt;RubyDev&lt;/li&gt;
&lt;li&gt;Msysgit&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Y para hacer el proceso más fácil vamos a instalar también &lt;b&gt;chcolatey&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Instala chocolatey&lt;/h4&gt;
&lt;br /&gt;
Ve a la siguiente página:&amp;nbsp;&lt;a href=&quot;https://chocolatey.org/&quot;&gt;https://chocolatey.org/&lt;/a&gt; y copia sólo uno de los códigos que aparecen (hay dos, uno para la consola normal de windows y otro para powershell). En este caso vamos a hacerlo con la consola normal de windows, por lo que el código sería el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #202020; color: #e2e2e2; font-family: &#39;andale mono&#39;, &#39;lucida console&#39;, monospace; font-size: 20.4px; line-height: 30.6px;&quot;&gt;@powershell -NoProfile -ExecutionPolicy Bypass -Command &quot;iex ((new-object net.webclient).DownloadString(&#39;https://chocolatey.org/install.ps1&#39;))&quot; &amp;amp;&amp;amp; SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Abre una consola de comandos de windows &lt;b&gt;con permiso de administrador&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Pega el código anterior&lt;/li&gt;
&lt;li&gt;Cierra la consola y ábrela de nuevo con permisos de administrador&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
Listo.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Instala Ruby&lt;/h4&gt;
&lt;br /&gt;
Con la consola de comandos (y permisos de administrador) escribe la siguiente sentencia:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;choco install -y ruby&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
chocolatey descargará el ejecutable y lo instalará en la carpeta c:\tools\rubyXX, donde XX se corresponderá con la última versión de ruby. Por ejemplo, en el momento de escribir este artículo la carpeta es c:\tools\ruby22&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Instala Ruby DevKit&lt;/h4&gt;
&lt;br /&gt;
Ruby Devkit es necesario pero no se puede instalar a día de hoy mediante chocolatey (aunque hay un paquete que así lo indica), porque hay un bug con las versiones de windows en 64 bits y todavía no ha sido resuelto. Así que para que funcione en versiones 64bits de windows hay que hacerlo de manera manual:&lt;br /&gt;
&lt;br /&gt;
Primero accedemos a la página de descargas de Rubyinstaller (&lt;a href=&quot;http://rubyinstaller.org/downloads/&quot;&gt;http://rubyinstaller.org/downloads/&lt;/a&gt;) y al final de la página nos aparecen las versiones del DevKit correspondientes a la versión de ruby instalada.&lt;br /&gt;
Así pues si hemos instalado la versión de ruby 2.2.3 podemos descargar la versión 2.0 del devkit para 64 bits. O bien directamente en este enlace:&amp;nbsp;&lt;a href=&quot;http://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe&quot;&gt;http://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Es un archivo auto-extraible con 7-zip, por lo que no necesitarás el descompresor, en caso contrario puede escribir previamente &lt;b&gt;choco install -y 7zip.install.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Ejecuta con doble click sobre el archivo descargado (&lt;i&gt;DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe&lt;/i&gt;) y selecciona como destino &lt;b&gt;C:\tools\Devkit2&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ATENCION&lt;/b&gt;: en la ruta que elijas tanto en la instalación de Ruby como Devkit &lt;b&gt;no debe haber espacios en blanco&lt;/b&gt;. No lo instales en &lt;i&gt;Program Files, Archivos de Programa&lt;/i&gt; o similares.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Configura Devkit&lt;/h4&gt;
&lt;br /&gt;
Tras la instalación hay que realizar una configuración tal y como aparece en sus instrucciones:&amp;nbsp;&lt;a href=&quot;https://github.com/oneclick/rubyinstaller/wiki/Development-Kit#4-run-installation-scripts&quot;&gt;https://github.com/oneclick/rubyinstaller/wiki/Development-Kit#4-run-installation-scripts&lt;/a&gt;, que podemos resumir en los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Abre una consola de git (Desde el botón de inicio busca en programas, o bien escribe git bash, dependiendo de la versión de windows que tengas)&lt;/li&gt;
&lt;li&gt;Sitúate dentro de la carpeta Devkit. Es un shell estilo unix así que tendrás que poner:&amp;nbsp;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;cd /c/tools/Devkit2&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Escribe el siguiente código&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;ruby dk.rb init&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Edita con notepad el fichero &lt;b&gt;config.yml generado&lt;/b&gt; y escribe una nueva línea con el siguiente código&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;&amp;nbsp;- C:/tools/ruby22&lt;/b&gt; (nota que hay un espacio antes del guión y otro después). Que corresponde a la instalación de tu ruby&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Cierra el fichero y escribe por consola el siguiente comando para verificar que no hay errores:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;ruby dk.rb review&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Si todo está bien escribe a continuación el siguiente comando:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;ruby dk.rb install&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Listo, con esto es suficiente para que funcione el Devkit, si quieres realizar comprobaciones puedes seguir las instrucciones del siguiente enlace: &lt;a href=&quot;https://github.com/oneclick/rubyinstaller/wiki/Development-Kit#5-test-installation&quot;&gt;https://github.com/oneclick/rubyinstaller/wiki/Development-Kit#5-test-installation&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;h3&gt;
Instalar VeeWee&lt;/h3&gt;
&lt;div&gt;
Ha llegado el momento de la instalación de veewee.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Con la consola de Git (Git bash) sitúate dentro de la carpeta c:\tools y escribe:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;https://github.com/jedi4ever/veewee.git&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Cuando termine la clonación encontrarás una nueva carpeta llamada veewee, sitúate dentro:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;cd veewee&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Escribe el siguiente comando:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;gem install bundler&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Cuando termine escribe este otro:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;bundle install&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Listo, ya has instalado vewee&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://adamaconsulting.blogspot.com/2016/01/como-instalar-veewee-en-windows.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-6926536153174368028</guid><pubDate>Mon, 09 Mar 2015 03:00:00 +0000</pubDate><atom:updated>2015-03-09T04:00:00.120+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">eclipse</category><category domain="http://www.blogger.com/atom/ns#">Glassfish</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><category domain="http://www.blogger.com/atom/ns#">REST</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Como hacer que funcionen los servicios RESTFul con Eclipse Luna y Glassfish</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://glassfish.java.net/images/gflogo24.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://glassfish.java.net/images/gflogo24.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Si estás usando &lt;b&gt;Eclipse Luna&lt;/b&gt; RC1 junto a &lt;b&gt;Glassfish &lt;/b&gt;vas a tener algunos problemas por el propio eclipse tal y como comentamos en otro post anterior.&lt;br /&gt;
&lt;br /&gt;
El problema viene porque eclipse RC1 es una Release Candidate, es decir una versión Beta y hay cosas que han cambiado en la versión final SR1.&lt;br /&gt;
&lt;br /&gt;
Supongamos que tienes instaladas las herramientas de Glassfish y quieres hacer un servicio REST con esa versión de eclipse.&lt;br /&gt;
&lt;br /&gt;
Bien pues lo primero que debes hacer es &lt;b&gt;NO utilizar&lt;/b&gt; las herramientas de creación de servicios REST de Glassfish. Bueno esto incluso aunque uses la versión SR de eclipse.&lt;br /&gt;
Hazlo desde las herramientas de eclipse y cuando termines te encontrarás que no funciona bien y es porque han cambiado en la versión&lt;b&gt; Glassfish 4&lt;/b&gt; la implementación de &lt;b&gt;Jersey &lt;/b&gt;y por tanto el servlet de acceso es distinto. Así pues tienes que &lt;b&gt;cambiar en el web.xml el servlet&lt;/b&gt; que aparece por este otro:&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: #eeeeee;&quot;&gt;&lt;b&gt;org.glassfish.jersey.servlet.ServletContainer&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;</description><link>http://adamaconsulting.blogspot.com/2015/03/como-hacer-que-funcionen-los-servicios.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-6776145299787014304</guid><pubDate>Wed, 04 Mar 2015 03:00:00 +0000</pubDate><atom:updated>2015-03-04T04:00:00.915+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">eclipse</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><category domain="http://www.blogger.com/atom/ns#">REST</category><title>No funcionan los servicios REST en eclipse luna</title><description>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.eclipse.org/downloads/packages/sites/all/themes/solstice/_themes/solstice_packages/logo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.eclipse.org/downloads/packages/sites/all/themes/solstice/_themes/solstice_packages/logo.png&quot; height=&quot;46&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hay diferencias notables entre las distintas versiones de &lt;b&gt;eclipse Luna&lt;/b&gt; y algunas se notan una barbaridad.&lt;br /&gt;
&lt;br /&gt;
Una de estas diferencias es en la gestión de los &lt;b&gt;servicios REST&lt;/b&gt;, que dependiendo de la versión de Luna que uses aparecen más o menos opciones, o incluso ninguna.&lt;br /&gt;
&lt;br /&gt;
Así pues si intentas crear un servicio REST que has visto en algún tutorial de Internet y no te aparecen las mimas opciones, o menos, o incluso distinto asistente, posiblemente esté usando &lt;b&gt;Eclipse Luna RC1.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Si quieres poder trabajar con servicios REST sin problemas y usando las herramientas de eclipse lo mejor es que migres de versión hacia &lt;b&gt;Eclipse Luna SR1 o bien la SR2.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Puedes encontrar una lista completa de paquetes de eclipse aquí:&lt;br /&gt;
&lt;a href=&quot;http://www.eclipse.org/downloads/packages/all&quot; target=&quot;_blank&quot;&gt;http://www.eclipse.org/downloads/packages/all&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Recuerda:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;RC &lt;/b&gt;significa &lt;b&gt;Release Candidate&lt;/b&gt; y todavía no puede considerarse una versión final&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SR &lt;/b&gt;significa &lt;b&gt;Stable Release&lt;/b&gt; y puede usarse con confianza.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;M &lt;/b&gt;significa &lt;b&gt;Milestone &lt;/b&gt;y por tanto en fase de desarrollo y poco estable.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
El número a continuación hace referencia a la revisión en la que se encuentra. Así SR2 es más estable que SR1, pero en cualquier caso huye de las versiones M y casi con toda seguridad de las RC, o por lo menos cámbiala en cuanto aparezca una SR.&lt;br /&gt;
&lt;br /&gt;</description><link>http://adamaconsulting.blogspot.com/2015/03/no-funcionan-los-servicios-rest-en.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-1403848121151779160</guid><pubDate>Tue, 03 Mar 2015 16:47:00 +0000</pubDate><atom:updated>2015-03-03T17:47:45.860+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ear</category><category domain="http://www.blogger.com/atom/ns#">eclipse</category><category domain="http://www.blogger.com/atom/ns#">ejb</category><category domain="http://www.blogger.com/atom/ns#">git</category><category domain="http://www.blogger.com/atom/ns#">github</category><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">jee</category><category domain="http://www.blogger.com/atom/ns#">programacion</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Solución a Eclipse no importa proyectos EJB desde git o github</title><description>A veces al importar un proyecto desde un &lt;b&gt;repositorio git o github.com&lt;/b&gt; nos encontramos con un problema y es que se importa mal en &lt;b&gt;eclipse&lt;/b&gt;, sobretodo cuando el proyecto es de tipo &lt;b&gt;EJB &lt;/b&gt;o de tipo &lt;b&gt;EAR&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
El problema viene porque tanto el proyecto EAR como el EJB necesitan de una serie de directorios de configuración en eclipse aunque estén vacíos y sin ese directorio eclipse no logra abrir el proyecto o si lo abre no lo trata como un proyecto Java JEE y comienza a dar excepciones y la pestaña de mensajes se llena de errores.&lt;br /&gt;
&lt;br /&gt;
El asunto es fácil cuando se sabe, y es que &lt;b&gt;git no guarda versiones de directorios vacíos &lt;/b&gt;de ahí el problema.&lt;br /&gt;
&lt;br /&gt;
Así que el flujo de trabajo es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Creamos un proyecto EJB o EAR y le añadimos el EJB y el WAR en eclipse.&lt;/li&gt;
&lt;li&gt;Creamos los componentes&lt;/li&gt;
&lt;li&gt;Creamos el repositorio local&lt;/li&gt;
&lt;li&gt;Hacemos el primer commit&lt;/li&gt;
&lt;li&gt;Lo subimos a un repositorio global como github, bitbucket o uno de nuestra empresa&lt;/li&gt;
&lt;li&gt;Un compañero hace clone del proyecto&lt;/li&gt;
&lt;li&gt;FALLA&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;
Y es debido al asunto anterior, git no versiona directorios vacíos y necesarios para eclipse.&lt;br /&gt;
&lt;br /&gt;
La solución es chapucera, pero simple y efectiva.&lt;br /&gt;
En esos directorios vacíos y necesarios para eclipse simplemente hay que agregar dentro un fichero vacío, sin contenido y ya está solucionado. Se incorpora ese fichero en el siguiente commit y por tanto git mantendrá también el directorio que lo contiene.&lt;br /&gt;
&lt;br /&gt;
Es común informar de alguna manera que el fichero no debe borrarse, así pueden encontrar esos ficheros vacíos de contenido con el nombre: &lt;b&gt;keep&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Mi recomendación es que para evitar estos problemas, como otros asociados con el trabajo de los proyectos nativos de eclipse, como versiones de java, problemas de classpath, codificación de caracteres y un largo etcétera es que uses &lt;b&gt;maven&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;</description><link>http://adamaconsulting.blogspot.com/2015/03/solucion-eclipse-no-importa-proyectos.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-7994517530203749620</guid><pubDate>Mon, 02 Mar 2015 13:30:00 +0000</pubDate><atom:updated>2015-03-03T18:19:19.448+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">apache</category><category domain="http://www.blogger.com/atom/ns#">SEO</category><category domain="http://www.blogger.com/atom/ns#">wordpress</category><title>Resolver el error 404 con enlaces permanentes de wordpress</title><description>Un error común es encontrar un error &lt;b&gt;404 &quot;File not found&quot; &lt;/b&gt;tras configurar los&lt;b&gt; enlaces permanentes de wordpress (permalinks)&lt;/b&gt;, donde las opciones predeterminadas funcionan pero las configuraciones a medida no y ya que los permalinks suelen ser una parte fundamental del SEO marketing vamos a tratar de ayudar.&lt;br /&gt;
&lt;br /&gt;
Las siguientes recomendaciones pueden ayudarte a resolver el problema:&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
1º Opción&lt;/h4&gt;
&lt;br /&gt;
Asegúrate de tener activado el módulo &lt;b&gt;mod_rewrite &lt;/b&gt;de apache.&lt;br /&gt;
Para saber si lo tienes activo puedes crear una página php. Llámala phpinfo.php y escribe el siguiente código en ella:&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;code&gt; &amp;lt;?php phpinfo(); ?&amp;gt;&lt;/code&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
Accede a la dirección&lt;b&gt; http://tuservidor.com/phpinfo.php&lt;/b&gt; &amp;nbsp;En el resultado observa la parte de módulos a ver si aparece como activo.&lt;br /&gt;
&lt;br /&gt;
Si no es así debes activarlo si tienes acceso a tu host, o bien solicitar a tu proveedor que lo active.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
2º Opción&lt;/h4&gt;
&lt;br /&gt;
Si lo tienes activo y no funciona puede que tu wordpress no pueda escribir en tu fichero .htaccess, así que comprueba los permisos necesarios para que wordpress pueda, por ejemplo prueba poniendo permisos 0775 al fichero .htaccess y repite la &lt;b&gt;configuración de permalinks&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
O bien copia y pega el siguiente código en el fichero:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;code&gt;
&lt;ifmodule mod_rewrite.c=&quot;&quot;&gt;&lt;/ifmodule&gt;&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteBase /&lt;br /&gt;
RewriteRule ^index\.php$ - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-d&lt;br /&gt;
RewriteRule . /index.php [L]&lt;br /&gt;
&lt;/code&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Es posible que también tengas que cambiar los permisos del fichero index.php&lt;/div&gt;
&lt;h4&gt;
3ª Opción&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Si con esto tampoco funciona, la solución puede que caiga en el lado del servidor apache. Deberías poder abrir el fichero de configuración &lt;b&gt;apache2.conf&lt;/b&gt;&amp;nbsp; &lt;i&gt;(depende del sistema operativo, pero una ruta común en sistemas linux es: /etc/apache2/apache2conf y esto supone que tienes permisos y acceso completo a tu servidor, si usas una cuenta de hosting deberías ponerte en contacto con tu administrador)&lt;/i&gt; y buscar el siguiente código:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;directory var=&quot;&quot; www=&quot;&quot;&gt;&lt;/directory&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Options Indexes FollowSymLinks&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;AllowOverride None&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Require all granted&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
y cambiar la opción por esta:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;AllowOverride All&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
El resto déjalo como está y todo esto asumiendo que el directorio de lectura donde tu apache busca los documentos sea /var/www/&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
4ª Opción&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A veces se ha encontrado algunos fallos en las distribuciones de wordpress o de algunos plugins y este problema se ha resuelto actualizando a las últimas versiones. Así que mantén un ojo abierto sobre tus actualizaciones.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://adamaconsulting.blogspot.com/2015/03/resolver-el-error-404-con-enlaces.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-2843838372072907606</guid><pubDate>Tue, 18 Dec 2012 23:49:00 +0000</pubDate><atom:updated>2012-12-19T00:49:23.081+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">css3</category><category domain="http://www.blogger.com/atom/ns#">cursos</category><category domain="http://www.blogger.com/atom/ns#">html5</category><category domain="http://www.blogger.com/atom/ns#">móviles</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>Ofertas de navidad en cursos online</title><description>Antes de que acabe el año sacamos unas &lt;b&gt;ofertas en cursos&lt;/b&gt; en últimas tecnologías en el sitio &lt;a href=&quot;http://www.crazycrhristmasdays.com/&quot;&gt;www.crazycrhristmasdays.com&lt;/a&gt; con descuentos importantes.&lt;br /&gt;
&lt;br /&gt;
Hemos oído las sugerencias y hemos creado nuestro portal de &lt;b&gt;formación online&lt;/b&gt; con vídeos de alta calidad y tutoriales adaptados a vuestras necesidades.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Estas&lt;b&gt; ofertas navideñas &lt;/b&gt;sólo están disponibles para el 2012&lt;/span&gt; y sale una cada día, así que date prisa ya que duran &lt;span style=&quot;font-family: Verdana, sans-serif; font-size: x-large;&quot;&gt;solamente&lt;span style=&quot;color: orange;&quot;&gt; 24 horas&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
Los contenidos son variados: &lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: orange;&quot;&gt;Responsive Web Design&lt;/span&gt;, &lt;span style=&quot;color: #e69138;&quot;&gt;Desarrollo para móviles&lt;/span&gt;, &lt;span style=&quot;color: #cc0000;&quot;&gt;Diseño de webs para móviles&lt;/span&gt;, &lt;span style=&quot;color: #6aa84f;&quot;&gt;Springframework&lt;/span&gt;, &lt;span style=&quot;color: #93c47d;&quot;&gt;SpringMVC&lt;/span&gt;, &lt;span style=&quot;color: #45818e;&quot;&gt;Twitter Bootstrap&lt;/span&gt;&lt;/span&gt;, y muchas cosas más, pero recuerda que cada oferta sólo está dispnible durante &lt;b&gt;24horas&amp;nbsp;.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Si necesitas otros tipos de cursos, estamos creando un área para &lt;b&gt;&lt;span style=&quot;color: #45818e; font-size: large;&quot;&gt;webmasters&lt;/span&gt;&lt;/b&gt; donde puedes aprender &amp;nbsp;a &lt;b&gt;diseñar para móviles&lt;/b&gt;, &lt;b&gt;crear landing pages&lt;/b&gt;, &lt;b&gt;analítica web&lt;/b&gt;, &lt;b&gt;comercio electrónico&lt;/b&gt;, &lt;b&gt;Responsive Web Design&lt;/b&gt;, temas para &lt;span style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;Wordpress&lt;/b&gt;&lt;/span&gt;, &lt;b&gt;&lt;span style=&quot;color: #45818e;&quot;&gt;Magento&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style=&quot;color: #45818e;&quot;&gt;Prestashop&lt;/span&gt;&lt;/b&gt; y &lt;span style=&quot;color: #45818e;&quot;&gt;&lt;b&gt;Moodle&lt;/b&gt;&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
Mejor pásate por &lt;a href=&quot;http://www.aulawebmaster.com/&quot;&gt;www.aulawebmaster.com&lt;/a&gt; y mira todo lo que tenemos preparado.&lt;br /&gt;
&lt;br /&gt;</description><link>http://adamaconsulting.blogspot.com/2012/12/ofertas-de-navidad-en-cursos-online.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-7387178729105226114</guid><pubDate>Mon, 26 Dec 2011 07:00:00 +0000</pubDate><atom:updated>2011-12-26T08:00:05.227+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">grails</category><category domain="http://www.blogger.com/atom/ns#">groovy</category><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">opinion</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Oracle y el fin de Java</title><description>&lt;span style=&quot;font-size: large;&quot;&gt;El fin del mundo Java conocido.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Puede parecer alarmista, pero creo que el mundo java está llegando a su fin, por lo menos tal y como lo conocemos. El desarrollo de aplicaciones en &lt;a href=&quot;http://adamaconsulting.blogspot.com/2010/07/grails-me-he-vuelto-enamorar.html&quot;&gt;Java ha ido cambiando&lt;/a&gt; y poco a poco han ido apareciendo nuevos lenguajes y formas de acometer proyectos.&lt;br /&gt;
&lt;br /&gt;
La complejidad propia del desarrollo con este lenguaje y la complejidad sometida por &lt;a href=&quot;http://adamaconsulting.blogspot.com/2010/05/el-nuevo-estandar-para-el-project.html&quot;&gt;metodologías de desarrollo&lt;/a&gt; orientadas a procesos ha hecho que muchas empresas empiecen a mirar otras alternativas como por ejemplo &lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/04/proyectos-en-cascada-vs-proyectos.html&quot;&gt;metodologías ágiles&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Pero en este caso, el artículo no habla de las complejidades propias del desarrollo con lenguaje java, ni de las metodologías asociadas a estos proyectos, si no de la propia Oracle, propietaria de esta plataforma de desarrollo desde que compró a Sun Microsystems.&lt;br /&gt;
&lt;br /&gt;
Mucho se ha rumoreado y mucho se sigue especulando sobre el futuro del desarrollo de aplicaciones en Java. Desde luego la filosofía de Oracle nada tiene que ver con la filosofía de apertura de Sun. A este último siempre se le achacó el que no abriera la plataforma de desarrollo de Java al exterior y conservara las patentes, pero por lo menos aunque conservando las patentes, dejó que otras empresas colaboraran en la definición de está normas y prácticas de desarrollo, así como definiciones que acabaron siendo parte de las nuevas APIs y formas de J2SE y sobretodo de J2EE. Algo que hizo estandarizar los proyectos en los servidores de aplicaciones fueran del proveedor que fueran.&lt;br /&gt;
&lt;br /&gt;
Decía que la filosofía de Oracle desde luego no es para nada igual a la de Sun Microsystems. Oracle es un gigante que quiere maximizar sus beneficios y &lt;a href=&quot;http://adamaconsulting.blogspot.com/2010/11/oracle-compra-atg.html&quot;&gt;ha realizado numerosas compras de empresas&lt;/a&gt; líderes en sus sectores. De un plumazo se ha hecho los servidores de aplicaciones más relevantes del sector: &lt;b&gt;Weblogic, SunOne y OAS&lt;/b&gt;, comprando a Sun se ha hecho también con la base de datos gratuita más implantada en proyectos, &lt;b&gt;MySql&lt;/b&gt;. Dispone a su vez de una de las herramientas de desarrollo para Java más usadas en este sector como &lt;b&gt;NetBeans&lt;/b&gt;, se quedó también con toda la familia de productos de Sun y su galería de &lt;b&gt;servidores Solaris&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Además de otros sectores, el fin de Java no viene por estas compras, si no por los &lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/09/oracle-compra-sun-microsystems.html&quot; target=&quot;_blank&quot;&gt;movimientos que está realizando Oracle&lt;/a&gt; en este mundo. De momento canceló el proyecto &lt;b&gt;OpenSolaris&lt;/b&gt;, ha puesto demandas a Google por uso del &lt;b&gt;JDK en los dispositivos Android&lt;/b&gt;, hecho por el cual Google contrató al ingeniero que desarrolló el jdk y ha creado una versión de jdk adaptada a sus necesidades libre de cargas para con Oracle.&lt;br /&gt;
&lt;br /&gt;
Por otra parte, también modificó la licencia de uso del &lt;b&gt;servidor de integración continua Hudson&lt;/b&gt;, creado por ingenieros de Sun y de libre distribución, de tal modo que los creadores de Hudson han abandonado el proyecto creando un gemelo llamado &lt;b&gt;Jenkins&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Java se ha convertido en el lenguaje rey para aplicaciones empresariales, nacido inicialmente como respuesta a la afronta de Microsoft y que permitió el agrupamiento de grandes empresas rivales a trabajar de alguna manera aunando esfuerzos, y resulta que &lt;b&gt;el enemigo estaba en casa.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Entiendo los motivos de negocio que pueden llevar a Oracle a tomar este tipo de decisiones, pero creo que en general es una equivocación para el mundo del desarrollo de aplicaciones basadas en Java. Pese a las dificultades del desarrollo de este tipo de aplicaciones, las empresas preferían este modelo, porque estaba basado en buenas prácticas y por lo menos casi estándares. Pero este movimiento monopolístico sólo hará que las cosas cambien más deprisa.&lt;br /&gt;
&lt;br /&gt;
La pregunta es clara, ¿cuánto tardará Oracle en dar el golpe de estado? ¿Cuánto tardará en decir que Java le pertenece y todo aquel que quiera desarrollar aplicaciones debe pagar royalties? De manera directa o indirecta con sus servidores o aplicaciones.&lt;br /&gt;
&lt;br /&gt;
Me imagino que &lt;b&gt;IBM &lt;/b&gt;debe de estar ya buscando alternativas. No es un movimiento sencillo, y yo calculo que al ritmo que se mueven las aplicaciones de Internet, 5 años será el tiempo suficiente para el cambio, y si contamos el ritmo de las aplicaciones empresariales, no más de 10 años.&lt;br /&gt;
&lt;br /&gt;
Ahora bien, ¿Cuál será el soporte candidato al relevo? Esa es una buena pregunta, cada vez hay más movimientos en este sentido. En el caso del lenguajes &lt;b&gt;Python y Ruby&lt;/b&gt; parecen una buena alternativa, aunque estar trabajando a nivel de fichero creo que es un atraso. Por otro lado &lt;b&gt;Groovy y Scala&lt;/b&gt; pueden ser dos buenas alternativas a los desarrolladores Java y sobretodo con los datos que tenemos hoy día, creo que &lt;a href=&quot;http://www.adamaconsulting.es/servicios/72-curso-spring-framework&quot; target=&quot;_blank&quot;&gt;Springframework &lt;/a&gt;es una alternativa a tener en cuenta. Lástima que esté completamente basado en Java, pero se puede ver como &lt;b&gt;VMWare &lt;/b&gt;está realizando movimientos creando una infraestructura basada en cloud y lenguajes como Groovy, Scala y Ruby &amp;nbsp;y mezclando con Spring, dando resultados como &lt;a href=&quot;http://adamaconsulting.blogspot.com/2010/07/grails-me-he-vuelto-enamorar.html&quot;&gt;Grails&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
El mundo Java está cambiando, Oracle devora todo lo que contiene este mundillo y sólo le falta atacar el mundo de las aplicaciones móviles, Google lo ha visto venir, incluso crea sus propios lenguajes y herramientas de desarrollo, algo normal para no depender de nadie, pero puede ser infructuoso a largo plazo aislarse tal y como hizo &lt;b&gt;Nokia&lt;/b&gt;, mientras otros como &lt;b&gt;IBM &lt;/b&gt;con capacidad de hacer fuerza y capacidad de decisión &amp;nbsp;y hacerse oir, se dedican a hablar del mundo del futuro y su único interés es vender hierro, y no ven la realidad que se acerca.&lt;br /&gt;
&lt;br /&gt;
Tiempos de cambios, hay que ser visionario, las oportunidades saldrán para aquellos que estén preparados.&lt;br /&gt;
&lt;br /&gt;</description><link>http://adamaconsulting.blogspot.com/2011/12/oracle-y-el-fin-de-java.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-4111303325804650494</guid><pubDate>Wed, 21 Dec 2011 14:12:00 +0000</pubDate><atom:updated>2014-04-08T18:39:19.393+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">css3</category><category domain="http://www.blogger.com/atom/ns#">diseño</category><category domain="http://www.blogger.com/atom/ns#">html5</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>Botones Css3 adiós photoshop</title><description>&lt;span style=&quot;font-size: large;&quot;&gt;Corren nuevos tiempos para los diseñadores.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
No cabe duda que &lt;b&gt;Css3 &lt;/b&gt;ha venido a quedarse, algunas de sus propiedades son realmente impresionantes y ha sido gracias a muchas voces relacionadas con el diseño gráfico para Internet las que se han tenido en cuenta.&lt;br /&gt;
&lt;br /&gt;
Revisando unos materiales online sobre diseño de widgets para la web desde &lt;b&gt;UIParade&lt;/b&gt;, me topé con un vídeo, donde explicaba &amp;nbsp;cómo hacer un botón con un buen diseño en photoshop (en concreto este &lt;a href=&quot;http://www.uiparade.com/portfolio/clean-button-design-tutorial/&quot; target=&quot;_blank&quot;&gt;vídeo tutorial&lt;/a&gt;), así que me propuse hacer lo mismo mediante &lt;b&gt;CSS3 &lt;/b&gt;y básicamente este es el resultado:&lt;br /&gt;
&lt;br /&gt;
&lt;style type=&quot;text/css&quot;&gt;
#contenedor {
  background-image: -moz-repeating-linear-gradient(150deg, rgb(102, 102, 102) 1px, rgb(0, 0, 102) 3px);
  background-image: -webkit-repeating-linear-gradient(150deg, rgb(102, 102, 102) 1px, rgb(0, 0, 102) 3px);
  background-image: repeating-linear-gradient(150deg, rgb(102, 102, 102) 1px, rgb(0, 0, 102) 3px);
  height: 100px;
  width: 150px;
  padding-top: 10px;
  padding-right: 10px;
  padding-bottom: 10px;
  padding-left: 10px;
}
#btnEnviar {
  color: rgb(6, 21, 50);
  left: 20%;
  position: relative;
  top: 20%;
  background-image: -moz-linear-gradient(rgb(94, 172, 202), rgb(70, 128, 150));
  background-image: -webkit-linear-gradient(rgb(94, 172, 202), rgb(70, 128, 150));
  background-image: linear-gradient(rgb(94, 172, 202), rgb(70, 128, 150));
  background-image: -webkit-gradient(linear, center top, center bottom, color-stop(0, rgb(94, 172, 202)), color-stop(1, rgb(70, 128, 150)));
  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: rgb(51, 51, 255);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: rgba(51, 51, 255, 0.25);
  -webkit-border-radius: 5px 5px 5px 5px;
  border-radius: 5px 5px 5px 5px;
  -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
  text-shadow: 0px -1px 0px rgb(0, 0, 102), 1px 1px 1px rgba(255, 255, 255, 0.5);
  padding-top: 10px;
  padding-right: 20px;
  padding-bottom: 10px;
  padding-left: 20px;
  font-weight: bold;
  vertical-align: middle;
}
#btnEnviar:hover {
  color: rgb(255, 102, 0);
  text-shadow: -1px -1px 1px rgba(255, 204, 51, 0.5), 1px 1px 1px rgba(255, 204, 0, 0.5);
}
#btnEnviar:active {
   border-top-color: #1b435e;
   background: #1b435e;
   }
&lt;/style&gt;
&lt;br /&gt;
&lt;div id=&quot;contenedor&quot;&gt;
&lt;br /&gt;
&lt;button id=&quot;btnEnviar&quot; name=&quot;enviar&quot; type=&quot;submit&quot; value=&quot;Enviar&quot;&gt;Enviar&lt;/button&gt;

&lt;/div&gt;
&lt;br /&gt;
El efecto es mejorable y cabría añadir el icono del tick dentro del botón, pero el resultado, aún con esquinas redondeadas, se parece bastante y es totalmente funcional, con rollover y todo.&lt;br /&gt;
&lt;br /&gt;
Para poder ver el resultado debes disponer de un navegador con soporte a CSS3 y que soporte &lt;b&gt;gradientes y sombras.&lt;/b&gt; Hasta la fecha &lt;b&gt;los navegadores que mejor soporte dan a CSS3&lt;/b&gt; son Firefox y los basados en Webkit, como Safari y Google Chrome. Opera no da un buen resultado y si has venido hasta aquí con Internet Explorer, lo siento pero no podrás ver mucho.&lt;br /&gt;
&lt;br /&gt;
Sí que he encontrado algunas diferencias sobretodo en Chrome a la hora de interpretar el fondo, no lo realiza del todo uniforme. Pero no es una mala solución, ya que no se ha manejado ninguna imagen.&lt;br /&gt;
&lt;br /&gt;
Las conclusiones pueden ser muchas, pero a grandes rasgos en el vídeo necesitamos adquirir una licencia de photoshop y un buen conocimiento del mismo programa, mientras que con CSS3 solamente un bloc de notas sería suficiente y otra conclusión es que no hay sobrecarga de imágenes, no hay múltiples peticiones de las mismas, ni conexiones concurrentes desde nuestro navegador (algo que por otra parte se puede resolver usando &lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/08/css-sprites-acelerando-la-web.html&quot;&gt;CSS Sprites&lt;/a&gt;), también el contenido es indexable y al ser texto descarga muy rapidamente.&lt;br /&gt;
&lt;br /&gt;
La desventaja es que a día de hoy el soporte a CSS3 no es completo por todos los navegadores, aunque en el caso de &lt;a href=&quot;http://adamaconsulting.blogspot.com/2010/05/como-soportar-css3-en-internet-explorer.html&quot;&gt;Internet Explorer se puede aplicar un parche para entienda CSS3&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
CSS3 viene empujando fuerte y cada vez se ve mejor su potencial, sobretodo en el &lt;a href=&quot;http://www.adamaconsulting.es/servicios/76-curso-diseno-web-movil&quot;&gt;desarrollo de aplicaciones móviles y tablets&lt;/a&gt;. Por otro lado, los diseñadores deberán empezar a conocer este tipo de herramientas y tecnología para los &lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/09/curso-de-desarrollo-de-interfaces-web.html&quot;&gt;nuevos diseños web&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
A continuación dejo el código usado para crear el botón:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-html skin-dessert prettyprinted&quot;&gt;&amp;lt;style type=&quot;text/css&quot;&amp;gt;
#contenedor {
  background-image: -moz-repeating-linear-gradient(150deg, rgb(102, 102, 102) 1px, rgb(0, 0, 102) 3px);
  background-image: -webkit-repeating-linear-gradient(150deg, rgb(102, 102, 102) 1px, rgb(0, 0, 102) 3px);
  background-image: repeating-linear-gradient(150deg, rgb(102, 102, 102) 1px, rgb(0, 0, 102) 3px);
  height: 100px;
  width: 150px;
  padding-top: 10px;
  padding-right: 10px;
  padding-bottom: 10px;
  padding-left: 10px;
}
#btnEnviar {
  color: rgb(6, 21, 50);
  left: 20%;
  position: relative;
  top: 20%;
  background-image: -moz-linear-gradient(rgb(94, 172, 202), rgb(70, 128, 150));
  background-image: -webkit-linear-gradient(rgb(94, 172, 202), rgb(70, 128, 150));
  background-image: linear-gradient(rgb(94, 172, 202), rgb(70, 128, 150));
  background-image: -webkit-gradient(linear, center top, center bottom, color-stop(0, rgb(94, 172, 202)), color-stop(1, rgb(70, 128, 150)));
  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
  border-right-color: rgb(51, 51, 255);
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: rgba(51, 51, 255, 0.25);
  -webkit-border-radius: 5px 5px 5px 5px;
  border-radius: 5px 5px 5px 5px;
  -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5);
  text-shadow: 0px -1px 0px rgb(0, 0, 102), 1px 1px 1px rgba(255, 255, 255, 0.5);
  padding-top: 10px;
  padding-right: 20px;
  padding-bottom: 10px;
  padding-left: 20px;
  font-weight: bold;
  vertical-align: middle;
}
#btnEnviar:hover {
  color: rgb(255, 102, 0);
  text-shadow: -1px -1px 1px rgba(255, 204, 51, 0.5), 1px 1px 1px rgba(255, 204, 0, 0.5);
}
#btnEnviar:active {
   border-top-color: #1b435e;
   background: #1b435e;
   }
&amp;lt;/style&amp;gt;
 &lt;/pre&gt;
&lt;pre class=&quot;brush: css&quot;&gt;&lt;/pre&gt;
El código html es simple, un div y un button:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-html prettyprinted&quot;&gt;&amp;lt;div id=&quot;contenedor&quot;&amp;gt;

&amp;lt;button id=&quot;btnEnviar&quot; name=&quot;enviar&quot; type=&quot;submit&quot; value=&quot;Enviar&quot;&amp;gt;Enviar&amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;</description><link>http://adamaconsulting.blogspot.com/2011/12/botones-css3-adios-photoshop.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-5893678647707120772</guid><pubDate>Wed, 22 Dec 2010 10:16:00 +0000</pubDate><atom:updated>2010-12-22T11:32:41.242+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Google dona GWT a Eclipse</title><description>Google dona sus proyectos &lt;b&gt;WindowBuilder Pro y CodePro AnalitiX&lt;/b&gt; al proyecto Eclipse.&lt;div&gt;Actualmente Google desarrollaba estos proyectos integrados sobre la plataforma Eclipse, pero en la actualidad será posible encontrarlos como proyectos de la comunidad Eclipse, aunque todavía puede descargarse el &lt;a href=&quot;https://code.google.com/intl/es-ES/webtoolkit/download.html&quot;&gt;generador de interfaces gráficos desde el sitio de Google&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con esto suponemos que se dará carpetazo al proyecto &lt;a href=&quot;http://www.eclipse.org/vep/&quot;&gt;Visual Editor de Eclipse&lt;/a&gt;, que no terminaba de cuajar debido a problemas e incompatibilidades con versiones, y a una extrema dejadez del mismo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo que se le podía achacar a Eclipse era no disponer de un entorno para generar interfaces &lt;b&gt;Swing&lt;/b&gt; o &lt;b&gt;SWT&lt;/b&gt; integrado al estilo de otros IDEs y siempre tratar de instalar plugins de terceros que fueran compatibles con las versiones actuales del IDE (como por ejemplo &lt;a href=&quot;http://code.google.com/p/visualswing4eclipse/&quot;&gt;VisualSwing4Eclipse&lt;/a&gt;, o &lt;a href=&quot;https://abeille.dev.java.net/&quot;&gt;Abeille&lt;/a&gt;) y ahora con este nuevo proyecto dispondrá de un editor &lt;b&gt;visual drag&amp;amp;drop&lt;/b&gt; que permitirá distintos tipos de interfaces gráficos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fuente: &lt;a href=&quot;http://www.infoq.com/&quot;&gt;InfoQ&lt;/a&gt;&lt;/div&gt;</description><link>http://adamaconsulting.blogspot.com/2010/12/google-dona-gwt-eclipse.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-4012113975687832458</guid><pubDate>Wed, 03 Nov 2010 23:26:00 +0000</pubDate><atom:updated>2010-11-04T00:35:20.695+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Oracle compra ATG</title><description>&lt;img style=&quot;float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 133px; height: 18px;&quot; src=&quot;http://www.oracleimg.com/admin/images/ocom/hp/oralogo_small.gif&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Con ansia voraz, el gigante del software &lt;span style=&quot;font-weight: bold;&quot;&gt;Oracle &lt;/span&gt;anunció el día 2 de Noviembre la compra de la empresa de software especializada en comercio electrónico &lt;span style=&quot;font-weight: bold;&quot;&gt;ATG&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Mundo java, servidores de aplicaciones, hardware, bases de datos ¿qué le queda por comprar? Todavía queda algunas cosas para su plantilla como publicidad y marketing online, y el mercado de los móviles. ¿Serán esos sus siguientes pasos? ¿Se estará preparando para ser un digno rival de Google en aplicaciones de Internet? ¿Hacia dónde se dirige? De momento todo está en manos de que se apruebe el acuerdo, pero todo apunta a que así sea.&lt;br /&gt;&lt;br /&gt;Información de la compra en la &lt;a href=&quot;http://www.oracle.com/atg/index.html&quot;&gt;página de oracle&lt;/a&gt;.</description><link>http://adamaconsulting.blogspot.com/2010/11/oracle-compra-atg.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-3842617732178836776</guid><pubDate>Fri, 15 Oct 2010 09:43:00 +0000</pubDate><atom:updated>2010-10-15T12:00:16.708+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">coaching</category><category domain="http://www.blogger.com/atom/ns#">cursos</category><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">subvenciones</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Experto y master en comercio electronico</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://mastercomercioelectronico.net/&quot;&gt;&lt;img style=&quot;float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 280px; height: 107px;&quot; src=&quot;http://mastercomercioelectronico.net/themes/des4ecom/logo.png&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nos encontramos metidos de lleno actualmente en el desarrollo e impartición de clases en el &lt;span style=&quot;font-weight: bold;&quot;&gt;experto y máster en comercio electrónico&lt;/span&gt; de la Universidad de Salamanca (&lt;a href=&quot;http://master-ecom.usal.es/&quot;&gt;http://master-ecom.usal.es/&lt;/a&gt;), y en el &lt;span style=&quot;font-weight: bold;&quot;&gt;máster en comercio y negocio electrónico para PYMES&lt;/span&gt; (&lt;a href=&quot;http://mastercomercioelectronico.net/&quot;&gt;http://mastercomercioelectronico.net&lt;/a&gt;), que es gratuito para trabajadores en activo.&lt;br /&gt;&lt;br /&gt;De entre todos los temas que se imparten en el máster, los temas que abordaremos son muy interesantes y corresponden a:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Comercio y negocio electrónico.&lt;/li&gt;&lt;li&gt;Marketing online.&lt;/li&gt;&lt;li&gt;Gestión de tiendas y catálogos online.&lt;/li&gt;&lt;li&gt;Estadísticas y medición de éxito.&lt;/li&gt;&lt;li&gt;Teletrabajo.&lt;/li&gt;&lt;li&gt;E-learning.&lt;/li&gt;&lt;li&gt;Actitudes de compra en Internet.&lt;/li&gt;&lt;li&gt;Logística.&lt;/li&gt;&lt;li&gt;Liderazgo, coaching y actitud emprendedora.&lt;/li&gt;&lt;/ul&gt;También hay planificado otro curso muy interesante sobre gestión y creación de contenidos digitales: &lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;ES&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val=&quot;Cambria Math&quot;&gt;    &lt;m:brkbin val=&quot;before&quot;&gt;    &lt;m:brkbinsub val=&quot;&amp;#45;-&quot;&gt;    &lt;m:smallfrac val=&quot;off&quot;&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val=&quot;0&quot;&gt;    &lt;m:rmargin val=&quot;0&quot;&gt;    &lt;m:defjc val=&quot;centerGroup&quot;&gt;    &lt;m:wrapindent val=&quot;1440&quot;&gt;    &lt;m:intlim val=&quot;subSup&quot;&gt;    &lt;m:narylim val=&quot;undOvr&quot;&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; defunhidewhenused=&quot;true&quot; defsemihidden=&quot;true&quot; defqformat=&quot;false&quot; defpriority=&quot;99&quot; latentstylecount=&quot;267&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;0&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Normal&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;heading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;9&quot; qformat=&quot;true&quot; name=&quot;heading 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 7&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 8&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; name=&quot;toc 9&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;35&quot; qformat=&quot;true&quot; name=&quot;caption&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;10&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; name=&quot;Default Paragraph Font&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;11&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtitle&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;22&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Strong&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;20&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;59&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Table Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Placeholder Text&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;1&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;No Spacing&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Revision&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;34&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;List Paragraph&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;29&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;30&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Quote&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 1&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 2&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 3&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 4&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 5&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;60&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;61&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;62&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Light Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;63&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;64&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Shading 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;65&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;66&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium List 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;67&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 1 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;68&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 2 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;69&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Medium Grid 3 Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;70&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Dark List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;71&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Shading Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;72&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful List Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;73&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; name=&quot;Colorful Grid Accent 6&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;19&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;21&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Emphasis&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;31&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Subtle Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;32&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Intense Reference&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;33&quot; semihidden=&quot;false&quot; unhidewhenused=&quot;false&quot; qformat=&quot;true&quot; name=&quot;Book Title&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;37&quot; name=&quot;Bibliography&quot;&gt;   &lt;w:lsdexception locked=&quot;false&quot; priority=&quot;39&quot; qformat=&quot;true&quot; name=&quot;TOC Heading&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:&quot;Tabla normal&quot;;  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:&quot;&quot;;  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:&quot;Times New Roman&quot;;  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-bidi-font-family:&quot;Times New Roman&quot;;  mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;&lt;span style=&quot;;font-family:&amp;quot;;font-size:12pt;&quot;  &gt;&lt;a href=&quot;http://www.certificacioncontenidosdigitales.net/&quot;&gt;http://www.certificacioncontenidosdigitales.net/&lt;/a&gt; &lt;/span&gt;también con matrícula gratuita.</description><link>http://adamaconsulting.blogspot.com/2010/10/experto-y-master-en-comercio.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-1227077495802040380</guid><pubDate>Fri, 30 Jul 2010 11:15:00 +0000</pubDate><atom:updated>2010-07-30T13:30:26.514+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">grails</category><category domain="http://www.blogger.com/atom/ns#">groovy</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Grails, me he vuelto a enamorar</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://grails.org/&quot;&gt;&lt;img style=&quot;float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 163px; height: 43px;&quot; src=&quot;http://grails.org/images/new/grailslogo_topNav.png&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span xmlns=&quot;&quot;&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cuando comencé con &lt;strong&gt;Java&lt;/strong&gt; allá por el siglo XX, vi claramente que era mi lenguaje de programación de aplicaciones y abandoné rápidamente coqueteos de adolescente con lenguajes como &lt;strong&gt;C, C++ o Perl&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;No todo el romance fue miel sobre hojuelas, ya que me costó inicialmente pensar en objetos, pero hecho el cambio, todo fue como la seda, y mi pasión por Java hizo que se abriera un mundo de posibilidades, hice una apuesta y fue ganadora. Casi podría decir que crecimos juntos.&lt;br /&gt;&lt;br /&gt;He visto como se desarrollaba el lenguaje, las aplicaciones, las especificaciones, los servicios, y como la criatura iba creciendo, haciéndose más madura, estable y sensata, y como poco a poco fue conquistando el corazón de admiradores y detractores. Atrás quedan muchos comentarios nefastos de gente ajena a los cambios, cruciales por otra parte para hacer que la plataforma creciera en madurez.&lt;br /&gt;&lt;br /&gt;Se podría afirmar sin muchas pretensiones que la infraestructura Java es la más demandada hoy en día en el entorno empresarial. La que mediante sus especificaciones ha sido estandarte de buenas prácticas de desarrollo y ha sido copiada en sus fueros y en sus formas, ha sabido adaptarse a lo que pedía el mercado en cada momento. Y tengo que decir, que a mí me ha dado muchas satisfacciones y muchos dolores de cabeza también.&lt;br /&gt;&lt;br /&gt;La niña creció y se hizo muy compleja (que no de complejos), es tan grande su alcance que no es posible saber de toda su plataforma al detalle, y menos cuando los cambios se producen constantemente. A la complejidad de su plataforma se añade la complejidad de las formas. Para saber desarrollar una aplicación en Java no basta con saber orientación a objetos, es necesario conocer además, buenas prácticas de desarrollo, la sintaxis correcta del lenguaje, una correcta metodología de programación, notaciones y metalenguajes, patrones que con el tiempo se vuelven antipatrones, frameworks que dificultan más que facilitan el desarrollo, factorías y más factorías. Así como tecnologías externas a java, pero que son imprescindibles pues sin ellas, los proyectos se quedan cojos. A todo esto hay que unirle, las &lt;strong&gt;pruebas unitarias, &lt;abbr title=&quot;Test Driven Development&quot;&gt;TDD&lt;/abbr&gt;, &lt;abbr title=&quot;Behaviour Driven Development&quot;&gt;BDD&lt;/abbr&gt;&lt;/strong&gt;, mocks, stubs, y conocer herramientas de integración continua, &lt;strong&gt;ant, maven, ivy&lt;/strong&gt;, y servidores de integración continua. En fin, un perfil de los de antes, cuando para hacer una aplicación de escritorio se pedía ser &lt;abbr title=&quot;Master Of Universe&quot;&gt;MOU&lt;/abbr&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ahora nos encontramos en los tiempos de &lt;strong&gt;las arquitecturas &lt;abbr title=&quot;Modelo Vista Controlador&quot;&gt;MVC&lt;/abbr&gt;&lt;/strong&gt;, donde afortunadamente la capa del dominio se ha ido simplificando, no gracias a Sun Microsystems, aka Oracle, si no a terceros que vieron la oportunidad, pero claro hay que conocer sus frameworks de persistencia (sí más frameworks, con más factorías), las capas de control y vista también se incluyen en frameworks (cargados de factorías claro) y todo esto para hacer que las aplicaciones sean más reutilizables y escalables. Y es que si uno hace un proyecto en Java, su proyecto debe tener al menos uno de estos patrones: Facade, singleton, factoría (abstracta o concreta), y a partir de ahí si quiere que le llamen &quot;experto&quot; poner alguno más de los que están en esta lista: memento, observer, decorator, proxy, prototipo, y para ser un MOU hay que aplicar los mismos patrones pero con nombres rimbombantes J2EE tales como, Front controller, business delegate, visitor, value object, publish-subscribe, etc. Y es que si no se plasma eso en una buena charla con cervezas, tu proyecto no es de calidad. Y a todo esto, &lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/04/por-que-utilizar-scrum.html&quot;&gt;¿al cliente qué le importa?&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; El resultado es obvio, crear un buen perfil de auténtico &quot;machaca&quot; de la plataforma Java, lleva muchos años, y no es de extrañar, que empresas y programadores noveles hayan optado por otras plataformas, que han surgido a la zaga de todo esto, como php o Ruby, donde el desarrollo es más ligero y rápido, y en muchos casos peor en cuanto a buenas prácticas, de hecho, el mundo php ha tenido que ponerse las pilas imitando al mundo Java y el ejemplo más claro es &lt;a href=&quot;http://framework.zend.com/&quot;&gt;Zend Framework&lt;/a&gt;, o &lt;a href=&quot;http://www.php.net/&quot;&gt;php&lt;/a&gt; orientado a objetos. Tampoco es de extrañar que aparezcan lenguajes más ligeros basados en las buenas prácticas de Java, e incluso basados en java, como &lt;a href=&quot;http://www.scala-lang.org/&quot;&gt;scala&lt;/a&gt; o &lt;a href=&quot;http://www.blogger.com/groovy.org&quot;&gt;groovy&lt;/a&gt;, que pretenden lo mejor de ambos mundos, rapidez y potencia, así como &quot;pescar&quot; programadores que vengan del mundo java y del mundo perl, php o &lt;a href=&quot;http://ruby-lang.org/es&quot;&gt;ruby&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Con todo esto, pasé un tiempo aburrido de la plataforma &lt;a href=&quot;http://www.blogger.com/java.sun.com&quot;&gt;Java&lt;/a&gt;, cierto es que parece que estuvo un poco estancada, pero a partir de la versión 1.5 dieron un empuje hacia la mejora, como las &lt;strong&gt;anotaciones&lt;/strong&gt;, los &lt;strong&gt;tipos parametrizados&lt;/strong&gt;, mejoras en bucles, &lt;strong&gt;boxing y unboxing&lt;/strong&gt;, &lt;strong&gt;enumeraciones&lt;/strong&gt; y mejoras en las colecciones. Era un paso, y fue bien acogido en la comunidad aunque se les pedía más mejoras similares a otros lenguajes que aparecían en el mercado. Pero seguía habiendo factorías y más factorías. El escenario típico para realizar una consulta en una base de datos era pasar al menos por cuatro factorías y un par de facades antes de poder conocer lo que tenía la tabla. En fin muy aburrido.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Había que renovar el amor, y conocí la &lt;strong&gt;inversión de control y la inyección de dependencias&lt;/strong&gt;, tras probar pequeños manjares me quedé con &lt;a href=&quot;http://www.springframework.org/&quot;&gt;springframework&lt;/a&gt;. Su curva de aprendizaje no era sencilla, pero todo valía la pena por seguir con la bella Java, aunque ya por aquel entonces tenía bien claro que la tecnología no lo es todo y lo que manda es el mercado, me resistía a dejar escapar un romance de tantos años. Fue una agradable sorpresa, &lt;strong&gt;spring&lt;/strong&gt; hizo que renaciera el amor, menos relación entre el código y más &lt;strong&gt;programación declarativa&lt;/strong&gt;, más plug&amp;amp;play, en fin, lo mismo pero con otros ojos, porque por debajo hay más y más factorías, pero no las toco si no quiero, y simplemente integro servicios, además con las últimas versiones puedo elegir si la configuración es mediante xml o anotaciones. Algo divertido.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Hice entonces una nueva apuesta y aposté por spring, aunque en el mercado aparecían nuevos frameworks, como &lt;strong&gt;EJB 3, JBoss Seam&lt;/strong&gt;, creo que la apuesta fue buena, se me volvió a abrir un nuevo mundo de posibilidades y satisfacciones, y el tiempo y los clientes me han dado la razón (a ver si voy a ser el Rapel de la tecnología).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Spring estaba bien, pero se hace demasiado pesado a la larga, sin embargo aporta mucha potencia, y tras la euforia inicial, noté que echaba de menos algo, parecía una relación romántica pero estancada, también conocí &lt;strong&gt;JPA&lt;/strong&gt; y me gustó, fue un buen complemento y nuevamente el mercado me dio la razón, en este caso Google con su application server, la verdad es que &lt;a href=&quot;http://www.hibernate.org/&quot;&gt;hibernate&lt;/a&gt; me tenía muy cansado.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Tratando de recuperar la emoción, a veces hay que cambiar de contexto, y probar cosas nuevas, el mundo RIA es un buen sitio, interesante y divertido, silverlight, JavaFX, Adobe AIR, pasar a JSF, también interesante. El mundo estaba cambiando, se podía notar en el aire, se podía apreciar la necesidad y las ganas de hacer las cosas bien, rápidas y divertidas. Legan a mis oídos nuevos lenguajes como &lt;strong&gt;Groovy, Scala o Roo&lt;/strong&gt;, bien son similares, pero diferentes, y basados en Java, probemos alguno.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Y llegó el amor, &lt;a href=&quot;http://grails.org/&quot;&gt;Grails&lt;/a&gt;. Basado en Groovy y Springframework, joven, con potencia, divertido y fácil. Los conocimientos anteriores son asumidos de inmediato, se deja querer y facilita mucho las cosas, permite integrar programadores de distintos entornos y realizar labores complejas en java, aquí son tremendamente sencillas, GORM es impresionante, hace tremendamente sencillo trabajar con hibernate. Las únicas pegas que puedo ponerle son precisamente su juventud, le falta algo de madurez, pero tiene mucho conocimiento anterior almacenado, no reinventa la rueda, simplemente la hace más sencilla. Otro punto en contra quizá, es que hay muchas maneras de implementar la misma solución lo que puede resultar un poco frustrante a veces, pero una vez acostumbrado los tiempos de desarrollo se reducen. Creo que es el comienzo de una buena amistad.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cuando alguien me dice que quiere aprender a desarrollar en Java, o empresas que quieren migrar sus proyectos a Java, antes tenía el corazón partido, sabía que le podía dar muchas satisfacciones, pero también muchos quebraderos de cabeza, ahora simplemente les animo a que aprendan algo de Java y den el paso a Grails. Si mi intuición funciona una vez más, &lt;a href=&quot;http://www.adamaconsulting.es&quot;&gt;desarrollar proyectos con Grails &lt;/a&gt;es una apuesta segura.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Esto será el comienzo de una serie de post dedicada a Groovy y Grails.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;</description><link>http://adamaconsulting.blogspot.com/2010/07/grails-me-he-vuelto-enamorar.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-4572478013802072888</guid><pubDate>Mon, 19 Jul 2010 08:02:00 +0000</pubDate><atom:updated>2010-07-19T10:41:33.080+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">accesibilidad</category><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">móviles</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>Los cuatro pasos para la optimizacion de aplicaciones para moviles</title><description>Crear aplicaciones web para dispositivos móviles requiere algo más de detalle a tener en cuenta que para navegadores de escritorio, ya que estos dispositivos son más pequeños, su pantalla por lo tanto también lo es y sus requisitos de rendimiento también son menores. Es por lo tanto necesario y vital realizar unas buenas prácticas sobre &lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/08/css-sprites-acelerando-la-web.html&quot;&gt;optimización de sitios web&lt;/a&gt; para móviles en tan sólo cuatro pasos:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Declara el tamaño del viewport &lt;/li&gt;&lt;li&gt;Utiliza &lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/08/css-sprites-acelerando-la-web.html&quot;&gt;CSS Sprites&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Usa IDs fragmentados&lt;/li&gt;&lt;li&gt;Activa las cabeceras HTTP de caché&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h2&gt;1.- Declara el tamaño del viewport&lt;/h2&gt;&lt;br /&gt;Algunos navegadores realizan efectos de zoom para redimensionar las páginas para adaptarlas al tamaño de la pantalla, esto puede tener un efecto adverso en páginas que ya han sido diseñadas para pantallas pequeñas. Simplemente hay que poner un meta-dato en la cabecera del documento de esta forma:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;h2&gt;2.- Utiliza CSS Sprites&lt;/h2&gt;&lt;br /&gt;Las aplicaciones web contienen un número diverso de imágenes estáticas, repetidas y separadas se sirven con distintas peticiones http. La técnica consiste en unirlas y servirlas bajo demanda mediante el uso de CSS tal y como se explica en otro post &quot;&lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/08/css-sprites-acelerando-la-web.html&quot;&gt;CSS Sprites, optimizando la web&lt;/a&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;3.- Usa IDs Fragmentados&lt;/h2&gt;&lt;br /&gt;Las páginas grandes en las aplicaciones web pueden mostrar y ocultar contenido, pero puede darse ciertas ocasiones en las que la navegación se vea perjudicada, ya que el botón retroceso del navegador no funcionará adecuadamente. En este caso la técnica a usar pasa por añadir un identificador único al final de la URI.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;http://myapp.example.org/myapp#view&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;h2&gt;4.- Activa las cabeceras HTTP de control de caché&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Los recursos dinámicos que cambiar ocasionalmente pueden ser también cacheados a través de una URI que contenga un hash del contenido del recurso. Usando esta técnica el navegador no tendrá que consultar constantemente las cabeceras de control de la caché, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;img src=&quot;http://www.example.com/userimages/joeblogs-67f90da089da&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;Para realizarlo primero hay que poner la política de caché a &quot;&lt;span style=&quot;font-weight: bold;&quot;&gt;Never expires&lt;/span&gt;&quot; en la c&lt;span style=&quot;font-weight: bold;&quot;&gt;abecera http &quot;Expires&quot;&lt;/span&gt; y después añadir el hash a las URIs.&lt;br /&gt;&lt;br /&gt;Otra posible función de esta técnica es &quot;cachear&quot; el contenido &lt;span style=&quot;font-weight: bold;&quot;&gt;AJAX para móviles &lt;/span&gt;al igual que se hace con el contenido primario, reduciendo de esta manera la cantidad de peticiones necesarias al servidor, esto se puede hacer normalmente con las configuraciones de &lt;span style=&quot;font-weight: bold;&quot;&gt;las cabeceras &quot;Expires&quot; y &quot;Cache-control&quot;.&lt;/span&gt;</description><link>http://adamaconsulting.blogspot.com/2010/07/los-cuatro-pasos-para-la-optimizacion.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-2002230639974817724</guid><pubDate>Thu, 27 May 2010 08:14:00 +0000</pubDate><atom:updated>2010-05-27T10:49:20.550+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Exadel Cloud Computing</title><description>&lt;img style=&quot;float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 164px; height: 60px;&quot; src=&quot;http://awsmedia.s3.amazonaws.com/logo_aws.gif&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;img style=&quot;float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 127px; height: 68px;&quot; src=&quot;http://exadel.com/html/themes/exadel/images/custom_new/logo.gif&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La empresa &lt;a href=&quot;http://exadel.com/&quot;&gt;Exadel &lt;/a&gt;presenta &quot;&lt;a href=&quot;http://exadel.com/web/portal/riacloud?exadel=nl201005&quot;&gt;Cloud in a Box&lt;/a&gt;&quot; una &lt;a href=&quot;http://aws.amazon.com/ec2/&quot;&gt;AMI (Amazon Machine Instance)&lt;/a&gt; preparada y lista para desarrollar y desplegar proyectos basados en seam y JSF.&lt;br /&gt;&lt;br /&gt;La &lt;abbr title=&quot;Amazon Machine Instance&quot;&gt;AMI&lt;/abbr&gt; puede ejecutarse en Cloud (&lt;span style=&quot;font-weight: bold;&quot;&gt;Amazon&lt;/span&gt;) o dentro de nuestro propio hardware y el sistema viene configurado con:&lt;br /&gt;&lt;br /&gt;&lt;table id=&quot;matrix&quot; cellpadding=&quot;0&quot; cellspacing=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;font-weight: bold;&quot;&gt;&lt;abbr title=&quot;sistema operativo&quot;&gt;SO&lt;/abbr&gt;&lt;/td&gt;             &lt;td&gt;Fedora Core 8&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style=&quot;font-weight: bold;&quot;&gt;Database&lt;/td&gt;             &lt;td&gt;Ingres&lt;!-- 10.0.0--&gt;&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style=&quot;font-weight: bold;&quot;&gt;Application server&lt;/td&gt;             &lt;td&gt;JBoss 5.1.0.GA &lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style=&quot;font-weight: bold;&quot;&gt;IDE&lt;/td&gt;             &lt;td&gt;Eclipse 3.4 SR2 with JBoss Tools 3.0.2.GA  and RichFaces  3&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style=&quot;font-weight: bold;&quot;&gt;Webserver&lt;/td&gt;             &lt;td&gt;Apache 2.2.9&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;             &lt;td style=&quot;font-weight: bold;&quot;&gt;Ejemplos&lt;/td&gt;             &lt;td&gt;Demo incluida de RichFaces: photoalbum&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Es necesario disponer de un usuario de &lt;abbr title=&quot;Elastic Cloud&quot;&gt;EC2&lt;/abbr&gt; de Amazon para poder descargar los ficheros, además Exadel dispone de un completo manual de configuración del entorno.&lt;br /&gt;&lt;br /&gt;Una buena alternativa de ejemplo cloud para no depender de configuraciones y actualizaciones.</description><link>http://adamaconsulting.blogspot.com/2010/05/exadel-cloud-computing.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-2760226585921470083</guid><pubDate>Fri, 07 May 2010 21:19:00 +0000</pubDate><atom:updated>2010-05-07T23:33:17.655+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">agile</category><category domain="http://www.blogger.com/atom/ns#">liderazgo</category><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">scrum</category><title>El nuevo estandar para el project management</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.projectpro.co.za/e-Zine/ISO.JPG&quot;&gt;&lt;img style=&quot;float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 150px; height: 138px;&quot; src=&quot;http://www.projectpro.co.za/e-Zine/ISO.JPG&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;La nueva &lt;span style=&quot;font-weight: bold;&quot;&gt;norma ISO 21500 &lt;/span&gt;surge como el nuevo estandar para la &lt;span style=&quot;font-weight: bold;&quot;&gt;gestión de proyectos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se trata de un compendio de normas y buenas prácticas que se unen en esta norma como fruto de la investigación durante años para conformar este estandar.&lt;br /&gt;&lt;br /&gt;La &lt;span style=&quot;font-weight: bold;&quot;&gt;norma ISO 21500&lt;/span&gt; no están todavía operativa y todo apunta a que la final release será para el 2012, aunque actualmente puede obtenerse el &lt;a href=&quot;http://www.iso.org/iso/catalogue_detail.htm?csnumber=50003&quot;&gt;draft de la ISO 21500&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Visto en: &lt;a href=&quot;http://www.projecttimes.com/articles/iso-21500-emerging-as-new-standard-for-project-managers.html&quot;&gt;http://www.projecttimes.com&lt;/a&gt;</description><link>http://adamaconsulting.blogspot.com/2010/05/el-nuevo-estandar-para-el-project.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-1084029002757738566</guid><pubDate>Wed, 05 May 2010 14:36:00 +0000</pubDate><atom:updated>2010-05-05T16:44:28.459+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tecnología</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>Como soportar CSS3 en Internet Explorer</title><description>Si quieres soportar las nuevas caracerísticas de &lt;span style=&quot;font-weight: bold;&quot;&gt;CSS3 &lt;/span&gt;en el &lt;span style=&quot;font-weight: bold;&quot;&gt;navegador Internet Explorer&lt;/span&gt; 6,7 u 8 sólo hay que instalar una extensión que hace que se soporte esta tecnología.&lt;br /&gt;&lt;br /&gt;La extensión puede encontrarse aquí: &lt;a href=&quot;http://fetchak.com/ie-css3/&quot;&gt;http://fetchak.com/ie-css3/&lt;/a&gt;</description><link>http://adamaconsulting.blogspot.com/2010/05/como-soportar-css3-en-internet-explorer.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-4915892135535554061</guid><pubDate>Thu, 29 Oct 2009 15:12:00 +0000</pubDate><atom:updated>2009-11-24T19:02:12.767+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">accesibilidad</category><category domain="http://www.blogger.com/atom/ns#">cursos</category><category domain="http://www.blogger.com/atom/ns#">móviles</category><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><category domain="http://www.blogger.com/atom/ns#">usabilidad</category><title>Curso diseño web movil con la USAL</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://bit.ly/2oteM2&quot; title=&quot;Curso de diseño web para móviles, página oficial del curso en la Universidad de Salamanca&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 562px; height: 90px;&quot; src=&quot;http://gsii.usal.es/interfacesmoviles/images/LogoCabecera.png&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;El próximo día 9 de Noviembre comienza el &lt;span style=&quot;font-weight: bold;&quot;&gt;curso de buenas técnicas en el diseño de interfaces web para móviles.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este curso lo lanzamos en conjunto con la Universidad de Salamanca y está orientado a la creación y diseño de interfaces web para móviles basado en las buenas prácticas de creación de interfaces web para móviles del W3C.&lt;br /&gt;&lt;br /&gt;La URI de acceso es: &lt;a href=&quot;http://bit.ly/2oteM2&quot; title=&quot;Página oficial del curso de diseño web para móviles de la universidad de Salamanca&quot;&gt;Curso de diseño web para móviles.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Puedes ver más &lt;a href=&quot;http://adamaconsulting.blogspot.com/search/label/cursos&quot;&gt;cursos &lt;/a&gt;en este enlace, o más información en este otro enlace sobre &lt;a href=&quot;http://adamaconsulting.blogspot.com/2009/10/curso-diseno-web-movil-con-la-usal.html&quot;&gt;curso de diseño web móvil&lt;/a&gt;.</description><link>http://adamaconsulting.blogspot.com/2009/10/curso-diseno-web-movil-con-la-usal.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-1606843157672138321</guid><pubDate>Tue, 20 Oct 2009 11:39:00 +0000</pubDate><atom:updated>2009-10-20T13:49:15.054+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">agile</category><category domain="http://www.blogger.com/atom/ns#">scrum</category><title>Mapa interactivo de adopción del desarrollo de software agil</title><description>Mapa interactivo de adopción del &lt;span style=&quot;font-weight: bold;&quot;&gt;desarrollo de software ágil.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.knowgenes.com/home.aspx?kgid=7156&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 548px; height: 381px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTSmRy9yPVX5J04kSvudojv7df_KSKw9pfPNsAGlwyL7RR0RgPmEqM7UrXZctC4BrDHRoaswIVcByGFWmfVp-7Ni8UwvkONh1eMsHtnLXXfb7YSgWQ8rnfEH3lF-m4kwiaOElunBzNlkQ/s400/mapa_agile.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5394647344861707634&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;file:///C:/Users/david/AppData/Local/Temp/moz-screenshot.png&quot; alt=&quot;&quot; /&gt;</description><link>http://adamaconsulting.blogspot.com/2009/10/mapa-interactivo-de-adopcion-del.html</link><author>noreply@blogger.com (David Palomar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTSmRy9yPVX5J04kSvudojv7df_KSKw9pfPNsAGlwyL7RR0RgPmEqM7UrXZctC4BrDHRoaswIVcByGFWmfVp-7Ni8UwvkONh1eMsHtnLXXfb7YSgWQ8rnfEH3lF-m4kwiaOElunBzNlkQ/s72-c/mapa_agile.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-984449471644170266</guid><pubDate>Tue, 29 Sep 2009 10:12:00 +0000</pubDate><atom:updated>2009-09-29T12:22:55.351+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>Dominios multilingues a partir del 10 de Diciembre</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://cms.horus.be/files/99909/MediaArchive/photo/EU%20logo.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 180px; height: 122px;&quot; src=&quot;http://cms.horus.be/files/99909/MediaArchive/photo/EU%20logo.JPG&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;El &lt;span style=&quot;font-weight: bold;&quot;&gt;EURid&lt;/span&gt;, es decir, el organismo encargado por la unión europea de gestionar los &lt;span style=&quot;font-weight: bold;&quot;&gt;dominios .eu&lt;/span&gt;, ha lanzado un comunicado en el que a partir del 10 de diciembre  del presente año será posible registrar &lt;span style=&quot;font-weight: bold;&quot;&gt;dominios multilingues&lt;/span&gt; con caracteres especiales de cada lengua europea.&lt;br /&gt;&lt;br /&gt;La extensión .eu se ha convertido en la novena más usada en todo el mundo. Hay cerca de 3 millones de dominios registrados y de ellos 70.000 son españoles.&lt;br /&gt;&lt;br /&gt;Bienvenidas sean nuestra eñe y nuestras tildes. Claro que, ¿cómo habrá que hacer para escribir una dirección en cirílico?&lt;br /&gt;&lt;br /&gt;En fin una buena medida para algunos sectores cuyos nombres eran un batiburrillo de palabras sin sentido. Aunque, no tengo tan claro que sea bueno para el &lt;span style=&quot;font-weight: bold;&quot;&gt;negocio electrónico y el SEO.&lt;/span&gt;</description><link>http://adamaconsulting.blogspot.com/2009/09/dominios-multilingues-partir-del-10-de.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-7455845695678021242</guid><pubDate>Fri, 11 Sep 2009 13:29:00 +0000</pubDate><atom:updated>2009-09-11T15:41:28.480+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Una paloma es más rápida que Internet</title><description>Vivir en Sudáfrica puede tener sus ventajas, aunque las comunicaciones de banda ancha no son una de ellas.&lt;br /&gt;&lt;br /&gt;En un experimento (?) realizado en ese país, una paloma tardó cerca de dos horas en transmitir una &lt;span style=&quot;font-weight: bold;&quot;&gt;memoria USB de 4Gb &lt;/span&gt;a otro destino (unas 60 millas),  mientras que una &lt;span style=&quot;font-weight: bold;&quot;&gt;conexión ADSL&lt;/span&gt; de la empresa Durban IT tardó el mismo tiempo en enviar el 4%.&lt;br /&gt;&lt;br /&gt;El vídeo puede verse en la &lt;a href=&quot;http://news.bbc.co.uk/2/hi/africa/8249294.stm&quot;&gt;página de la noticia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;¿Qué animal podría competir en España?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fuente: &lt;a href=&quot;http://news.bbc.co.uk&quot;&gt;BBC&lt;/a&gt;</description><link>http://adamaconsulting.blogspot.com/2009/09/una-paloma-es-mas-rapida-que-internet.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-520955376814261706</guid><pubDate>Mon, 07 Sep 2009 12:01:00 +0000</pubDate><atom:updated>2009-09-07T14:22:52.206+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><title>Oracle compra Sun Microsystems</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.geocities.com/TheTropics/3684/economy.gif&quot;&gt;&lt;img style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 162px; height: 182px;&quot; src=&quot;http://www.geocities.com/TheTropics/3684/economy.gif&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;El gigante de bases de datos &lt;a href=&quot;http://www.oracle.com/&quot;&gt;Oracle &lt;/a&gt;quiere comprar a &lt;a href=&quot;http://www.sun.com/&quot;&gt;Sun Microsystems&lt;/a&gt; la propietaria del leguaje de programación &lt;a href=&quot;http://java.sun.com/&quot;&gt;Java&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Los reguladores de Estados Unidos han dado el visto bueno a la operación, paralizada de momento hasta finales de Enero del 2010 por la Unión Europea en vistas de un posible desacuerdo de la competencia.&lt;br /&gt;&lt;br /&gt;Desde oracle indican que ya se ha dado el visto bueno en EEUU y que su finalidad es afianzar el liderazgo en el lenguaje de desarrollo Java.&lt;br /&gt;&lt;br /&gt;La realidad según la UE es otra, ya que Sun Microsystems adquirió recientemente la compañía de bases de datos de código abierto &lt;a href=&quot;http://www.mysql.com/&quot;&gt;MySQL &lt;/a&gt;y por tanto ahora pasaría a ser parte del emporio &lt;span style=&quot;font-weight: bold;&quot;&gt;Oracle&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Cerca del 80% del mercado de bases de datos está dominado por&lt;span style=&quot;font-weight: bold;&quot;&gt; IBM, Microsoft y Oracle&lt;/span&gt;, con lo que ahora este último podría verse reforzado y desde Bruselas piden invetigar el acuerdo para ver los detalles de la operación y que este no incurra en malas prácticas monopolísticas.&lt;br /&gt;&lt;br /&gt;Hay que recordar que en Enero de 2009 Oracle compró a otro gigante del software dentro del mundo Java como es &lt;a href=&quot;http://www.beasys.com/&quot;&gt;BEA Systems&lt;/a&gt;, afianzando así su liderazgo en los servidores de aplicaciones empresariales.&lt;br /&gt;&lt;br /&gt;Ahora al comprar a &lt;span style=&quot;font-weight: bold;&quot;&gt;Sun Microsystems&lt;/span&gt;, &lt;span style=&quot;font-weight: bold;&quot;&gt;Oracle &lt;/span&gt;se hará con el control no solamente de la base de datos de libre distribución más usada en el mundo, si no también con el otro gigante en el desarrollo del software, líder también en el mundo de los servidores de aplicaciones y propietario de la tecnología que más usan las empresas en el mundo &lt;span style=&quot;font-weight: bold;&quot;&gt;Java/J2EE&lt;/span&gt;, así como de los servidores solaris.&lt;br /&gt;&lt;br /&gt;A IBM y Microsoft les está saliendo un duro competidor, pero ¿dónde quedarán las empresas, instituciones y usuarios que usan MySQL y Java? Desde luego para algunos parece que no hay crisis ni recesión.&lt;br /&gt;&lt;br /&gt;Fuente: &lt;a href=&quot;http://www.cincodias.com&quot;&gt;cincodias&lt;/a&gt;</description><link>http://adamaconsulting.blogspot.com/2009/09/oracle-compra-sun-microsystems.html</link><author>noreply@blogger.com (David Palomar)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-3571346805330399197</guid><pubDate>Mon, 07 Sep 2009 11:09:00 +0000</pubDate><atom:updated>2009-11-30T00:16:36.836+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">accesibilidad</category><category domain="http://www.blogger.com/atom/ns#">cursos</category><category domain="http://www.blogger.com/atom/ns#">móviles</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><category domain="http://www.blogger.com/atom/ns#">usabilidad</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>Curso de diseño web para móviles</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.adamaconsulting.es/component/content/article/41/76-curso-diseno-web-movil&quot; onclick=&quot;javascript: pageTracker._trackPageview(&#39;/banners/adama/cursoMoviles&#39;);&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 588px; height: 128px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO7Au6ZIUYi2kOZNpTl4IFTcrdUL0ldjTv30_yck7zifE7RVhNcdb6Rw9RBxhCkW6TLQXVwIZJRaae2csx6jzHCdRsrDq5YWmMQfDMLvgoRaRy-Gi7y8scFUVqgUUrTqxWXxW_tXUwits/s320/cursomoviles.png&quot; alt=&quot;curso de optimización de sitios web para dispositivos móviles&quot; id=&quot;BLOGGER_PHOTO_ID_5378681735380336914&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Un nuevo&lt;strong&gt; curso de diseño web para  móviles &lt;/strong&gt;basado en buenas prácticas de &lt;strong&gt;&lt;a href=&quot;http://adamaconsulting.blogspot.com/search/label/usabilidad&quot;&gt;usabilidad &lt;/a&gt;&lt;a href=&quot;http://adamaconsulting.blogspot.com/search/label/accesibilidad&quot;&gt;y accesibilidad para móviles&lt;/a&gt;&lt;/strong&gt; recomendadas por el grupo de trabajo de &lt;strong&gt;dispositivos móviles y celulares&lt;/strong&gt; del &lt;a href=&quot;http://www.w3.org/&quot;&gt;W3C&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;El usuario sin cables es el nuevo paradigma de usuario conectado a Internet y a sus aplicaciones cotidianas. Cada vez más usuarios navegan mediante sus &lt;strong&gt;terminales móviles&lt;/strong&gt;, leen el correo, mandan mensajes, se planifican y ejecutan acciones con sus empresas y clientes.&lt;br /&gt;&lt;br /&gt;Para hacer todo esto disponible es necesario re-adaptar las aplicaciones a los nuevos dispositivos. Dispositivos estos de reducido tamaño y visión, además de contar con características muy diferentes entre ellos. Dentro de la &lt;a href=&quot;http://adamaconsulting.blogspot.com/search/label/cursos&quot;&gt;oferta formativa&lt;/a&gt; de consultora &lt;a href=&quot;http://www.adamaconsulting.es/&quot; title=&quot;Adama consulting&quot;&gt;Adama &lt;/a&gt;se ofrece este &lt;a href=&quot;http://www.adamaconsulting.es/component/content/article/41/76-curso-diseno-web-movil&quot; title=&quot;Curso de diseño web movil&quot;&gt;curso de diseño web&lt;/a&gt; en el que los participantes aprenderán a  desarrollar estas aplicaciones adaptadas a las &lt;strong&gt;buenas de prácticas de accesibilidad y usabilidad definidas en el consorcio w3c&lt;/strong&gt;, de manera que las aplicaciones puedan verse igualmente en cualquier dispositivo móvil y mejorar la experiencia de los usuarios realizando una navegación más eficaz.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.adamaconsulting.es/component/content/article/41/76-curso-diseno-web-movil&quot; title=&quot;curso diseño web movil. Más información en el enlace&quot;&gt;Más información del curso de diseño web móvil.&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://adamaconsulting.blogspot.com/2009/09/curso-de-desarrollo-de-interfaces-web.html</link><author>noreply@blogger.com (David Palomar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO7Au6ZIUYi2kOZNpTl4IFTcrdUL0ldjTv30_yck7zifE7RVhNcdb6Rw9RBxhCkW6TLQXVwIZJRaae2csx6jzHCdRsrDq5YWmMQfDMLvgoRaRy-Gi7y8scFUVqgUUrTqxWXxW_tXUwits/s72-c/cursomoviles.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5731334693514485625.post-2002444478807149555</guid><pubDate>Fri, 04 Sep 2009 11:37:00 +0000</pubDate><atom:updated>2009-09-21T14:05:32.787+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">cursos</category><category domain="http://www.blogger.com/atom/ns#">liderazgo</category><category domain="http://www.blogger.com/atom/ns#">noticias</category><category domain="http://www.blogger.com/atom/ns#">tecnología</category><category domain="http://www.blogger.com/atom/ns#">web</category><title>Experto universitario gratuito en comercio electrónico</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzutDhwU_1IbMZ9U40znCsQbnelvyHrZX0X7N18-vX47_E5kYXDiDQTMGAlbFnRcK1Tyt7lgWD1GLM_MrMRvr9C2FCvKRdRc2LPBadftUbU9DhGam6Oqa4mUlq-iO1JRekzb2F8hled-k/s1600-h/experto_universitario.png&quot;onClick=&quot;javascript: pageTracker._trackPageview(&#39;/banners/usal/expertoAvanza&#39;);&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 210px; height: 294px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzutDhwU_1IbMZ9U40znCsQbnelvyHrZX0X7N18-vX47_E5kYXDiDQTMGAlbFnRcK1Tyt7lgWD1GLM_MrMRvr9C2FCvKRdRc2LPBadftUbU9DhGam6Oqa4mUlq-iO1JRekzb2F8hled-k/s320/experto_universitario.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5377582665196585394&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;De la mano de la &lt;a href=&quot;http://www.usal.es/webusal/&quot;&gt;universidad de Salamanca&lt;/a&gt; y en el ámbito del &lt;a href=&quot;http://www.mityc.es/Plan_IDI/AvanzaFormacion/Paginas/Index.aspx&quot;&gt;plan Avanza&lt;/a&gt; colaboramos en la puesta en escena del:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:180%;&quot;&gt;Experto universitario en comercio y negocio electrónico.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este ambicioso curso es &lt;span style=&quot;font-weight: bold;&quot;&gt;completamente gratuito&lt;/span&gt; para &lt;span style=&quot;font-weight: bold;&quot;&gt;trabajadores en activo&lt;/span&gt; por cuenta ajena (&lt;span style=&quot;font-weight: bold;&quot;&gt;PYMES&lt;/span&gt;) y también para &lt;span style=&quot;font-weight: bold;&quot;&gt;autónomos &lt;/span&gt;y se realizará online.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El curso recoge cerca de &lt;span style=&quot;font-weight: bold;&quot;&gt;150 plazas&lt;/span&gt; de las cuales el 30% de las mismas está destinado a:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mujeres.&lt;/li&gt;&lt;li&gt;Personas con alguna discapacidad.&lt;/li&gt;&lt;li&gt;Inmigrantes&lt;/li&gt;&lt;li&gt;Autónomos.&lt;/li&gt;&lt;li&gt;mayores de 45 años.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;La matriculación se realizará por orden de titulación:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Titulados superiores.&lt;/li&gt;&lt;li&gt;Técnicos.&lt;/li&gt;&lt;li&gt;Trabajadores con los requisitos de acceso a la universidad.&lt;/li&gt;&lt;/ol&gt;El curso tiene una carga lectiva de 25 créditos ECTS y comenzará el último trimestre de 2009 y se prolongará hasta el segundo trimestre del 2010, por lo que es necesario darse prisa en la matriculación que todavía sigue abierta.&lt;br /&gt;&lt;br /&gt;El temario del curso es:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Tema 1: Introducción al comercio electrónico.        &lt;/li&gt;&lt;li&gt;    Tema 2: Legislación y Metodologías CMMI        &lt;/li&gt;&lt;li&gt;    Tema 3: Diseño de páginas Web    &lt;/li&gt;&lt;li&gt;    Tema 4: Implantación de sistemas para Accesibilidad Web   &lt;/li&gt;&lt;li&gt;    Tema 5: Puesta en marcha y desarrollo de la Web 3.0. Internet del Futuro   &lt;/li&gt;&lt;li&gt;    Tema 6: Seguridad en el comercio electrónico. Firma digital. Medios de Pago     &lt;/li&gt;&lt;li&gt;    Tema 7: Marketing electronico y Atención al cliente    &lt;/li&gt;&lt;li&gt;    Tema 8: Liderazgo y coaching en PYMES    &lt;/li&gt;&lt;/ul&gt;Un ambicioso y extenso curso, con temas actuales, avalado por la universidad de Salamanca y además &lt;span style=&quot;font-weight: bold;&quot;&gt;gratis&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Tienes más información en: &lt;a href=&quot;http://mastercomercioelectronico.net/&quot;&gt;http://mastercomercioelectronico.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si tienes alguna duda en la página oficial del máster tienes los contactos que responderán gustosos todas tus consultas y si quieres no repares en &lt;a href=&quot;http://www.adamaconsulting.es/formcontacto&quot;&gt;consultarnos &lt;/a&gt;.</description><link>http://adamaconsulting.blogspot.com/2009/09/experto-universitario-gratuito-en.html</link><author>noreply@blogger.com (David Palomar)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzutDhwU_1IbMZ9U40znCsQbnelvyHrZX0X7N18-vX47_E5kYXDiDQTMGAlbFnRcK1Tyt7lgWD1GLM_MrMRvr9C2FCvKRdRc2LPBadftUbU9DhGam6Oqa4mUlq-iO1JRekzb2F8hled-k/s72-c/experto_universitario.png" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>