<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog personal &#187; general</title>
	<atom:link href="http://ecentinela.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://ecentinela.com</link>
	<description></description>
	<lastBuildDate>Tue, 23 Feb 2010 14:12:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ruby on Rails… algo está naciendo en Internet</title>
		<link>http://ecentinela.com/ruby-on-rails-algo-esta-naciendo-en-internet/</link>
		<comments>http://ecentinela.com/ruby-on-rails-algo-esta-naciendo-en-internet/#comments</comments>
		<pubDate>Wed, 19 Jul 2006 19:13:25 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=31</guid>
		<description><![CDATA[Ruby on Rails es un framework open source que está optimizado para la productividad (y diversión ) del programador web. Está basado en la estructura modelo-vista-controlador, es decir, separa los datos, la logica y la interfaz de usuario en tres partes. Como su nombre indica, la programación se lleva a cabo con código Ruby, un [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ecentinela.com/wp-content/uploads/2006/07/rails.jpg" alt="Ruby on Rails" title="Ruby on Rails" width="87" height="112" class="alignleft size-full wp-image-93" /><a href="http://www.rubyonrails.org.es/">Ruby on Rails</a> es un <strong>framework</strong> <em>open source</em> que está optimizado para la productividad (y diversión <img src='http://ecentinela.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) del programador web.</p>
<p>Está basado en la estructura modelo-vista-controlador, es decir, separa los datos, la logica y la interfaz de usuario en tres partes. Como su nombre indica, la programación se lleva a cabo con código <strong>Ruby</strong>, un lenguaje orientado a objetos inspirado en <strong>Perl</strong>.</p>
<p>Lo que más llama la atención de <a href="http://www.rubyonrails.org.es/">Ruby on Rails</a> es que se dice que se consigue hacer cualquier proyecto diez veces más rápido que con otro lenguaje.</p>
<p>Me queda decir también que este <em>framework</em> lleva incorporado de série <a href="http://www.prototype.conio.net">prototype</a> y <a href="http://script.aculo.us/">scriptaculous</a> haciendo que su uso sea extremadamente sencillo.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/ruby-on-rails-algo-esta-naciendo-en-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax con Prototype</title>
		<link>http://ecentinela.com/ajax-con-prototype/</link>
		<comments>http://ecentinela.com/ajax-con-prototype/#comments</comments>
		<pubDate>Fri, 10 Mar 2006 19:09:07 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=30</guid>
		<description><![CDATA[Definición de AJAX en la wikipedia AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript y XML asíncronos), es una técnica de desarrollo web para crear aplicaciones interactivas. Éstas se ejecutan en el cliente, es decir, en el navegador del usuario, y mantiene comunicación con el servidor en segundo plano. De esta forma es posible realizar [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ecentinela.com/wp-content/uploads/2006/03/prototype.jpg" alt="Prototype" title="Prototype" width="190" height="86" class="alignleft size-full wp-image-95" /><u><strong>Definición de AJAX en la wikipedia</strong></u></p>
<p><strong>AJAX</strong>, acrónimo de Asynchronous JavaScript And XML (JavaScript y XML asíncronos), es una técnica de desarrollo web para crear aplicaciones interactivas. Éstas se ejecutan en el cliente, es decir, en el navegador del usuario, y mantiene comunicación con el servidor en segundo plano. De esta forma es posible realizar cambios sobre la misma página sin necesidad de recargarla. Esto significa aumentar la interactividad, velocidad y usabilidad en la misma.</p>
<p>La librería <a href="http://www.prototypejs.org/">Prototype</a> nos ayuda enormemente a usar <strong>AJAX</strong> en nuestras aplicaciones.</p>
<p>Vamos a ver como hacerlo con unos sencillos ejemplos.</p>
<p><span id="more-86"></span></p>
<p>Teniendo en cuenta el siguiente código <strong>PHP</strong> que incluiremos en una página llamada <strong>laPaginaPHP.php</strong>, vamos a realizar tres ejemplos. En cada uno usaremos uno de los tres métodos que disponemos para realizar llamadas <strong>AJAX</strong>.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nombre'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//conexión con la base de datos</span>
<span style="color: #339933;">...</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//creo un numero aleatorio para el id del usuario que voy a actualizar</span>
<span style="color: #000088;">$idAleatorio</span> <span style="color: #339933;">=</span> <span style="color: #990000;">rand</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//consulta</span>
<span style="color: #000088;">$consulta</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;UPDATE usuarios SET nombre = <span style="color: #006699; font-weight: bold;">$_POST</span>['nombre'] WHERE id=<span style="color: #006699; font-weight: bold;">$idAleatorio</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//ejecución de la consulta</span>
<span style="color: #339933;">...</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//devuelvo un texto de que la operación es correcta</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;La consulta se realizó correctamente&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;La consulta no ha sido realizada&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Ajax.Request</h3>
<p>El método Request nos permite sencillamente ejecutar una petición al servidor y nos devuelve el resultado de dicha petición.</p>
<p>En el siguiente código voy a hacer una petición al servidor cuando el usuario pincha sobre un botón. Esta petición actualizará la base de datos y nos devolverá el resultado.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> actualiza<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		Ajax.<span style="color: #660066;">Request</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;laPaginaPHP.php&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
			postBody<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;nombre=pepitoDeLosPalotes&quot;</span><span style="color: #339933;">,</span>
			onSuccess<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>objeto<span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>objeto.<span style="color: #660066;">responseText</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;button&quot;</span> value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;pinchame&quot;</span> <span style="color: #339933;">/&gt;</span></pre></div></div>

<h3>Ajax.Updater</h3>
<p>El método Updater se diferencia del anterior, en que este imprime el contenido de la respuesta en el primer parametro de la llamada. En el siguiente ejemplo escribo la respuesta en una capa llamada &#8220;capaResultado&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> actualiza<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		Ajax.<span style="color: #660066;">Updater</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;capaResultado&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;laPaginaPHP.php&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
			postBody<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;nombre=pepitoDeLosPalotes&quot;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;capaResultado&quot;</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;button&quot;</span> value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;pinchame&quot;</span> <span style="color: #339933;">/&gt;</span></pre></div></div>

<h3>Ajax.PeriodicalUpdater</h3>
<p>El último método que hay es una ampliación del <strong>Updater</strong>. En este caso, como su nombre indica, la llamada se repetirá indefinidamente con la frecuencia especificada (2 segundos es el valor por defecto). Si el objeto no obtiene respuesta la frecuencia se aumentará automáticamente. En el momento en que obtenga respuesta, la frecuencia volverá a tener el valor que nosotros especificamos en la declaración.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> actualiza<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		Ajax.<span style="color: #660066;">PeriodicalUpdater</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;capaResultado&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;laPaginaPHP.php&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>
			frequency<span style="color: #339933;">:</span> <span style="color: #CC0000;">5</span><span style="color: #339933;">,</span>
			postBody<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;nombre=pepitoDeLosPalotes&quot;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;capaResultado&quot;</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;button&quot;</span> value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;pinchame&quot;</span> <span style="color: #339933;">/&gt;</span></pre></div></div>

<p>Como hemos visto el uso del objeto <strong>AJAX</strong> es muy sencillo. En estos ejemplos no he añadido apenas opciones ni <em>callbacks</em>, las cuales son comunes en los tres métodos.</p>
<p>Algunas de las opciones son las siguientes:</p>
<ul>
<li><strong>postBody</strong> aqui incluiremos los valores que queramos enviar en formato URL (&#8220;nombre=pepito&#038;apellido=fernandez&#038;edad=15&#8243;)</li>
<li><strong>method</strong> determina la forma en la que enviamos el contenido. Este puede ser &#8220;post&#8221; o &#8220;get&#8221;</li>
<li><strong>asynchronous</strong> indica si la llamada será síncrona o asíncrona. Los valores son true o false</li>
</ul>
<p>Y algunos <em>callbacks</em> son:</p>
<ul>
<li><strong>onFailure</strong> función personalizada que se ejecutará cuando la llamada haya sido completada con algun error</li>
<li><strong>onSuccess</strong> función personalizada que se ejecutará cuando la llamada haya sido completada correctamente</li>
</ul>
<p>Con esto hemos visto lo básico acerca de <strong>ajax</strong> y su utilización, asi que ya podeis ir haciendo vuestros pinitos <img src='http://ecentinela.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
<!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/ajax-con-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prototype: el elixir de javascript</title>
		<link>http://ecentinela.com/prototype-el-elixir-de-javascript/</link>
		<comments>http://ecentinela.com/prototype-el-elixir-de-javascript/#comments</comments>
		<pubDate>Sun, 05 Mar 2006 18:35:12 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=29</guid>
		<description><![CDATA[Prototype es un framework para javascript creado por Sam Stephenson que ha revolucionado el modo de programar en este lenguaje. Hasta ahora programar con javascript era algo tedioso y aburrido (almenos para mi). Desde que estoy usando esta librería, la programación se ha vuelto rápida, agil y lo que es mejor, divertida. Desde hace un [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ecentinela.com/wp-content/uploads/2006/03/elixir_prototype.jpg" alt="Prototype" title="Prototype" width="196" height="180" class="alignleft size-full wp-image-99" /><a href="http://prototypejs.org/">Prototype</a> es un <em>framework</em> para javascript creado por <a href="http://www.conio.net/">Sam Stephenson</a> que ha revolucionado el modo de programar en este lenguaje.</p>
<p>Hasta ahora programar con javascript era algo tedioso y aburrido (almenos para mi). Desde que estoy usando esta librería, la programación se ha vuelto rápida, agil y lo que es mejor, divertida.</p>
<p>Desde hace un tiempo, infinidad de desarrolladores estan adoptándolo en sus proyectos y creando verdaderas obras de arte en cuanto a diseño de interfaz y herramientas para la web se refiere.</p>
<p>Pero, ¿que es lo que tiene <a href="http://prototypejs.org/">Prototype</a> que lo hace tan agradable para los desarrolladores?</p>
<p>Sigue leyendo y te explico un poco de que va todo esto&#8230;</p>
<p><span id="more-85"></span><br />
<a href="http://prototypejs.org/">Prototype</a> aporta una serie de utilidades que hacen muy fácil la creación de complejas librerias y funciones javascript. Estas son algunas de ellas (las que más comunmente uso):</p>
<h3>Función $()</h3>
<p>Esta función es &#8220;simplemente&#8221; un atajo de <strong>document.getElementById()</strong>. Pero va un poco más lejos. Podemos recoger una série de elementos con ella de tal forma que nos devolverá un array de elementos.</p>
<p>Ejemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> test1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> miCapa <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'capa1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>miCapa.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> test2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> misCapas <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'capa1'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'capa2'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>miscapas .<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>misCapas<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;capa1&quot;</span><span style="color: #339933;">&gt;</span>Un texto<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;capa2&quot;</span><span style="color: #339933;">&gt;</span>Otro texto<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;button&quot;</span> value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;funcion1&quot;</span> onclick<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;test1();&quot;</span><span style="color: #339933;">/&gt;&lt;</span>br <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;button&quot;</span> value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;funcion2&quot;</span> onclick<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;test2();&quot;</span><span style="color: #339933;">/&gt;&lt;</span>br <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;/</span>miscapas<span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<h3>Función $F()</h3>
<p>Otra función que es muy cómoda de usar. Esta nos recogera el valor del elemento de formulario que le indiquemos.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> valor <span style="color: #339933;">=</span> $F<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;saludo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>valor<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;hola que tal&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;saludo&quot;</span> onClick<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;test();&quot;</span> <span style="color: #339933;">/&gt;</span></pre></div></div>

<p>Sobretodo tened en cuenta que es sólo para recibir el valor, no para asignarlo. Por lo tanto la siguiente línea estaría mal.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$F<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;saludo&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;muy bien, gracias&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Función $A()</h3>
<p>Esta función nos convertirá en un array aquello que le pasemos. Por ejemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> opciones <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;select&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">options</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> array_opciones <span style="color: #339933;">=</span> $A<span style="color: #009900;">&#40;</span>opciones<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>array_opciones .<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>array_opciones<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>select id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;select&quot;</span><span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;1&quot;</span><span style="color: #339933;">&gt;</span>Primera<span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;1&quot;</span><span style="color: #339933;">&gt;</span>Primera<span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>option value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;1&quot;</span><span style="color: #339933;">&gt;</span>Primera<span style="color: #339933;">&lt;/</span>option<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>select<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>array_opciones<span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<h3>Bucles a&#8217;la Ruby</h3>
<p>Hasta ahora, los bucles los hemos hecho de esta forma:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>miselementos .<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>misElementos<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>miselementos<span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Ahora con prototype tenemos esta otra forma de hacerlos:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
	<span style="color: #003366; font-weight: bold;">function</span> test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		misElementos.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>elemento<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>elemento<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Ademas de estas y muchas otras funciones, <a href="http://prototype.conio.net/">Prototype</a> nos extiende varias clases y objetos que existen actualmente. Algunos de los cuales son:</p>
<h3>Extensiones para la clase <strong>String</strong></h3>
<p>Algunas de ellas son:</p>
<ul>
<li><strong>stripTags()</strong> devuelve el texto eliminando cualquier <em>tag</em> HTML que puediera tener</li>
<li><strong>escapeHTML()</strong> devuelve el texto escapando cualquier <em>tag</em> HTML que puediera tener</li>
<li><strong>unescapeHTML()</strong> &#8230; ¿no lo adivinas?</li>
</ul>
<h3>Extensiones para la clase <strong>Array</strong></h3>
<p>Algunas de ellas son:</p>
<ul>
<li><strong>indexOf(valor)</strong> devuelve indice del elemento que tiene el valor que le pasamos</li>
<li><strong>without(valor1 [, valor2 [, .. valorN]])</strong> devuelve el <em>array</em> sin los elementos que le pasamos a la función</li>
</ul>
<h3>Extensiones para la clase <strong>array</strong></h3>
<p>Vamos a ver ahora algunos de los nuevos métodos para esta clase:</p>
<ul>
<li><strong>indexOf(valor)</strong> devuelve indice del elemento que tiene el valor que le pasamos</li>
<li><strong>without(valor1 [, valor2 [, .. valorN]])</strong> devuelve el <em>array</em> sin los elementos que le pasamos a la función</li>
</ul>
<h3>Extensiones para el objeto<strong>Event</strong></h3>
<p>Algunas de ellas son:</p>
<ul>
<li><strong>element(evento)</strong> devuelve el objeto que ha llamado al evento</li>
<li><strong>stop(evento)</strong> aborta el comportamiento normal del evento (por ejemplo un enlace)</li>
</ul>
<h3>El objeto <strong>Element</strong></h3>
<p>Este nuevo objeto nos da útiles funciones para manipular los elementos del <em>DOM</em>.</p>
<ul>
<li><strong>addClassName(elemento, clase)</strong> asigna, al elemento que se le pasa, la clase <em>css</em> que también se le pasa</li>
<li><strong>removeClassName(elemento, clase)</strong> elimina, al elemento que se le pasa, la clase <em>css</em> que también se le pasa</li>
<li><strong>show(elem1 [, elem2 [, elem3 [...]]])</strong> muestra el elemento o elementos que se le pasan a la función</li>
<li><strong>hide(elem1 [, elem2 [, elem3 [...]]])</strong> oculta el elemento o elementos que se le pasan a la función</li>
<li><strong>toggle(elem1 [, elem2 [, elem3 [...]]])</strong> invierte el valor de la propiedad <em>display</em> del elemento o elementos que se le pasan a la función</li>
<li><strong>remove(elemento)</strong> elimina el elemento del <em>DOM</em></li>
<li><strong>scrollTo(elemento)</strong> hace un scroll de ventana hasta la posición del elemento que se le pasa</li>
<li><strong>update(elemento, html)</strong> reemplaza el contenido del elemento (innerHTML) con el valor que se le pasa</li>
</ul>
<h3>El objeto <strong>Insertion</strong></h3>
<p>El objeto <strong>Insertion</strong> lo usaremos para introducir contenido en el <em>DOM</em>. Tiene 4 métodos: Before, After, Top y Bottom, aunque los cuatro se usan de la misma forma.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">	<span style="color: #003366; font-weight: bold;">function</span> test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Insertion.<span style="color: #660066;">Before</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;miFormulario&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;antes de etiqueta &lt;form&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Insertion.<span style="color: #660066;">After</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;miFormulario&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;después de etiqueta &lt;/form&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Insertion.<span style="color: #660066;">Top</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;miFormulario&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;antes de etiqueta &lt;input /&gt;, dentro de &lt;form&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">new</span> Insertion.<span style="color: #660066;">Bottom</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;miFormulario&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;después de etiqueta &lt;input /&gt;, dentro de &lt;/form&gt;&lt;form&gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;&lt;</span>form id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;miFormulario&quot;</span><span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;miTexto&quot;</span> value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;Hola que tal&quot;</span> onClick<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;test();&quot;</span> <span style="color: #339933;">/&gt;</span>
	<span style="color: #339933;">&lt;/</span>form<span style="color: #339933;">&gt;</span></pre></div></div>

<h3>El objeto <strong>Field</strong></h3>
<p>Este objeto nos da utilidades para trabajar con elementos de formularios. Algunas son:</p>
<ul>
<li><strong>clear(campo1 [, campo2 [, campoN]])</strong> vacia el contenido del campo o campos que se le pasan a la función</li>
<li><strong>focus(elemento)</strong> pasa el foco al elemento que se pasa
</li>
</ul>
<h3>El objeto <strong>Form</strong></h3>
<p>Este objeto nos da utilidades para trabajar con formularios. Algunas son:</p>
<ul>
<li><strong>serialize(formulario)</strong> devuelve una cadena formateada para pasar por URL con los elementos del formulario y sus valores. Esta función nos será muy útil si trabajamos con ajax</li>
<li><strong>getElements(formulario)</strong> devuelve un array con los elementos que pertenecen al formulario</li>
<li><strong>enable(formulario)</strong> activa todos los elementos del formulario</li>
<li><strong>disable(formulario)</strong> desactiva todos los elementos del formulario</li>
<li><strong>focusFirstElement(formulario)</strong> da el foco al primer elemento del formulario</li>
</ul>
<p>Hasta aquí explico de las bondades de <a href="http://prototype.conio.net/">Prototype</a>, aunque no son ni una quinta parte de las que hay. Espero que os sirva almenos para abrir un poco el apetito <em>javascript</em> y que empeceis a programar en este lenguaje que vive su segunda juventud <img src='http://ecentinela.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Os recomiendo encarecidamente que le echeis un ojo a esta pagina <a href="http://www.sergiopereira.com/articles/prototype.js.html">http://www.sergiopereira.com/articles/prototype.js.html</a> donde se explican muy bien muchas aportaciones que nos hace <a href="http://prototype.conio.net/">Prototype</a>.<br />
<!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/prototype-el-elixir-de-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calcular hash MD5 en Visual Basic 2005</title>
		<link>http://ecentinela.com/calcular-hash-md5-en-visual-basic-2005/</link>
		<comments>http://ecentinela.com/calcular-hash-md5-en-visual-basic-2005/#comments</comments>
		<pubDate>Thu, 02 Feb 2006 16:37:24 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=3</guid>
		<description><![CDATA[Resulta que he hecho una miniaplicación en Visual Basic que te avisa cuando llega la hora de un evento que anteriormente has guardado en un calendario de una web en PHP. Al hacer esta aplicación me encontrado con el problema de la validación del usuario. Resulta que cuando creas un evento en la web te [...]]]></description>
			<content:encoded><![CDATA[<p>Resulta que he hecho una miniaplicación en Visual Basic que te avisa cuando llega la hora de un evento que anteriormente has guardado en un calendario de una web en PHP.</p>
<p>Al hacer esta aplicación me encontrado con el problema de la validación del usuario. Resulta que cuando creas un evento en la web te validas por medio de un password codificado en MD5 (con la función md5() de PHP).</p>
<p><span id="more-84"></span>En visual basic no existe ninguna función (almenos no la conozco) que te haga esa conversión, asi que tube que escribir una que la hiciese. En las pruebas que he hecho, parece que funciona perfectamente, pero sino, se aceptan comentarios <img src='http://ecentinela.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Function</span> calculaMD5<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> cadena <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span>
CALCULO EL HASH DE LA CLAVE INTRODUCIDA CON MD5
<span style="color: #0600FF;">Dim</span> md5 <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">New</span> System.<span style="color: #0000FF;">Security</span>.<span style="color: #0000FF;">Cryptography</span>.<span style="color: #0000FF;">MD5CryptoServiceProvider</span>
<span style="color: #0600FF;">Dim</span> bytValue<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span>
<span style="color: #0600FF;">Dim</span> bytHash<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Byte</span>
<span style="color: #0600FF;">Dim</span> sb <span style="color: #FF8000;">As</span> System.<span style="color: #0000FF;">Text</span>.<span style="color: #0000FF;">StringBuilder</span> <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> System.<span style="color: #0000FF;">Text</span>.<span style="color: #0000FF;">StringBuilder</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">32</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> i <span style="color: #FF8000;">As</span> <span style="color: #FF0000;">Integer</span>
bytValue <span style="color: #008000;">=</span> System.<span style="color: #0000FF;">Text</span>.<span style="color: #0000FF;">Encoding</span>.<span style="color: #0000FF;">UTF8</span>.<span style="color: #0000FF;">GetBytes</span><span style="color: #000000;">&#40;</span>cadena<span style="color: #000000;">&#41;</span>
bytHash <span style="color: #008000;">=</span> md5.<span style="color: #0000FF;">ComputeHash</span><span style="color: #000000;">&#40;</span>bytValue<span style="color: #000000;">&#41;</span>
md5.<span style="color: #0000FF;">Clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Dim</span> <span style="color: #0600FF;">str</span> <span style="color: #FF8000;">As</span> <span style="color: #FF8000;">String</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;&quot;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'bytHash SIEMPRE DEVUELVE PAREJAS DE CARACTERES QUE VOY CONCATENANDO</span>
<span style="color: #FF8000;">For</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span> <span style="color: #FF8000;">To</span> bytHash.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span>
<span style="color: #0600FF;">str</span> <span style="color: #008000;">=</span> bytHash<span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;x2&quot;</span><span style="color: #000000;">&#41;</span>
sb.<span style="color: #0000FF;">Append</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">str</span><span style="color: #000000;">&#41;</span>
<span style="color: #FF8000;">Next</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'DEVUELVO LA CADENA MD5</span>
<span style="color: #FF8000;">Return</span> sb.<span style="color: #0000FF;">ToString</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Function</span></pre></div></div>

<p><!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/calcular-hash-md5-en-visual-basic-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Factoria de proveedores (Parte 2)</title>
		<link>http://ecentinela.com/factoria-de-proveedores-parte-2/</link>
		<comments>http://ecentinela.com/factoria-de-proveedores-parte-2/#comments</comments>
		<pubDate>Sun, 29 Jan 2006 16:56:54 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=4</guid>
		<description><![CDATA[Anteriormente comentaba las bondades de la factoria de proveedores de Visual Basic a la hora de crear una aplicación fácilmente migrable entre distintos motores de bases de datos. Aquí dejo un ejemplo de código (algo muy sencillito). Imports System.Data.Common &#160; Public Class identificacion 'CREO UN DATASET PARA RELLENARLO CON LA INFO DE LA TABLA Dim [...]]]></description>
			<content:encoded><![CDATA[<p>Anteriormente comentaba las bondades de la factoria de proveedores de Visual Basic a la hora de crear una aplicación fácilmente migrable entre distintos motores de bases de datos.</p>
<p>Aquí dejo un ejemplo de código (algo muy sencillito).</p>
<p><span id="more-83"></span></p>

<div class="wp_syntax"><div class="code"><pre class="vbnet" style="font-family:monospace;"><span style="color: #0600FF;">Imports</span> System.<span style="color: #0000FF;">Data</span>.<span style="color: #0000FF;">Common</span>
&nbsp;
<span style="color: #FF8000;">Public</span> <span style="color: #0600FF;">Class</span> identificacion
<span style="color: #008080; font-style: italic;">'CREO UN DATASET PARA RELLENARLO CON LA INFO DE LA TABLA</span>
<span style="color: #0600FF;">Dim</span> dataset <span style="color: #FF8000;">As</span> DataSet <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> DataSet
&nbsp;
<span style="color: #FF8000;">Private</span> <span style="color: #0600FF;">Sub</span> identificacion_Load<span style="color: #000000;">&#40;</span><span style="color: #FF8000;">ByVal</span> sender <span style="color: #FF8000;">As</span> System.<span style="color: #FF0000;">Object</span>, <span style="color: #FF8000;">ByVal</span> e <span style="color: #FF8000;">As</span>
System.<span style="color: #0000FF;">EventArgs</span><span style="color: #000000;">&#41;</span> <span style="color: #FF8000;">Handles</span> <span style="color: #FF8000;">MyBase</span>.<span style="color: #0000FF;">Load</span>
<span style="color: #008080; font-style: italic;">'CREO El OBJETO FACTORIA E INDICO EL PROVEEDOR QUE VOY A USAR</span>
<span style="color: #0600FF;">Dim</span> factoria <span style="color: #FF8000;">As</span> DbProviderFactory <span style="color: #008000;">=</span>
DbProviderFactories.<span style="color: #0000FF;">GetFactory</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;System.Data.SqlClient&quot;</span><span style="color: #000000;">&#41;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'CREO EL CONEXIONBUILDER PARA PREPARAR LA CONEXION</span>
<span style="color: #0600FF;">Dim</span> parametrosConexion <span style="color: #FF8000;">As</span> DbConnectionStringBuilder <span style="color: #008000;">=</span>
factoria.<span style="color: #0000FF;">CreateConnectionStringBuilder</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'PREPARO LA CADENA DE CONEXION</span>
<span style="color: #0600FF;">With</span> parametrosConexion
.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Data Source&quot;</span>, <span style="color: #808080;">&quot;localhost&quot;</span><span style="color: #000000;">&#41;</span>
.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Initial Catalog&quot;</span>, <span style="color: #808080;">&quot;unica_db&quot;</span><span style="color: #000000;">&#41;</span>
.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Integrated Security&quot;</span>, <span style="color: #808080;">&quot;SSPI&quot;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">With</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'CREO EL OBJETO DE CONEXION</span>
<span style="color: #0600FF;">Dim</span> conexion <span style="color: #FF8000;">As</span> DbConnection <span style="color: #008000;">=</span> factoria.<span style="color: #0000FF;">CreateConnection</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'ESTABLEZCO LA CADENA DE CONEXION</span>
conexion.<span style="color: #0000FF;">ConnectionString</span> <span style="color: #008000;">=</span> parametrosConexion.<span style="color: #0000FF;">ConnectionString</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'ABRO LA CONEXION</span>
<span style="color: #0600FF;">Try</span>
<span style="color: #008080; font-style: italic;">'INTENTO LA CONEXION</span>
conexion.<span style="color: #0600FF;">Open</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Catch</span> ex <span style="color: #FF8000;">As</span> Exception
<span style="color: #008080; font-style: italic;">'SI FALLA, MUESTRO UN MENSAJE Y CIERRO EL PROGRAMA</span>
MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Error en la conexión con la base de datos. Si el problema
persiste consulte con el Administrador del sistema&quot;</span>, _
<span style="color: #808080;">&quot;Error en la conexión&quot;</span>, MessageBoxButtons.<span style="color: #0600FF;">OK</span>,
MessageBoxIcon.<span style="color: #FF8000;">Error</span>, MessageBoxDefaultButton.<span style="color: #0000FF;">Button1</span><span style="color: #000000;">&#41;</span>
My.<span style="color: #0000FF;">Forms</span>.<span style="color: #0000FF;">principal</span>.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #FF8000;">Me</span>.<span style="color: #0600FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">Exit</span> <span style="color: #0600FF;">Sub</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Try</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'PREPARO UN ADAPTADOR PARA OBTENER LA TABLA DE USUARIOS</span>
<span style="color: #0600FF;">Dim</span> adaptador <span style="color: #FF8000;">As</span> DbDataAdapter <span style="color: #008000;">=</span> factoria.<span style="color: #0000FF;">CreateDataAdapter</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'CREO UN COMANDO</span>
<span style="color: #0600FF;">Dim</span> comando <span style="color: #FF8000;">As</span> DbCommand <span style="color: #008000;">=</span> conexion.<span style="color: #0000FF;">CreateCommand</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'CREO LA CONSULTA</span>
comando.<span style="color: #0000FF;">CommandText</span> <span style="color: #008000;">=</span> <span style="color: #808080;">&quot;SELECT * FROM tbl_usuarios&quot;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">'ENLAZO EL ADAPTADOR AL COMANDO</span>
adaptador.<span style="color: #0000FF;">SelectCommand</span> <span style="color: #008000;">=</span> comando
&nbsp;
<span style="color: #008080; font-style: italic;">'RELLENO EL DATASET</span>
dataset <span style="color: #008000;">=</span> <span style="color: #FF8000;">New</span> DataSet
adaptador.<span style="color: #0000FF;">Fill</span><span style="color: #000000;">&#40;</span>dataset, <span style="color: #808080;">&quot;tbl_usuarios&quot;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Sub</span>
<span style="color: #0600FF;">End</span> <span style="color: #0600FF;">Class</span></pre></div></div>

<p>Este es el codigo de un formulario que accede a una base de datos Sql server. Como podeis ver, establezo los parametros de la conexión en las primeras lineas de programa.<br />
Pues bien. Si decidiese cambiar el tipo de base de datos, por ejemplo a Access, sólo deberia cambiar esas primeras lineas.<br />
En otras versiones, si quisiese hacerlo, tendria que cambiar el codigo de prácticamente todos los objetos que he creado que sirven para relacionarse con la base de datos (comando, dataAdapter, etc).<br />
Espero que haya quedado un poco más claro.<!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/factoria-de-proveedores-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Factoria de proveedores</title>
		<link>http://ecentinela.com/factoria-de-proveedores/</link>
		<comments>http://ecentinela.com/factoria-de-proveedores/#comments</comments>
		<pubDate>Thu, 26 Jan 2006 16:56:35 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=5</guid>
		<description><![CDATA[He estado probando un poco la factoria de proveedores de datos de visual basic 2005 express (DbProviderFactories class). Esta clase sirve para relacionarse con la base de datos pudiendo cambiar el motor en cualquier momento, reescribiendo únicamente la cadena de conexion y especificando el nuevo proveedor. Esto nos vendria bien, por ejemplo, en una aplicación [...]]]></description>
			<content:encoded><![CDATA[<div class="centro"><img src="http://ecentinela.com/wp-content/uploads/2006/01/vb2005.jpg" alt="Visual Basic 2005" title="Visual Basic 2005" width="320" height="57" class="alignleft size-full wp-image-104" /></div>
<p>He estado probando un poco la factoria de proveedores de datos de <a href="http://msdn.microsoft.com/vstudio/express/vb/default.aspx">visual basic 2005 express</a> (DbProviderFactories class).</p>
<p>Esta clase sirve para relacionarse con la base de datos pudiendo cambiar el motor en cualquier momento, reescribiendo únicamente la cadena de conexion y especificando el nuevo proveedor. Esto nos vendria bien, por ejemplo, en una aplicación que se relaciona con <a href="http://office.microsoft.com/es-es/FX010857913082.aspx">Access</a> y más tarde queremos cambiar a <a href="http://www.microsoft.com/sql/default.mspx">SQL Server</a>. Anteriormente hacer este cambio significaba reescribir gran parte de la aplicación. Esta clase viene a solucionar este problema.</p>
<p>Los objetos command, dataAdapter, etc. seran independientes del tipo de base de datos.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/factoria-de-proveedores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ejercicio de animación 1</title>
		<link>http://ecentinela.com/ejercicio-de-animacion-1/</link>
		<comments>http://ecentinela.com/ejercicio-de-animacion-1/#comments</comments>
		<pubDate>Wed, 07 Dec 2005 16:43:06 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=6</guid>
		<description><![CDATA[Después de ver unos vídeos de Animation mentor, he decidido retomar la animación desde el principio, asi que he empezado a realizar una série de ejercicios empezando por lo más básico. Ver vídeo: Ejercicio 1 Se trata de simular el rebote en una superfície, de pelotas de distinto material y las diferentes reacciones que tienen. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ecentinela.com/wp-content/uploads/2005/12/ejercicio_animacion1.jpg" alt="ejercicio_animacion1" title="ejercicio_animacion1" width="150" height="100" class="alignleft size-full wp-image-106" />Después de ver unos vídeos de <a href="http://www.animationmentor.com/">Animation mentor</a>, he decidido retomar la animación desde el principio, asi que he empezado a realizar una série de ejercicios empezando por lo más básico.</p>
<p><strong>Ver vídeo:</strong> <a href='http://ecentinela.com/wp-content/uploads/2005/12/ejercicio_animacion1.mov'>Ejercicio 1</a></p>
<p>Se trata de simular el rebote en una superfície, de pelotas de distinto material y las diferentes reacciones que tienen.</p>
<p>Parece un ejercicio fácil, pero pronto te das cuenta de que tiene su cosilla. En este ejercicio se ponen en práctica algunos de los conceptos más importantes, como el squash &#038; stretch.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/ejercicio-de-animacion-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://ecentinela.com/wp-content/uploads/2005/12/ejercicio_animacion1.mov" length="100860" type="video/quicktime" />
		</item>
		<item>
		<title>LowXSIman</title>
		<link>http://ecentinela.com/lowxsiman/</link>
		<comments>http://ecentinela.com/lowxsiman/#comments</comments>
		<pubDate>Mon, 28 Nov 2005 16:43:12 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=7</guid>
		<description><![CDATA[Por fin he acabado la conversión del personaje lowman de lichiman a Softimage XSI. Aquí lo dejo para descargar. Contiene una vista synoptica para hacer más fácil la interacción con el personaje. Descargar: LowXSIman La mayor virtud de este personaje es que no es nada pesado (ya que se basa en enlaces entre objetos) y [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ecentinela.com/wp-content/uploads/2005/11/lowxsiman.jpg"><img src="http://ecentinela.com/wp-content/uploads/2005/11/lowxsiman.jpg" alt="lowXSIman" title="lowXSIman" width="150" height="100" class="alignleft size-full wp-image-109" /></a>Por fin he acabado la conversión del personaje <a href="http://lichiman.aniguild.com/?s=lowman">lowman</a> de <a href="http://lichiman.aniguild.com/">lichiman</a> a <a href="http://softimage.com/">Softimage XSI</a>. Aquí lo dejo para descargar. Contiene una vista synoptica para hacer más fácil la interacción con el personaje.</p>
<p><strong>Descargar:</strong> <a href='http://ecentinela.com/wp-content/uploads/2005/11/lowxsiman.zip'>LowXSIman</a></p>
<p>La mayor virtud de este personaje es que no es nada pesado (ya que se basa en enlaces entre objetos) y lo puede mover con holgura cualquier ordenador haciendo la interacción con la escena muy fluida.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/lowxsiman/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Imágen final del vampiro</title>
		<link>http://ecentinela.com/imagen-final-del-vampiro/</link>
		<comments>http://ecentinela.com/imagen-final-del-vampiro/#comments</comments>
		<pubDate>Mon, 21 Nov 2005 17:00:11 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=8</guid>
		<description><![CDATA[Me da un poco de penilla llegar a este punto porque es el modelo que mas me ha llevado hacer&#8230; pero&#8230; aquí está la imágen final. Ver imágen: Imágen final vampiro Está compuesta por dos passes (beauty y Ambient Oclusion). Me ha gustado bastante el resultado aunque hay cosas por mejorar, como los ojos. Pero [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ecentinela.com/wp-content/uploads/2005/11/vampiro_final_thumb.jpg" alt="Vampiro" title="Vampiro" width="150" height="100" class="alignleft size-full wp-image-112" />Me da un poco de penilla llegar a este punto porque es el modelo que mas me ha llevado hacer&#8230; pero&#8230; aquí está la imágen final.</p>
<p><strong>Ver imágen:</strong> <a href="http://ecentinela.com/wp-content/uploads/2005/11/vampiro_final.jpg">Imágen final vampiro</a></p>
<p>Está compuesta por dos passes (<em>beauty</em> y <em>Ambient Oclusion</em>). Me ha gustado bastante el resultado aunque hay cosas por mejorar, como los ojos. Pero esto lo diria siempre aunque mejorase todo&#8230; asi que hasta aquí ha llegado este proyecto <img src='http://ecentinela.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/imagen-final-del-vampiro/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Algunas correcciones y cambios al vampiro</title>
		<link>http://ecentinela.com/algunas-correcciones-y-cambios-al-vampiro/</link>
		<comments>http://ecentinela.com/algunas-correcciones-y-cambios-al-vampiro/#comments</comments>
		<pubDate>Sat, 05 Nov 2005 17:00:31 +0000</pubDate>
		<dc:creator>Javier</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://localhost:8888/wordpress/?p=9</guid>
		<description><![CDATA[Como os decía en el mensaje anterior&#8230; Ha sido trabajar un poco el mapa de desplazamiento, aplicar un shader un poco mas realista y la imagen ha cambiado radicalmente. Ver imágen:Render vampiro También he remodelado la mandibula, corregido los ojos y bueno&#8230; otros cambios menores que no se notan individualmente pero si que le dan [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ecentinela.com/wp-content/uploads/2005/11/correcciones_vampiro_thumb.jpg" alt="Correcciones vampiro" title="Correcciones vampiro" width="150" height="100" class="alignleft size-full wp-image-117" />Como os decía en el mensaje anterior&#8230; Ha sido trabajar un poco el mapa de desplazamiento, aplicar un shader un poco mas realista y la imagen ha cambiado radicalmente.</p>
<p><strong> Ver imágen:</strong><a href="http://ecentinela.com/wp-content/uploads/2005/11/correcciones_vampiro.jpg">Render vampiro</a></p>
<p>También he remodelado la mandibula, corregido los ojos y bueno&#8230; otros cambios menores que no se notan individualmente pero si que le dan un mejor toque a la imagen.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecentinela.com/algunas-correcciones-y-cambios-al-vampiro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

