<?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>Ubicuos.com &#187; Programación</title>
	<atom:link href="http://www.ubicuos.com/temas/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ubicuos.com</link>
	<description>Tecnología,Programación, Proyectos, Ciencia y Empresas</description>
	<lastBuildDate>Sat, 31 Jul 2010 07:12:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Geolocalizar con CSharp y GoogleMaps</title>
		<link>http://www.ubicuos.com/2010/07/19/geolocalizar-con-csharp-y-googlemaps/</link>
		<comments>http://www.ubicuos.com/2010/07/19/geolocalizar-con-csharp-y-googlemaps/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 04:32:35 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1731</guid>
		<description><![CDATA[Hola comunidad!, de regreso aportando más material para que esto siga en crecimiento. Ahora presentando un pequeño programita hecho en C# que nos sirve para geolocalizar direcciones mediante google maps. El programa lo dividí en tres clases: Geocodign.- Es la parte donde se hace el proceso de geolocalización Point.- Clase para identificar nuestras direcciones a [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/07/19/geolocalizar-con-csharp-y-googlemaps/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F19%2Fgeolocalizar-con-csharp-y-googlemaps%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F19%2Fgeolocalizar-con-csharp-y-googlemaps%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Hola comunidad!, de regreso aportando más material para que esto siga en crecimiento.</p>
<p>Ahora presentando un pequeño programita hecho en C# que nos sirve para geolocalizar direcciones mediante google maps.</p>
<p>El programa lo dividí en tres clases:</p>
<p><em>Geocodign.-</em> Es la parte donde se hace el proceso de geolocalización<br />
<em>Point.-</em> Clase para identificar nuestras direcciones a geolocalizar<br />
<em>Principal.-</em> Es la clase principal del proyecto</p>
<p><strong>La clase Geocodign</strong></p>
<p>Esta clase cuenta con tres métodos (GetXml, GetData, ChangeUrl)</p>
<p>El método <strong>GetXml</strong> nos regresa los datos en formato XML y lo guarda en un archivo, el XML es lo que nos manda el googlemaps.</p>
<p>El método <strong>GetData</strong> nos regresa un Hashtable con los datos dirección (address), longitud (longitude), latitud (latitude). Estos datos los extraemos del arhivo XML que se guarda con el GetXml.</p>
<p>El método <strong>ChangeUrl</strong> lo utilizamos para reemplazar los espaciós en blanco de la dirección a geolocalizar, por ejemplo &#8220;dirección a geolocalizar&#8221; por &#8220;dirección%20a%20geolocalizar&#8221;.</p>
<p>Usings</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Text</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.IO</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Net</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Xml</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Xml.XPath</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Forms</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections</span><span style="color: #008000;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">class</span> Geocoding
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> fileName <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;datosxml.xml&quot;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> GetXml<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> address<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">try</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #FF0000;">string</span> url <span style="color: #008000;">=</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0}&quot;</span>, address<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                url <span style="color: #008000;">=</span> <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">ChangeUrl</span><span style="color: #000000;">&#40;</span>url<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #FF0000;">string</span> lcUrl <span style="color: #008000;">=</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;http://maps.google.com/maps/geo?q={0}&amp;output=xml&amp;sensor=true_or_false&amp;key=your_api_key&quot;</span>, url<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                HttpWebRequest loHttp <span style="color: #008000;">=</span>
                <span style="color: #000000;">&#40;</span>HttpWebRequest<span style="color: #000000;">&#41;</span>WebRequest.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span>lcUrl<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                loHttp.<span style="color: #0000FF;">Timeout</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">30000</span><span style="color: #008000;">;</span>     <span style="color: #008080; font-style: italic;">// 30 secs</span>
                loHttp.<span style="color: #0000FF;">UserAgent</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Code Sample Web Client&quot;</span><span style="color: #008000;">;</span>
                HttpWebResponse loWebResponse <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>HttpWebResponse<span style="color: #000000;">&#41;</span>loHttp.<span style="color: #0000FF;">GetResponse</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                Encoding enc <span style="color: #008000;">=</span> Encoding.<span style="color: #0000FF;">GetEncoding</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">1252</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>  <span style="color: #008080; font-style: italic;">// Windows default Code Page</span>
                StreamReader loResponseStream <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StreamReader<span style="color: #000000;">&#40;</span>loWebResponse.<span style="color: #0000FF;">GetResponseStream</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>, enc<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #FF0000;">string</span> lcHtml <span style="color: #008000;">=</span> loResponseStream.<span style="color: #0000FF;">ReadToEnd</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
                StreamWriter sw <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StreamWriter<span style="color: #000000;">&#40;</span>fileName, <span style="color: #0600FF;">false</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                sw.<span style="color: #0000FF;">Write</span><span style="color: #000000;">&#40;</span>lcHtml<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                sw.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
                loWebResponse.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                loResponseStream.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            <span style="color: #0600FF;">catch</span> <span style="color: #000000;">&#40;</span>Exception ex<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Error &quot;</span> <span style="color: #008000;">+</span> ex.<span style="color: #0000FF;">Message</span>, <span style="color: #666666;">&quot;Error&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> Hashtable GetData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            Hashtable data <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Hashtable<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            XPathDocument doc <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XPathDocument<span style="color: #000000;">&#40;</span>fileName<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #FF0000;">string</span> namespaceUri <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;http://earth.google.com/kml/2.0&quot;</span><span style="color: #008000;">;</span>
            XmlNamespaceManager ns <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> XmlNamespaceManager<span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> NameTable<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            XPathNavigator nav <span style="color: #008000;">=</span> doc.<span style="color: #0000FF;">CreateNavigator</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            ns.<span style="color: #0000FF;">AddNamespace</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;bz&quot;</span>, namespaceUri<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #FF0000;">string</span> query <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;bz:kml/bz:Response/bz:Placemark/bz:Point/bz:coordinates&quot;</span><span style="color: #008000;">;</span>
            XPathNodeIterator iter <span style="color: #008000;">=</span> nav.<span style="color: #0000FF;">Select</span><span style="color: #000000;">&#40;</span>query, ns<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #FF0000;">string</span> coordinates <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>iter.<span style="color: #0000FF;">MoveNext</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">?</span> iter.<span style="color: #0000FF;">Current</span>.<span style="color: #0000FF;">Value</span> <span style="color: #008000;">:</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">;</span>
&nbsp;
            query <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;bz:kml/bz:Response/bz:Placemark/bz:address&quot;</span><span style="color: #008000;">;</span>
            iter <span style="color: #008000;">=</span> nav.<span style="color: #0000FF;">Select</span><span style="color: #000000;">&#40;</span>query, ns<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #FF0000;">string</span> address <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>iter.<span style="color: #0000FF;">MoveNext</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">?</span> iter.<span style="color: #0000FF;">Current</span>.<span style="color: #0000FF;">Value</span> <span style="color: #008000;">:</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #FF0000;">string</span> lon <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">;</span>
            <span style="color: #FF0000;">string</span> lat <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;&quot;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>coordinates.<span style="color: #0000FF;">Split</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">','</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">==</span> <span style="color: #FF0000;">3</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                lon <span style="color: #008000;">=</span> coordinates.<span style="color: #0000FF;">Split</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">','</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                lat <span style="color: #008000;">=</span> coordinates.<span style="color: #0000FF;">Split</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">','</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#91;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
                data.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;longitude&quot;</span>,lon<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                data.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;latitude&quot;</span>, lat<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                data.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;address&quot;</span>, address<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            <span style="color: #0600FF;">else</span>
            <span style="color: #000000;">&#123;</span>
                data.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;longitude&quot;</span>, lon<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                data.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;latitude&quot;</span>, lat<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                data.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;address&quot;</span>, address<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            <span style="color: #0600FF;">return</span> data<span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> ChangeUrl<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> address<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            address <span style="color: #008000;">=</span> address.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;#&quot;</span>, <span style="color: #666666;">&quot;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            address <span style="color: #008000;">=</span> address.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot; &quot;</span>, <span style="color: #666666;">&quot;%20&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">return</span> address<span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span></pre></div></div>

<p><strong>La clase Point</strong></p>
<p>Esta clase cuenta con los atributos Address, Longitude y Latitude con sus respectivos métodos get y set.</p>
<p>Usings</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Text</span><span style="color: #008000;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">class</span> Point
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> longitude<span style="color: #008000;">;</span>
        <span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> latitude<span style="color: #008000;">;</span>
        <span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> address<span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Address
        <span style="color: #000000;">&#123;</span>
            get
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">address</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            set
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">address</span> <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Longitude
        <span style="color: #000000;">&#123;</span>
            get
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">longitude</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            set
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">longitude</span> <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Latitude
        <span style="color: #000000;">&#123;</span>
            get
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">latitude</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            set
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">latitude</span> <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span></pre></div></div>

<p><strong>La clase Principal </strong></p>
<p>Para nuestro caso la clase principal es la de nuestro formulario, donde tendremos dos textbox (txtaddress y txtdata), en el txtaddress pondremos la dirección a geolocalizar y en el txtdata obtendremos nuestros datos, también tendremos un boton (btngeocoding) con el cual daremos la acción para realizar la geolocalización.</p>
<div id="attachment_1732" class="wp-caption aligncenter" style="width: 609px"><a rel="attachment wp-att-1732" href="http://www.ubicuos.com/2010/07/19/geolocalizar-con-csharp-y-googlemaps/geolocal/"><img class="size-full wp-image-1732" title="geolocal" src="http://www.ubicuos.com/wp-content/uploads/2010/07/geolocal.png" alt="" width="599" height="318" /></a><p class="wp-caption-text">Formulario principal</p></div>
<p>El código del botón es el siguiente</p>
<p>Usings</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.ComponentModel</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Data</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Drawing</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Text</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Windows.Forms</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Xml</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Xml.XPath</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.IO</span><span style="color: #008000;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> btngeocoding_Click<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender, EventArgs e<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #FF0000;">string</span> address <span style="color: #008000;">=</span> <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">txtaddress</span>.<span style="color: #0000FF;">Text</span><span style="color: #008000;">;</span>
            Geocoding geocodign <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Geocoding<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            Point point <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Point<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            geocodign.<span style="color: #0000FF;">GetXml</span><span style="color: #000000;">&#40;</span>address<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            Hashtable data <span style="color: #008000;">=</span> geocodign.<span style="color: #0000FF;">GetData</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            point.<span style="color: #0000FF;">Address</span> <span style="color: #008000;">=</span> data<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;address&quot;</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            point.<span style="color: #0000FF;">Longitude</span> <span style="color: #008000;">=</span> data<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;longitude&quot;</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            point.<span style="color: #0000FF;">Latitude</span> <span style="color: #008000;">=</span> data<span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;latitude&quot;</span><span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">txtdata</span>.<span style="color: #0000FF;">Clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">txtdata</span>.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0}Dirección= {1} <span style="color: #008080; font-weight: bold;">\r</span><span style="color: #008080; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">txtdata</span>.<span style="color: #0000FF;">Text</span>, point.<span style="color: #0000FF;">Address</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">txtdata</span>.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0}Longitud= {1} <span style="color: #008080; font-weight: bold;">\r</span><span style="color: #008080; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">txtdata</span>.<span style="color: #0000FF;">Text</span>, point.<span style="color: #0000FF;">Longitude</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">txtdata</span>.<span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;{0}Latitud= {1} <span style="color: #008080; font-weight: bold;">\r</span><span style="color: #008080; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">txtdata</span>.<span style="color: #0000FF;">Text</span>, point.<span style="color: #0000FF;">Latitude</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span></pre></div></div>

<p>Ejemplo:</p>
<div id="attachment_1733" class="wp-caption aligncenter" style="width: 609px"><a rel="attachment wp-att-1733" href="http://www.ubicuos.com/2010/07/19/geolocalizar-con-csharp-y-googlemaps/geolocalexample/"><img class="size-full wp-image-1733" title="geolocalexample" src="http://www.ubicuos.com/wp-content/uploads/2010/07/geolocalexample.png" alt="" width="599" height="318" /></a><p class="wp-caption-text">Ejemplo</p></div>
<p>Espero sea de grán ayuda!  Dudas ó sugerencias, no duden en hacerlas llegar.  Estamos para servir.. Saludos!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/07/19/geolocalizar-con-csharp-y-googlemaps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Replicación de una Base De Datos usando MySql en Windows y Linux</title>
		<link>http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/</link>
		<comments>http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 03:44:15 +0000</pubDate>
		<dc:creator>Lisandro Vergara Diaz</dc:creator>
				<category><![CDATA[Empresas]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Ubicuos]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1632</guid>
		<description><![CDATA[Para la replicación de base de datos se necesitan un Maestro y uno o varios esclavos según sea el caso. Para esta práctica se necesita: Mínimo 2 computadoras conectadas en red Tener instalado el gestor de bases de datos MySql Agregar al path la carpeta Bin de MySql si este no fue marcado en la [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F16%2Freplicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F16%2Freplicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Para la replicación de base de datos se necesitan un Maestro y uno o varios esclavos según sea el caso.</p>
<h2>Para esta práctica se necesita:</h2>
<ul>
<li>Mínimo 2 computadoras conectadas en red</li>
<li>Tener instalado el gestor de bases de datos MySql</li>
<li>Agregar al path la carpeta Bin de MySql si este no fue marcado en la instalación</li>
<li>Tener permisos de ROOT</li>
</ul>
<h2>Empezamos Configurando el Maestro:</h2>
<ol>
<li>
<h3>Buscar y abrir el archivo My.cnf (My.ini en sistemas Windows)</h3>
</li>
<p>En Windows se encuentra en: c:\Archivos de Programa\MySQL\MySQL Server 5.1\<br />
En Sistemas Linux se encuentra: /etc/my.cnf</p>
<li>
<h3>Buscar y comentar las siguientes lineas si es que se encuentran:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;"> #skip-networking
#bind-address = 127.0.0.1</pre></div></div>

<li>
<h3>Agregar despues de la linea [mysqld] lo siguiente:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">log-bin =mysql-bin.log
binlog-do-db=nombre_base_de_datos
server-id=1</pre></div></div>

<h3>Nota:</h3>
<p>El server-id en el servidor siempre será 1, y los esclavos serán 2, 3… n según sea el caso en binlog-do-db se pone el nombre de la base de datos que replicara despues de signo = .</p>
<p style="text-align: center"><a rel="attachment wp-att-1633" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/1-7/"><img class="size-medium wp-image-1633 aligncenter" src="http://www.ubicuos.com/wp-content/uploads/2010/07/1-300x104.png" alt="" width="350" height="130" /></a></p>
<li>
<h3>Entramos a los servicios en Windows y reiniciamos el servicio de MySql (omitir este paso en sistemas Linux)</h3>
</li>
<li>
<h3>Entramos en MySql escribiendo en la linea de comandos lo siguiente:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">mysql <span style="color: #CC0099;">-</span>u root <span style="color: #CC0099;">-</span>p</pre></div></div>

<li>
<h3>Ahora en el shell de mysql escribir:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">GRANT</span> REPLICATION SLAVE <span style="color: #990099; font-weight: bold;">ON</span> <span style="color: #CC0099;">*</span>.<span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">TO</span> <span style="color: #008000;">'slave1'</span>@<span style="color: #008000;">'<span style="color: #008080; font-weight: bold;">%</span>'</span> IDENTIFIED BY
<span style="color: #008000;">'password'</span><span style="color: #000033;">;</span>
FLUSH <span style="color: #990099; font-weight: bold;">PRIVILEGES</span><span style="color: #000033;">;</span></pre></div></div>

<h3>Nota:</h3>
<p>En password pondra la contraseña que quiera ponerle al master en slave1 se está agregando el primer esclavo el usuario será en este caso Slave1, si se agrega un segundo esclavo sería Slave2 y así sucesivamente.</p>
<p><a rel="attachment wp-att-1634" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/4-4/"><img class="aligncenter size-full wp-image-1634" src="http://www.ubicuos.com/wp-content/uploads/2010/07/4.png" alt="" width="637" height="205" /></a></p>
<li>
<h3>Una vez esto seleccione la base de datos a replicar y realice lo siguiente:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">USE</span> nombre_base_datos<span style="color: #000033;">;</span>
FLUSH <span style="color: #990099; font-weight: bold;">TABLES</span> <span style="color: #990099; font-weight: bold;">WITH</span> <span style="color: #990099; font-weight: bold;">READ</span> <span style="color: #990099; font-weight: bold;">LOCK</span><span style="color: #000033;">;</span>
<span style="color: #990099; font-weight: bold;">SHOW</span> MASTER <span style="color: #990099; font-weight: bold;">STATUS</span><span style="color: #000033;">;</span></pre></div></div>

<p>Después de esto el gestor mostrará lo siguiente:</p>
<p><a rel="attachment wp-att-1635" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/5-6/"><img class="aligncenter size-full wp-image-1635" src="http://www.ubicuos.com/wp-content/uploads/2010/07/5.png" alt="" width="537" height="180" /></a></p>
<li>
<h3>Salir de MySql utilizando el comando quit o exit</h3>
</li>
<li>
<h3>Ahora haremos un Backup de la Base de Datos que se encuentra en el Maestro para tener el mismo esquema y datos en los esclavos, para hacer eso escribimos en la terminal o en el cmd:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">mysqldump -u root -p --opt nombre_base_de_datos &amp;gt; nombre_base_de_datos.sql</pre></div></div>

<li>
<h3>Finalmente desbloqueamos las tablas de la base de Datos</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql <span style="color: #66cc66;">-</span>u root <span style="color: #66cc66;">-</span>p
<span style="color: #993333; font-weight: bold;">UNLOCK</span> <span style="color: #993333; font-weight: bold;">TABLES</span>;
quit;</pre></div></div>

<p><a rel="attachment wp-att-1636" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/7-6/"><img class="aligncenter size-full wp-image-1636" src="http://www.ubicuos.com/wp-content/uploads/2010/07/7.png" alt="" width="638" height="181" /></a></ol>
<h2>Ahora vamos a configurar  el Esclavo</h2>
<ol>
<li>
<h3>Como primer paso hay que crear la base de datos que queremos replicar:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">mysql <span style="color: #CC0099;">-</span>u root <span style="color: #CC0099;">-</span>p
<span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">DATABASE</span> base_de_datos<span style="color: #000033;">;</span>
quit<span style="color: #000033;">;</span></pre></div></div>

<h3>Nota:</h3>
<p>Antes de continuar es necesario que donde hicimos el respaldo o backup de la base de datos en el master copiemos el archivo .sql que se genero y lo peguemos en la maquina que funcionara como esclavo en la unidad c:\.</p>
<li>
<h3>Una vez que salimos del gestor escribimos el siguiente comando para copiar la base de datos del archivo que generamos:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql <span style="color: #66cc66;">-</span>u root <span style="color: #66cc66;">-</span>p  nombre_base_de_datos &amp;lt; c:\nombre_base_de_datos<span style="color: #66cc66;">.</span>sql</pre></div></div>

<p><a rel="attachment wp-att-1637" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/2-5/"><img class="aligncenter size-full wp-image-1637" src="http://www.ubicuos.com/wp-content/uploads/2010/07/2.png" alt="" width="638" height="229" /></a></p>
<li>
<h3>Buscamos el archivo My.cnf (en caso de windows My.ini) y despues del [mysqld]<br />
agregamos lo siguiente:</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">server-id=2
master-host=Dirección ip del maestro
master-user=slave1
master-password=password
master-connect-retry=60
replicate-do-db=nombre_base_de_datos</pre></div></div>

<p><a rel="attachment wp-att-1638" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/3-5/"><img class="aligncenter size-full wp-image-1638" src="http://www.ubicuos.com/wp-content/uploads/2010/07/3.png" alt="" width="567" height="165" /></a></p>
<li>
<h3>Reiniciamos el servicio de MySql (omitir este paso en sistemas Linux)</h3>
</li>
<li>
<h3>Finalmente entramos a MySql y detenemos el esclavo</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql <span style="color: #66cc66;">-</span>u root <span style="color: #66cc66;">-</span>p
SLAVE STOP;</pre></div></div>

<li>
<h3>Una vez que se detuvo el esclavo escribimos lo siguiente con el fin de actualizar la tabla que utiliza el esclavo para replicar</h3>
</li>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CHANGE</span> MASTER <span style="color: #993333; font-weight: bold;">TO</span> MASTER_HOST<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'ip_del_master'</span><span style="color: #66cc66;">,</span>
MASTER_USER<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'slave1'</span><span style="color: #66cc66;">,</span> MASTER_PASSWORD<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'clave_del_master'</span><span style="color: #66cc66;">,</span>
MASTER_LOG_FILE<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'mysql-bin.006'</span><span style="color: #66cc66;">,</span> MASTER_LOG_POS<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">183</span>;</pre></div></div>

<h3>Nota:</h3>
<p>En MASTER_LOG_POS va la posicion que nos marco cuando ejecutamos SHOW MASTER STATUS  en el paso 7 de la configuracion del master.</p>
<li>
<h3>Finalmente escribimos START SLAVE</h3>
</li>
</ol>
<p><a rel="attachment wp-att-1639" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/6-6/"><img class="aligncenter size-full wp-image-1639" src="http://www.ubicuos.com/wp-content/uploads/2010/07/6.png" alt="" width="639" height="265" /></a></p>
<p>Si todo salio bien no queda mas que probar<br />
En el Master vamos insertar un dato en la tabla de nuestra base de datos</p>
<p><a rel="attachment wp-att-1640" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/8-5/"><img class="aligncenter size-full wp-image-1640" src="http://www.ubicuos.com/wp-content/uploads/2010/07/8.png" alt="" width="535" height="109" /></a></p>
<p>En el esclavo hacemos una consulta para verificar que todo salió bien en caso contrario hay que verificar los pasos</p>
<p><a rel="attachment wp-att-1641" href="http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/10-4/"><img class="aligncenter size-full wp-image-1641" src="http://www.ubicuos.com/wp-content/uploads/2010/07/10.png" alt="" width="636" height="167" /></a></p>
<p>
Como vemos en la imagen anterior al hacer la consulta tenemos nuestro nuevo dato en la tabla<br />
<b>Con esto damos por concluido este tutorial cualquier duda o sugerencia estamos para servirles<b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/07/16/replicacion-de-una-base-de-datos-usando-mysql-en-windows-y-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crear un Árbol en Processing</title>
		<link>http://www.ubicuos.com/2010/07/15/crear-un-arbol-en-processing/</link>
		<comments>http://www.ubicuos.com/2010/07/15/crear-un-arbol-en-processing/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 01:46:16 +0000</pubDate>
		<dc:creator>Luis Alfredo</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[applet]]></category>
		<category><![CDATA[árbol]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1605</guid>
		<description><![CDATA[En el Presente tutorial mostraremos como crear un árbol en Processing, sin mas que agregar comencemos: float ramas; void setup&#40;&#41; &#123; smooth&#40;&#41;; size&#40;700,500&#41;; background&#40;255&#41;; // Vamos a escoger un ángulo de 0 a 90 grados y convertir // Nuestra variable ramas a Radianes ramas= radians&#40;30&#41;; // Inicia el árbol desde la parte inferior de la [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/07/15/crear-un-arbol-en-processing/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F15%2Fcrear-un-arbol-en-processing%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F15%2Fcrear-un-arbol-en-processing%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p><a rel="attachment wp-att-1606" href="http://www.ubicuos.com/2010/07/15/crear-un-arbol-en-processing/processing/"><img class="aligncenter size-full wp-image-1606" src="http://www.ubicuos.com/wp-content/uploads/2010/07/processing.gif" alt="" width="500" height="80" /></a></p>
<p>En el Presente tutorial mostraremos como crear un árbol en <strong>Processing</strong>, sin mas que agregar comencemos:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">float</span> ramas<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  smooth<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  size<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">700</span>,<span style="color: #cc66cc;">500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  background<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Vamos a escoger un ángulo de 0 a 90 grados y convertir</span>
  <span style="color: #666666; font-style: italic;">// Nuestra variable ramas a Radianes</span>
  ramas<span style="color: #339933;">=</span> radians<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Inicia el árbol desde la parte inferior de la pantalla</span>
  translate<span style="color: #009900;">&#40;</span>width <span style="color: #339933;">/</span><span style="color: #cc66cc;">4</span>,height<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  strokeWeight<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">40</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Dibuja una línea de 50 píxeles</span>
  line<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">160</span>,<span style="color: #cc66cc;">160</span>,<span style="color: #cc66cc;">160</span>,<span style="color: #339933;">-</span><span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  strokeWeight<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Dibuja una línea de 100 píxeles</span>
  line<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">160</span>,<span style="color: #cc66cc;">160</span>,<span style="color: #cc66cc;">160</span>,<span style="color: #339933;">-</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Mueve la funcion arbol al final de la linea</span>
  translate<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">160</span>,<span style="color: #339933;">-</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// Inicia la funcion arbol</span>
  arbol<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">150</span>,<span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">void</span> arbol<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span> h,<span style="color: #000066; font-weight: bold;">float</span> s<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// Cada Rama creada sera mas delgada que la anterior en cuanto a largo y grueso</span>
  h <span style="color: #339933;">*=</span><span style="color: #cc66cc;">0.7</span><span style="color: #339933;">;</span>
  s <span style="color: #339933;">*=</span><span style="color: #cc66cc;">0.6</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Todas las funciones deben tener una condición de salida!!</span>
  <span style="color: #666666; font-style: italic;">// Aquí, la nuestra es cuando la longitud de la rama es de 1 píxeles o menos</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>h <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
&nbsp;
    pushMatrix<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Guardar el estado actual de transformación (es decir, donde estamos ahora)</span>
    strokeWeight<span style="color: #009900;">&#40;</span>s<span style="color: #339933;">*</span><span style="color: #cc66cc;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Se adelgaza la linea a la mitad</span>
    rotate<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>ramas<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Rotar por ramas</span>
    line<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #339933;">-</span>h<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Dibuja la rama</span>
    translate<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #339933;">-</span>h<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Ir al final de la rama</span>
    arbol<span style="color: #009900;">&#40;</span>h,s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Ok, ahora se llaman arbol para dibujar dos nuevas ramas!</span>
    popMatrix<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Cada vez que volvamos aquí, se restaura el estado anterior de la matriz</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Repetir lo mismo, sólo se ramificara hacia la izquierda esta vez y eh cambiado algunos valores para que el lado izquierdo no sea igual al derecho!</span>
    pushMatrix<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    strokeWeight<span style="color: #009900;">&#40;</span>s<span style="color: #339933;">*</span><span style="color: #cc66cc;">0.6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    rotate<span style="color: #009900;">&#40;</span>ramas<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    line<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #339933;">-</span>h<span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    translate<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #339933;">-</span>h<span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    arbol<span style="color: #009900;">&#40;</span>h,s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    popMatrix<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>El resultado seria el siguiente:</p>
<p><a rel="attachment wp-att-1621" href="http://www.ubicuos.com/2010/07/15/crear-un-arbol-en-processing/captura-de-pantalla-2010-07-15-a-las-20-32-06-3/"><img class="aligncenter size-full wp-image-1621" src="http://www.ubicuos.com/wp-content/uploads/2010/07/Captura-de-pantalla-2010-07-15-a-las-20.32.062.png" alt="" width="780" height="602" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/07/15/crear-un-arbol-en-processing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalacion y Configuracion de Gnokii con Telefono Nokia 5610 y cable CA-101</title>
		<link>http://www.ubicuos.com/2010/07/07/instalacion-y-configuracion-de-gnokii-con-telefono-nokia-5610-y-cable-ca-101/</link>
		<comments>http://www.ubicuos.com/2010/07/07/instalacion-y-configuracion-de-gnokii-con-telefono-nokia-5610-y-cable-ca-101/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 15:35:30 +0000</pubDate>
		<dc:creator>Lisandro Vergara Diaz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Ubicuos]]></category>
		<category><![CDATA[gnokii]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nokia]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1497</guid>
		<description><![CDATA[Para instalar Gnokii en nuestro servidor usamos el administrador de paquetes apt con la siguiente linea: apt-get install gnokii Si estamos sobre Ubuntu recuerden anteponer la linea sudo Una vez instalado Gnokii tenemos que configurarlo, el primer paso es  entrar a la carpeta etc  con la siguiente línea de comando: cd /etc Cuando estemos dentro [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/07/07/instalacion-y-configuracion-de-gnokii-con-telefono-nokia-5610-y-cable-ca-101/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F07%2Finstalacion-y-configuracion-de-gnokii-con-telefono-nokia-5610-y-cable-ca-101%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F07%2Finstalacion-y-configuracion-de-gnokii-con-telefono-nokia-5610-y-cable-ca-101%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Para instalar Gnokii en nuestro servidor usamos el administrador de paquetes apt con la siguiente linea: apt-get install gnokii Si estamos sobre Ubuntu recuerden anteponer la linea sudo</p>
<p>Una vez instalado Gnokii tenemos que configurarlo, el primer paso es  entrar a la carpeta etc  con la siguiente línea de comando: cd /etc<br />
Cuando estemos dentro de etc el siguiente paso será editar el archivo gnokiirc para esto utilizamos el siguiente comando: nano gnokiirc</p>
<p><a href="http://www.ubicuos.com/wp-content/uploads/2010/06/Pantallazo1.png"><img class="aligncenter size-full wp-image-1498" src="http://www.ubicuos.com/wp-content/uploads/2010/06/Pantallazo1.png" alt="" width="329" height="145" /></a></p>
<p>Una vez que nos encontremos en el editor en la parte [global]  agregaremos las líneas correspondientes al tipo de cable que usa nuestro teléfono  en este caso quedara de la siguiente manera  (recuerda que esta configuración es para un Nokia 5610 que utiliza un cable tipo CA-101 para  ver las configuraciones de otro tipo de cables consulta <a href="http://wiki.gnokii.org/index.php/Cables">http://wiki.gnokii.org/index.php/Cables)</a></p>
<p>[global]<br />
model = AT<br />
port = /dev/ttyACM0<br />
connection = serial</p>
<p><a href="http://www.ubicuos.com/wp-content/uploads/2010/06/Pantallazo3.png"><img class="aligncenter size-full wp-image-1499" src="http://www.ubicuos.com/wp-content/uploads/2010/06/Pantallazo3.png" alt="" width="666" height="492" /></a></p>
<p>Una vez que hayamos editado y guardado el archivo gnokiirc conectamos nuestro teléfono al equipo y elegimos la opción PC Suite y ejecutamos el siguiente comando: gnokii –identify</p>
<p>Una vez que hayamos editado y guardado el archivo gnokiirc conectamos nuestro teléfono al equipo y elegimos la opción PC Suite y ejecutamos el siguiente comando: gnokii –identify<br />
Nos tendrá que mostrar  todos los datos de nuestro teléfono</p>
<p><a href="http://www.ubicuos.com/wp-content/uploads/2010/06/Pantallazo4.png"><img class="aligncenter size-full wp-image-1500" src="http://www.ubicuos.com/wp-content/uploads/2010/06/Pantallazo4.png" alt="" width="355" height="293" /></a></p>
<p>Nota: Por razones de seguridad edite la parte del IMEI</p>
<p>Ahora está configurado y listo para enviar mensajes</p>
<p>Para probar la funcionalidad del envió de mensajes la sentencia a ejecutar es la siguiente:</p>
<p>echo &#8220;Hola mundo&#8221; | gnokii –sendsms numerocelular</p>
<p><a href="http://www.ubicuos.com/wp-content/uploads/2010/06/Pantallazo5.png"><img class="aligncenter size-full wp-image-1501" src="http://www.ubicuos.com/wp-content/uploads/2010/06/Pantallazo5.png" alt="" width="787" height="286" /></a></p>
<p>Nota: por razones de seguridad he editado la pare correspondiente al numero telefónico</p>
<p>Una vez que se halla enviando el mensaje correctamente aparecerá un mensaje de que todo ha salido bien en caso contrario nos mostrara el mensaje failed</p>
<p>con esto damos por concluido este tutorial , cualquier duda o sugerencia estamos para ayudarles</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/07/07/instalacion-y-configuracion-de-gnokii-con-telefono-nokia-5610-y-cable-ca-101/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalación de Processing en Mac OS X</title>
		<link>http://www.ubicuos.com/2010/07/05/instalacion-de-processing-en-mac-os-x/</link>
		<comments>http://www.ubicuos.com/2010/07/05/instalacion-de-processing-en-mac-os-x/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 04:50:01 +0000</pubDate>
		<dc:creator>Luis Alfredo</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[árbol]]></category>
		<category><![CDATA[evolutivo]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[recursividad]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1541</guid>
		<description><![CDATA[La instalación de Processing es muy sencilla si se cuanta con los materiales necesarios, solo es cuestión de seguir unos simples pasos: Paso 1: Descargar Processing Descargamos el Processing de la pagina oficial y nos aseguramos que sea la versión para Mac OS X http://www.processing.org/download/, y se guarda donde sea mas conveniente. Paso 2: Ejecutar [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/07/05/instalacion-de-processing-en-mac-os-x/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F05%2Finstalacion-de-processing-en-mac-os-x%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F07%2F05%2Finstalacion-de-processing-en-mac-os-x%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p><a rel="attachment wp-att-1547" href="http://www.ubicuos.com/2010/07/05/instalacion-de-processing-en-mac-os-x/processing_cover/"><img class="aligncenter size-full wp-image-1547" src="http://www.ubicuos.com/wp-content/uploads/2010/07/processing_cover.gif" alt="" width="500" height="80" /></a></p>
<p>La instalación de <strong>Processing</strong> es muy sencilla si se cuanta con los materiales necesarios, solo es cuestión de seguir unos simples pasos:<br />
<strong></strong></p>
<h3>Paso 1: Descargar Processing</h3>
<p>Descargamos el Processing de la pagina oficial y nos aseguramos que sea la versión para <strong>Mac OS X </strong><a href="http://www.processing.org/download/">http://www.processing.org/download/</a>, y se guarda donde sea mas conveniente.</p>
<h3>Paso 2: Ejecutar el Archivo Descargado</h3>
<p>Cuando la descarga se complete ejecutamos el archivo .dmg y aparecerá una ventana como la siguiente.<br />
<a rel="attachment wp-att-1545" href="http://www.ubicuos.com/2010/07/05/instalacion-de-processing-en-mac-os-x/captura-de-pantalla-2010-07-05-a-las-21-40-48-2/"><img class="aligncenter size-medium wp-image-1545" src="http://www.ubicuos.com/wp-content/uploads/2010/07/Captura-de-pantalla-2010-07-05-a-las-21.40.481-300x221.png" alt="" width="300" height="221" /></a></p>
<h3>Paso 3: Instalación en Mac OS X</h3>
<p>Arrastramos el icono de <strong>Processing</strong> encima de la carpeta Aplicaciones, cuando esta se habrá soltamos el icono dentro y esperamos que termine de copiarse.<br />
<a rel="attachment wp-att-1546" href="http://www.ubicuos.com/2010/07/05/instalacion-de-processing-en-mac-os-x/xxx/"><img class="aligncenter size-medium wp-image-1546" src="http://www.ubicuos.com/wp-content/uploads/2010/07/xxx-300x194.png" alt="" width="300" height="194" /></a></p>
<h3>Paso 4: Final de la Instalación</h3>
<p>Una vez hecho lo anterior desmontamos el archivo .dmg, con clic derecho expulsar,  luego nos dirigimos a  nuestra carpeta de aplicaciones y ejecutamos el <strong>Processing</strong>.</p>
<h3>Nota:</h3>
<p>Lo que se utilizo para este tutoríal fue el <strong>Processing</strong> 1.0 y una <strong>MacBook Pro</strong> con <strong>Mac Os X</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/07/05/instalacion-de-processing-en-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Paisaje con árboles en Canvas HTML5</title>
		<link>http://www.ubicuos.com/2010/06/26/paisaje-con-rboles-en-canvas-html5/</link>
		<comments>http://www.ubicuos.com/2010/06/26/paisaje-con-rboles-en-canvas-html5/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 23:08:14 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Cómputo Evolutivo]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[animación]]></category>
		<category><![CDATA[designcamp]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/2010/06/26/paisaje-con-rboles-en-canvas-html5/</guid>
		<description><![CDATA[Como recordarán durante el #designcamp realizado en Querétaro, el equipo de cómputo me hizo una mala pasada, y les quedé a deber algún material para presentar, esta es un pequeño código (sin optimizar y recomiendo su visualización desde un navegador como Chrome o Safari, Firefox truena :( ), sobre la generación de paisajes de manera [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/06/26/paisaje-con-rboles-en-canvas-html5/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F06%2F26%2Fpaisaje-con-rboles-en-canvas-html5%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F06%2F26%2Fpaisaje-con-rboles-en-canvas-html5%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>Como recordarán durante el #designcamp realizado en Querétaro, el equipo de cómputo me hizo una mala pasada, y les quedé a deber algún material para presentar, esta es un pequeño código (sin optimizar y recomiendo su visualización desde un navegador como Chrome o Safari, Firefox truena :( ), sobre la generación de paisajes de manera automática y utilizando el elemento canvas del nuevo HTML5.</p>
<p>Espero que les guste y los comentarios son bienvenidos</p>
<p><a href="http://www.ubicuos.com/designcamp">http://www.ubicuos.com/designcamp</a></p>
<p>Nota: Espero realizar una versión con webworkers, para leer más sobre los webworkers <a title="http://ejohn.org/blog/web-workers/" href="http://ejohn.org/blog/web-workers/">http://ejohn.org/blog/web-workers/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/06/26/paisaje-con-rboles-en-canvas-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo instalar MySQL Server 6.0 Alpha en Windows XP</title>
		<link>http://www.ubicuos.com/2010/06/06/como-instalar-mysql-server-6-0-alpha-en-windows-xp/</link>
		<comments>http://www.ubicuos.com/2010/06/06/como-instalar-mysql-server-6-0-alpha-en-windows-xp/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 20:52:11 +0000</pubDate>
		<dc:creator>henryubuntu</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1353</guid>
		<description><![CDATA[Explica como instalar mysql 4.0.13]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/06/06/como-instalar-mysql-server-6-0-alpha-en-windows-xp/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F06%2F06%2Fcomo-instalar-mysql-server-6-0-alpha-en-windows-xp%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F06%2F06%2Fcomo-instalar-mysql-server-6-0-alpha-en-windows-xp%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<h1>Instalación MySQL Server 6.0</h1>
<p><span>Esta nueva versión incluye muchas mejoras respecto a las anteriores, por ello  hemos decidido instalarla y probarla. También utilizamos <strong>MySQL  Administrator</strong> y <strong>MySQL Query Browser</strong> para crear nuevos  esquemas, catálogos y nuevas tablas.</span></p>
<p><span>En primer lugar descargaremos el programa de instalación de  MySQL Server 6.0 Alpha, disponible gratuitamente en la URL:</span></p>
<p><span><em>http://dev.mysql.com/downloads/mysql/6.0.html#win32</em></span></p>
<p><span>Ejecutaremos el fichero  <em>mysql-essential-6.0.0-alpha-win32.msi</em>, si hemos descargado el fichero  <em>mysql-6.0.4-alpha-win32.zip</em>, lo descomprimiremos y ejecutaremos el  fichero <em>Setup.exe</em>. Puede que aparezca una ventana de Advertencia de  seguridad de Windows, de ser así pulsaremos en el botón &#8220;Ejecutar&#8221;</span></p>
<p><span id="more-1353"></span></p>
<p><span>Se iniciará el asistente de instalación de MySQL Server 6.0,  pulsaremos &#8220;Next&#8221; para iniciar el asistente de instalación.</span></p>
<p><span>Seleccionaremos el tipo de instalación en la ventana &#8220;Setup Type&#8221;, en nuestro  caso marcaremos la opción &#8220;Custom&#8221; (choose which program features you want  installed and where they will be installed. Recommended for advanced users),  mediante esta opción podremos seleccionar los componentes que queramos instalar</span></p>
<p><span>En nuestro caso marcaremos todo salvo &#8220;C Include Files / Lib Files&#8221;, esta opción  instala las librerias necesarias para el acceso a MySQL mediante C++</span></p>
<p><span>Antes de iniciarse la instalación nos mostrará una ventana   con el resumen de las opciones seleccionadas &#8220;Ready to Install the Program&#8221;.  Pulsaremos &#8220;Install&#8221; para iniciar el proceso de instalación</span></p>
<p><span>Tras la instalación nos mostrará una ventana de &#8220;publicidad&#8221; de algunos de las  aplicaciones de MySQL Enterprise, como MySQL Enterprise Server, MySQL Monitoring  and Advisory Service y MySQL Production Support, pulsaremos &#8220;Next&#8221; para  continuar</span></p>
<p><span>Otra ventana de publicidad de MySQL Monitoring and Advisory Service, pulsaremos  &#8220;Next&#8221; para continuar</span></p>
<p><span>Tras la instalación aparecerá el asistente de configuración de MySQL Server, la  configuración podremos realizarla en otro momento, en nuestro caso  aprovecharemos la instalación para configurar MySQL Server, así pues marcaremos  la opción &#8220;Configure the MySQL Server now&#8221; y pulsaremos &#8220;Finish&#8221;</span></p>
<p><span>Se iniciará el asistente de configuración de la instancia de MySQL Server  (&#8220;MySQL Server Instante Configuration Wizard 1.0.8&#8243;). Pulsaremos &#8220;Next&#8221; para  continuar</span></p>
<p><span>Podremos selecionar la opción &#8220;Standard Configuration&#8221; que nos pedirá menos  parámetros de configuración, aunque es menos configurable. En nuestro caso  marcaremos &#8220;Detailed Configuration&#8221; (&#8220;Choose this configuration type to create  the optimal server setup for this machine&#8221;). Esta opción nos pedirá más  parámetros de configuración, por lo que podremos ajustar más la configuración de  MySQL Server 6.0 a nuestras necesidades</span></p>
<p><span>En primer lugar indicaremos el tipo de servidor de MySQL  Server, según para el uso que queramos darle:</span></p>
<ul><span></p>
<li>
<div><strong>Developer Machine</strong>: este tipo de uso del  servidor de MySQL Server se utiliza como testeo y desarrollo de aplicaciones que  utilicen MySQL Server. Se creará la instancia de MySQL Server consumiendo los  mínimos requisitos posibles. Esto es útil sólo para servidores de bases de datos  de pruebas, no es recomendable para servidores de MySQL Server en producción con  conexión de varios usuarios a la vez.</div>
</li>
<li>
<div><strong>Server Machine</strong>: este modo de uso de MySQL  Server se usa en situaciones de necesidades &#8220;medias&#8221;, sirve para pruebas y para  el uso de varios usuarios conectados a la vez (no más de 10, aunque esto depende  del volumen de transacciones que se necesiten). Con este modo SQL Server  necesitará un uso de memoria medio, más alto que el anterior tipo y más bajo que  el siguiente.</div>
</li>
<li>
<div><strong>Dedicated MySQL Server Machine</strong>: este tipo de  instalación sólo es recomendable cuando el servidor donde se instala va a ser un  servidor dedicado, es decir, cuando el equipo sólo servirá como servidor de  bases de datos MySQL Server. Así pues, en este caso, MySQL Server utilizará toda  la memoria disponible.</div>
</li>
<p></span></ul>
<p><span>En nuestro caso, puesto que MySQL Server sólo lo utilizaremos  para pruebas y desarrollo de aplicaciones, marcaremos la opción &#8220;Developer  Machine&#8221; y pulsaremos &#8220;Next&#8221; para continuar</span></p>
<p><span>A continuación deberemos indicar el tipo de transacciones que  se ejecutarán en el servidor de SQL Server:</span></p>
<ul><span></p>
<li><strong>Multifuncional Database</strong>: este tipo de configuración de la  instancia de SQL Server se usa para bases de datos de propósito general, sirve  para pruebas y para base de datos en producción. Se podrán utilizar tanto el  motor InnoDB (admite gestión de transacciónes, más lento que MyISAM) como el  motor MyISAM (no admite gestión de transacciones, más rápido que InnoDB. Esta  opción suele ser la más habitual, pues servirá para aplicaciónes que hagan  inserciones, modificaciones y consultas de datos.</li>
<li><strong>Transactional Database Only</strong>: este tipo de instancia de SQL  Server sólo sirve y está optimizada para realizar transacciones. Sólo admite  InnoDB, no admite MyISAM. Es recomendable sólo para aplicaciones con varios  usuarios concurrentes que puedan realizar eliminaciones, modificaciones e  inserciones de datos, pues habrá control de transacciones y de bloqueos. En  cambio no es recomendable para, por ejemplo, gestores de contenidos web como  PHP-Nuke ó PostNuke, pues éstos a penas permiten modificaciones e inserciones,  sólo para usuarios administradores, en cambio sí necesitan bastante velocudad en  la consulta.</li>
<li><strong>Non-Transactional Database Only</strong>: este tipo sólo admite el  motor MyISAM, por lo que sólo será útil para aplicaciones que no requieran de  transacciones (monitorización, logeo, aplicaciones web de consulta, análisis de  programas, etc).</li>
<p></span></ul>
<p><span>Lo más sencillo, para poder disponer de los dos motores: InnoDB  (transaccional) y MyISAM (no transaccional), marcaremos &#8220;Multifuncional  Database&#8221;, de esta forma, al crear las tablas en MySQL Server, podremos indicar  el tipo de motor (engine) a utilizar</span></p>
<p><span>A continuación indicaremos la ruta donde se ubicarán los  ficheros de la base e datos (datafiles), si es una base de datos en producción  que tendrá muchos usuarios conectados concurrentemente y con muchas  transacciones (modificaciones, inserciones, consultas), es recomendable que los  ficheros de datos se encuentren en un disco duro diferente del sistema operativo  y lo más rápido posible.</span></p>
<p><span>En nuestro caso, al tratarse de una base de datos de pruebas,  dejaremos el directorio de instalación por defecto. Pulsaremos &#8220;Next&#8221; para  continuar</span></p>
<p><span>A continuación indicaremos la configuración para el número de  usuarios concurrentes que estimaremos que atacarán nuestra base de datos MySQL  Server:</span></p>
<ul><span></p>
<li>Decision Support (DSS)/OLAP: esta opción es recomendable para unos 20  usuarios concurrentes (conectados a la base de datos a la vez).</li>
<li>Online Transaction Processing (OLTP): para unos 500 usuarios concurrentes.</li>
<li>Manual Setting: en esta opción podremos indicar al asistente de  configuración que configure MySQL Server para el número de usuarios que  indiquemos.</li>
<p></span></ul>
<p><span>En nuestro caso, puesto que sólo atacarán la base de datos de  MySQL Server unos 3 usuarios marcaremos la opción &#8220;Manual Setting&#8221; e  introduciremos en &#8220;Concurrent connections&#8221;: 3, pulsaremos &#8220;Next&#8221; para continuar</span></p>
<p><span>A continuación indicaremos al asistente si queremos permitir conexiones externas  (de otros equipos de la red) a nuestro servidor MySQL Server, para ello  marcaremos &#8220;Enable TCP/IP Networking&#8221;, también deberemos indicar el puerto que  utilizará MySQL Server, en &#8220;Port Number&#8221;, por defecto es el 3306. Aunque como se  puede observar, en nuestro caso lo hemos cambiado al 3307, pues el 3306 es usado  por MySQL Server 4.1. Pulsaremos &#8220;Next&#8221; para continuar</span></p>
<p><span>Si tenemos algún antivirus con cortafuegos o algún cortafuegos (firewall),  deberemos abrir el puerto 3306, el propio asistente de instalación realiza un  test para comprobar si el puerto indicado está abierto, por lo que si tenemos  algún cortafuegos, lo normal es que muestre una ventana de aviso. En nuestro  caso, puesto que tenemos ESET NOD32 Smat Security, nos muestra una ventana de  tráfico saliente, marcaremos &#8220;Recordar acción (crear regla)&#8221; y pulsaremos  &#8220;Permitir&#8221;. Si el antivirus o cortafuegos no aparece no olvidéis abrir el puerto  para permitir conexiones de otros equipos de la LAN o de Internet a nuestro  servidor MySQL Server</span></p>
<p><span>Indicaremos el juego de caracteres que se utilizará por defecto en MySQL Server,  en nuestro caso &#8220;Standard Character Set&#8221;, pulsaremos &#8220;Next&#8221; para continuar</span></p>
<p><span>A continuación podremos indicar si queremos que el asistente de configuración de  MySQL Server cree un servicio de Windows o un fichero de proceso por lotes  (.bat). Aquí podremos utilizar el método que más nos convenga para inicair MySQL  Server, cada uno tiene sus ventajas e inconvenientes. El más &#8220;profesional&#8221; es  &#8220;Install As Windows Service&#8221;, pues podremos indicar el modo de inicio: manual,  automático, etc. también podremos deshabilitarlo o reiniciarlo desde otras  aplicaciones en caso necesario. Si marcamos esta opción deberemos indicar el  nombre que se le dará al servicio en &#8220;Service Name&#8221;, en nuestro caso, puesto que  el nombre que aparece por defecto &#8220;MySQL&#8221; ya está siendo usado por MySQL Server  4.1, lo cambiaremos a &#8220;MySQL6&#8243;. Marcando la opción &#8220;Launch the MySQL Server  automatically&#8221; indicaremos que el servicio de MySQL Server 6 se inicie de forma  automática al iniciarse el sistema operativo. Si marcásemos la opción &#8220;Include  Bin Directory in Windows PATH&#8221; el asistente creará varios ficheros de proceso  por lotes (.bat), ejecutables, para iniciar, detener SQL Server 6, la carpeta  donde se creen será añadida a la variable de entorno PATH, para que se pueda  iniciar o detener MySQL Server desde cualquier carpeta en modo MS-DOS</span></p>
<p><span>Indicaremos también la contraseña para el superusuario root, que será el que  tenga acceso a todos los esquemas (schemas). Si marcamos la opción &#8220;Enable root  access from remote machines&#8221; indicaremos a MySQL Server que permita el acceso  desde otros equipos de la red (o Internet) mediante este superusuario. Si  marcamos la opción &#8220;Create An Anonymous Account&#8221; creará una cuenta anónima, por  lo que se permitirá el acceso a MySQL sin introducir usuario y contraseña (sólo  recomendable en caso de bases de datos MySQL Server 6 de pruebas, no en  producción)</span></p>
<p><span>Por último, pulsaremos en &#8220;Execute&#8221; para que el asistente de  configuración de MySQL Server 6 aplique todas las opciones indicadas  anteriormente</span></p>
<p><span>Si no hay ningún conflicto con el puerto indicado o el nombre del servicio de  Windows indicado aparecerán todas las operaciones (Prepare configuration, Write  configuration file (C:/Archivos de programa/MySQL/MySQL Server 6.0/my.ini),  Start Service y Apply security settings. También mostrará el mensaje:  &#8220;Configuration file created, Windows service MySQL6 installed, Service started  succesfully, Security settings applied&#8221;. Pulsaremos &#8220;Finish&#8221; para terminar</span></p>
<p><span>Si accedemos a los Servicios de Windows, desde &#8220;Inicio&#8221; &#8211; &#8220;Ejecutar&#8221; &#8211;  &#8220;services.msc&#8221;, podremos comprobar que el servicio MYSQL6 se ha creado e  iniciado correctamente</span></p>
<p><span>Haciendo doble clic sobre el servicio podremos ver sus  propiedades:</span></p>
<ul><span></p>
<li>Nombre de servicio: MySQL6</li>
<li>Nombre para mostrar: MySQL6</li>
<li>Ruta de acceso al ejecutable: <em>&#8220;C:/Archivos de programa/MySQL/MySQL  Server 6.0/bin/mysqld-nt&#8221; &#8211;defaults-file=&#8221;C:/Archivos de programa/MySQL/MySQL  Server 6.0/my.ini&#8221; MySQL6</em></li>
<li>Tipo de inicio: Automático.</li>
<li>Estado del servicio: Iniciado</li>
<p></span></ul>
<p><span>También podremos ver el proceso creado al iniciarse el servicio de MySQL6,  &#8220;mysqld-nt.exe&#8221;</span></p>
<p><span>Para crear un nuevo esquema (schema) ó base de datos en MySQL  Server 6 podremos utilizar, por ejemplo, MySQL Administrator, una herramienta  gratuita dispoble en la web de MySQL. Instalando y ejecutando MySQL  Administrator sólo deberemos indicar los siguientes datos para acceder a nuestro  nuevo servidor de bases de datos MySQL Server 6:</span></p>
<ul><span></p>
<li>
<div>Server Host: IP ó nombre de red del equipo en el que hemos  instalado MySQL Server 6.</div>
</li>
<li>
<div>Username: usuario con permisos suficientes para acceder a  MySQL Server 6, como es la primera vez sólo podremos acceder con el superusuario  root, luego podremos crear otros usuarios con permisos más restringidos.</div>
</li>
<li>
<div>Password: contraseña del superusuario root.</div>
</li>
<p></span></ul>
<p><span>Desde MySQL Administrator podremos ver información sobre nuestro MySQL Server 6  en &#8220;Server Information&#8221;:</span></p>
<p><span><br />
</span></p>
<p><span>Para crear un nuevo &#8220;Catálogo&#8221; ó &#8220;Catalog&#8221; ó &#8220;Esquema&#8221; ó &#8220;Schema&#8221; pulsaremos en  &#8220;Catalogs&#8221;, a continuación en la parte de abajo pulsaremos con el botón derecho  del ratón y seleccionaremos &#8220;Create New Schema&#8221;</span></p>
<p><span>Introduciremos el nombre del esquema, base de datos, schema y pulsaremos &#8220;OK&#8221;:</span></p>
<p><span>A continuación, seleccionaremos el nuevo esquema creado &#8220;bdprueba&#8221; y, en la  parte derecha de la ventana de MySQL Administrator, pulsaremos en el botón  &#8220;Create Table&#8221; para crear una nueva tabla. Nos mostrará una ventana de creación  de tabla donde podremos indicar el nombre, el comentario y los campos que  contendrá esta tabla con sus tipos de datos. También podremos indicar los  índices</span></p>
<p><span>En la parte infierior, en la pestaña &#8220;Indices&#8221;, para añadir un nuevo índice  pulsaremos en el botón &#8220;+&#8221;</span></p>
<p><span>Indicaremos el nombre del índice, por ejemplo, para que el número de factura sea  único, para que no se puedan introducir números de factura duplicados,  introduciremos, como nombre de índice &#8220;factura_numero&#8221;</span></p>
<p><span>Arrastraremos la columna &#8220;numero&#8221; de la parte superior a la parte inferior  derecha, hacia &#8220;Index Columns&#8221; y nos añadirá el campo para el que crearemos el  índice. En la parte inferior central, en &#8220;Index Settings&#8221; podremos indicar el  tipo de índice, en &#8220;Index Type&#8221;, en nuestro caso &#8220;DEFAULT&#8221; y en &#8220;Index Kind&#8221;, en  nuestro caso &#8220;UNIQUE&#8221;. Una vez creados todos los campos y todos los índices para  la tabla pulsaremos en &#8220;Apply Changes&#8221;</span></p>
<p><span>Tras la creación de la tabla, podremos, por ejemplo, insertar registros o  mostrar los que ya existen con la utilidad gratuita MySQL Query Browser,  seleccionado con el botón derecho del ratón sobre la tabla creada la opción de  menú &#8220;Edit Table Data&#8221;</span></p>
<p><span>Pulsando en el botón &#8220;Edit&#8221; de MySQL Query Browser podremos insertar, modificar  y eliminar registros en la nueva tabla creada</span></p>
<h3><span>Mejoras de MySQL 6.0:</span></h3>
<ul><span></p>
<li>Falco Storage Engine: nuevo motor de transacciones, Falcon ha sido  especialmente desarrollado para sistemas que son capaces de soportar grandes  arquitecturas de memoria y de subprocesos múltiples o entornos multi-core  (varios procesadores). Las plataformas ideales para el motor Falcon son las de  las arquitecturas de 64 bits, donde hay un mayor espacio de memoria disponible y  2, 4, ó 8 CPUs disponibles. Aunque también puede ser empleado en una plataforma  de 32 bits.</li>
<li>Soporte para nuevos juegos de caracteres Unicode: utf16, utf32, and 4-byte  utf8.</li>
<li>Nuevas mejoras en la copia de seguridad y la restauración de los esquemas.</li>
<p></span></ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/06/06/como-instalar-mysql-server-6-0-alpha-en-windows-xp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mandar E-Mails desde VB.NET</title>
		<link>http://www.ubicuos.com/2010/05/31/mandar-e-mails-desde-vb-net/</link>
		<comments>http://www.ubicuos.com/2010/05/31/mandar-e-mails-desde-vb-net/#comments</comments>
		<pubDate>Mon, 31 May 2010 23:48:58 +0000</pubDate>
		<dc:creator>Jorge</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[visual]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1486</guid>
		<description><![CDATA[Creación de un programa para mandar correos electronicos desde Visual Basic.NET]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/05/31/mandar-e-mails-desde-vb-net/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F05%2F31%2Fmandar-e-mails-desde-vb-net%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F05%2F31%2Fmandar-e-mails-desde-vb-net%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p><strong>ANTES QUE NADA, NO ME HAGO RESPONSABLE POR EL USO QUE LE PUEDAN DAR A ESTA INFORMACIÓN, LA PUBLICACIÓN DE ESTE MATERIAL ESTA HECHO CON FINES DE LUCRO NETAMENTE EDUCATIVO</strong><br/></p>
<p>Para la realización de este tutorial utilizamos Visual Basic.NET.<br/></p>
<p>Lo primero que debemos hacer es crear un proyecto y crear un formulario que se asemeje a la siguiente imagen.<br/></p>
<p><a href="http://www.ubicuos.com/wp-content/uploads/2010/05/mail.png"><img class="alignnone size-full wp-image-1487" title="mail" src="http://www.ubicuos.com/wp-content/uploads/2010/05/mail.png" alt="" width="519" height="480" /></a></p>
<p>Elementos utilzados</p>
<ul>
<li><span style="color: #ff6600;"><span style="color: #000000;">Cuatro TextBox con los nombres (propiedad name): txtDe, txtPara, txtAsunto y txtMensaje, este último con la propiedad Mutiline habilitada.</span></span></li>
<li><span style="color: #ff6600;"><span style="color: #000000;">Un Button con nombre</span></span> (propiedad  name)<span style="color: #ff6600;"><span style="color: #000000;">: btnEnviar.</span></span></li>
</ul>
<p>Accedemos al código de nuestro programa, y debajo del nombre de nuestra clase pondremos la siguiente función que se encarga de verificar la conexión a internet.</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"> <span style="color: #000080;">Private</span> <span style="color: #000080;">Declare</span> <span style="color: #000080;">Function</span> IsNetworkAlive <span style="color: #000080;">Lib</span> <span style="color: #800000;">&quot;SENSAPI.DLL&quot;</span> (<span style="color: #000080;">ByRef</span> lpdwFlags <span style="color: #000080;">As</span> <span style="color: #000080;">Long</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Long</span></pre></div></div>

<p>Dentro del código del botón Enviar pondremos el siguiente código:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Dim</span> Ret <span style="color: #000080;">As</span> <span style="color: #000080;">Long</span>
        <span style="color: #008000;">'Si el Api retorna 0 quiere decir que no hay ningun tipo de conexión de Red
</span>        <span style="color: #000080;">If</span> IsNetworkAlive(Ret) = 0 <span style="color: #000080;">Then</span>
            MsgBox(<span style="color: #800000;">&quot;No existe conexion a internet&quot;</span> &amp;amp; vbNewLine + <span style="color: #800000;">&quot;Error enviando E-Mail.&quot;</span> &amp;amp; vbNewLine &amp;amp; vbNewLine + <span style="color: #800000;">&quot;Por favor revise su conexion a internet&quot;</span> &amp;amp; vbNewLine + <span style="color: #800000;">&quot;e intentelo nuevamente.&quot;</span>, MsgBoxStyle.Exclamation)
        <span style="color: #000080;">Else</span>
            <span style="color: #000080;">Dim</span> MyMailMsg <span style="color: #000080;">As</span> <span style="color: #000080;">New</span> Net.Mail.MailMessage
            <span style="color: #000080;">Dim</span> HostName <span style="color: #000080;">As</span> <span style="color: #000080;">String</span> = My.Computer.Name
&nbsp;
            Try
                MyMailMsg.From = <span style="color: #000080;">New</span> Net.Mail.MailAddress(Me.txtDe.Text)
                MyMailMsg.<span style="color: #000080;">To</span>.Add(Me.txtPara.Text)
                MyMailMsg.Subject = Me.txtAsunto.Text
&nbsp;
                MyMailMsg.Body = Me.txtMensaje.Text
                <span style="color: #000080;">Dim</span> SMTP <span style="color: #000080;">As</span> <span style="color: #000080;">New</span> Net.Mail.SmtpClient(<span style="color: #800000;">&quot;smtp.live.com&quot;</span>)
                <span style="color: #008000;">'Para enviar por Hotmail utilizamos smtp.live.com y para enviar por Gmail utilizamos smtp.gmail.com
</span>
                SMTP.Port = 587
                SMTP.EnableSsl = <span style="color: #000080;">True</span>
&nbsp;
                SMTP.Credentials = <span style="color: #000080;">New</span> System.Net.NetworkCredential(<span style="color: #800000;">&quot;correovalido@hotmail.com&quot;</span>, <span style="color: #800000;">&quot;contraseña&quot;</span>)
                <span style="color: #008000;">'Aquí es necesario utilizar una cuenta de correo electrónico válida para que podamos mandar nuestros correos.
</span>
                SMTP.Send(MyMailMsg)
                MsgBox(<span style="color: #800000;">&quot;Tu E-Mail se ha enviado exitosamente&quot;</span>, MsgBoxStyle.Information, <span style="color: #800000;">&quot;Listo!!&quot;</span>)
            Catch ex <span style="color: #000080;">As</span> Exception
                MsgBox(ex.Message)
            <span style="color: #000080;">End</span> Try
        <span style="color: #000080;">End</span> <span style="color: #000080;">If</span></pre></div></div>

<p>Probamos nuestro programa.</p>
<div id="attachment_1488" class="wp-caption alignnone" style="width: 529px"><a href="http://www.ubicuos.com/wp-content/uploads/2010/05/mailfull.png"><img class="size-full wp-image-1488" title="mailfull" src="http://www.ubicuos.com/wp-content/uploads/2010/05/mailfull.png" alt="" width="519" height="480" /></a><p class="wp-caption-text">Llenamos los datos para mandar un mensaje</p></div>
<p>Mandamos nuesto mensaje.</p>
<div id="attachment_1489" class="wp-caption alignnone" style="width: 319px"><a href="http://www.ubicuos.com/wp-content/uploads/2010/05/message.png"><img class="size-full wp-image-1489" title="message" src="http://www.ubicuos.com/wp-content/uploads/2010/05/message.png" alt="" width="309" height="161" /></a><p class="wp-caption-text">Mensaje de confirmación.</p></div>
<p>Verificamos que el correo llegue a nuestro destino.</p>
<div id="attachment_1490" class="wp-caption alignnone" style="width: 499px"><a href="http://www.ubicuos.com/wp-content/uploads/2010/05/messagerecived.png"><img class="size-full wp-image-1490" title="messagerecived" src="http://www.ubicuos.com/wp-content/uploads/2010/05/messagerecived.png" alt="" width="489" height="140" /></a><p class="wp-caption-text">Mensaje recibido.</p></div>
<div id="attachment_1491" class="wp-caption alignnone" style="width: 468px"><a href="http://www.ubicuos.com/wp-content/uploads/2010/05/messageshow.png"><img class="size-full wp-image-1491" title="messageshow" src="http://www.ubicuos.com/wp-content/uploads/2010/05/messageshow.png" alt="" width="458" height="221" /></a><p class="wp-caption-text">Mensaje de nuestro correo.</p></div>
<p>Listo!!.. Espero sea de mucha ayuda.</p>
<p>Dudas, comentarios ó sugerencias, estamos para servirte!</p>
<p>Saludos!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/05/31/mandar-e-mails-desde-vb-net/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introducción al FTP</title>
		<link>http://www.ubicuos.com/2010/05/12/introduccion-al-ftp/</link>
		<comments>http://www.ubicuos.com/2010/05/12/introduccion-al-ftp/#comments</comments>
		<pubDate>Thu, 13 May 2010 00:28:07 +0000</pubDate>
		<dc:creator>Oscar</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[introduccion]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1476</guid>
		<description><![CDATA[¿Qué es FTP? FTP son siglas de File Transfer Protocol, en español, Protocolo de Transferencia de Archivos por Internet y en cristiano &#8216;algo que sirve para mandar archivos de un lado al otro&#8217;. Uno es HTTP que es el que usan las paginas Web (navegador) y el FTP es otro que se utiliza generalmente para [...]]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/05/12/introduccion-al-ftp/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F05%2F12%2Fintroduccion-al-ftp%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F05%2F12%2Fintroduccion-al-ftp%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<h2>¿Qué es FTP?</h2>
<p>FTP son siglas de <em>File Transfer Protocol</em>, en español,  Protocolo de  Transferencia de Archivos por Internet y en cristiano &#8216;algo que sirve para  mandar  archivos de un lado al otro&#8217;. Uno  es HTTP que es el que usan las paginas Web (navegador) y el FTP es otro  que se utiliza  generalmente para transferir archivos.<span id="more-1476"></span></p>
<h3>¿Para qué se usa? Ejemplos prácticos</h3>
<p>Pero normalmente se llama a un FTP al directorio donde alguien  tiene unos archivos a disposición de los demás. Ejemplos de FTPs:</p>
<ul>
<li> El directorio del servidor donde está alojada tu página Web.  Te conectas al servidor FTP del hospedador de la Web y subes los  archivos de tu  Web.</li>
<li> Un directorio público de descarga. Las Webs tienen a veces  alojados sus archivos de descarga en el servidor FTP. Lo normal en estos  es  acceder a través del link que pone la Web directo al archivo, pero en  realidad  este archivo esta en un FTP.</li>
<li> Un FTP particular de cualquiera de nosotros que lo que hace es  meter mp3, programas, divx, full albums&#8230; para compartir con la gente o  bien  intercambiar.</li>
</ul>
<p>Es parecido a cuando en programas como Kazaa, Napster,  WinMX,  DirectConnect, eDonkey y  de este tipo en los cuales compartes los directorios que quieres. Un  ejemplo:</p>
<h3>¿Qué necesito para conectarme a un FTP?</h3>
<p><em><strong>1.</strong> Para conectarte a un FTP necesitas saber 4 datos.</em></p>
<table id="AutoNumber3" border="2" cellspacing="1" width="86%">
<tbody>
<tr>
<td width="25%" align="center"><em>Dato</em></td>
<td width="25%" align="center"><em>Ejemplo 1</em></td>
<td width="25%" align="center"><em>Ejemplo 2</em></td>
<td width="25%" align="center"><em>Ejemplo 3</em></td>
</tr>
<tr>
<td width="25%" align="center"><strong>Nombre del servidor ftp</strong></td>
<td width="25%" align="center">ftp.midominio.com</td>
<td width="25%" align="center">dnsalias.net</td>
<td width="25%" align="center">217.12.54.124</td>
</tr>
<tr>
<td width="25%" align="center"><strong>Usuario</strong></td>
<td width="25%" align="center">oscar</td>
<td width="25%" align="center">ftp</td>
<td width="25%" align="center">Anonymous</td>
</tr>
<tr>
<td width="25%" align="center"><strong>Password</strong></td>
<td width="25%" align="center">*******</td>
<td width="25%" align="center">ftp</td>
<td width="25%" align="center">-</td>
</tr>
<tr>
<td width="25%" align="center"><strong>Puerto</strong></td>
<td width="25%" align="center">21</td>
<td width="25%" align="center">2121</td>
<td width="25%" align="center">21</td>
</tr>
</tbody>
</table>
<p>Tener en cuenta estas 3 cosas:</p>
<ul>
<li>El puerto por default es el 21 y por tanto, cuando no se especifica  será  el 21 siempre.</li>
<li>Si no se indica User ni Pass (Usuario y contraseña) es que la  entrada al FTP es <strong>anónima</strong> y por tanto totalmente pública, no hará  falta  especificar user ni pass para entrar. En este caso, en el programa que  utilizamos  habrá que señalar la casilla Anonymous o de entrada anónima.</li>
<li>El nombre del servidor de la gente normal suele ser la misma  <strong>dirección IP</strong> (ej. 217.215.1.210) de su ordenador si acaso un  alias gratuito que tenga (ejemplo:  ejemplo.dnsalias.net). El nombre acacias.dnsalias.net es equivalente a  escribir  la dirección IP, pero mas cómodo. Los sitios con dinero contratan un  dominio  especifico para el ftp que suelen ser del tipo ftp.terra.es ,  ftp.apache.org&#8230;</li>
</ul>
<p><em><strong>2.</strong> También necesitarás un <strong>Cliente FTP</strong></em> Para conectarte necesitarás un <strong>Cliente FTP</strong>, esto es, el  programa con el que te vas a conectar al FTP y a través del cual vas a  realizar  las trasferencias de los archivos. En el Cliente FTP deberás incluirle  los 4  datos necesarios para conectarse. </p>
<p><strong>Cliente  FTP:</strong>Es un programa que te permite conectarte al sitio FTP y  transferir archivos con él. </p>
<table border="1" cellspacing="1" cellpadding="2" >
<tbody>
<tr>
<td  align="center"><strong>Programa</strong></td>
<td   align="center"><strong>Descarga</strong></td>
<td   align="center"><strong>Descripción</strong></td>
</tr>
<tr>
<td><strong>Explorador de Internet</strong></td>
<td >Seguro que lo tienes instalado.</td>
<td >Efectivamente, con tu explorador       de Internet también se puede acceder a los FTP, solo te tienes que       asegurar de que sea una dirección del tipo <em><strong>ftp://user:pass@servidor.com:port</strong></em></td>
</tr>
<tr><span>_</span></tr>
<tr>
<td><strong>Filezilla</strong></td>
<td >filezilla-project.org</td>
<td >El mejor cliente de FTP de c&oacute;digo abierto y gratis<em><strong></strong></em></td>
</tr>
<tr>
<td><strong>CuteFTP</strong></td>
<td  >Su Web oficial es   www.cuteftp.com </td>
<td  >Es el mas habitual y el mas usado, pero  empieza      a ceder terreno a otros nuevos que son mucho mas atractivos e  incluso      potentes.</td>
</tr>
<tr>
<td><strong>SmartFTP</strong></td>
<td >Su Web oficial es www.smartftp.com</td>
<td >Entorno gráfico muy amigable, potente y  además      gratuito. Yo lo recomiendo. Puedes buscar m&aacute;s en     www.softonic.com</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/05/12/introduccion-al-ftp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BugCon 2010</title>
		<link>http://www.ubicuos.com/2010/05/11/bugcon-2010/</link>
		<comments>http://www.ubicuos.com/2010/05/11/bugcon-2010/#comments</comments>
		<pubDate>Wed, 12 May 2010 00:22:14 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Social / Internet]]></category>

		<guid isPermaLink="false">http://www.ubicuos.com/?p=1471</guid>
		<description><![CDATA[Nos mandan el “Call for Papers”, para el BugCon de 2010, BugCon es un evento abierto y técnico sobre seguridad informática. BugCON is a purely technical convention where all security researchers can show their current work,projects and ideas in Mexico City. 
The main topics for BugCON 2010 are:Software security, Secure coding, etc..]]></description>
			<content:encoded><![CDATA[<div align="left" style="padding: 0px 5px 5px 0px; clear: left; float: left;"><a name="fb_share" type="button_count" share_url="http://www.ubicuos.com/2010/05/11/bugcon-2010/"></a></div><div class="tweetmeme_button" style="float: left; margin-left: 10px;width:90px">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F05%2F11%2Fbugcon-2010%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.ubicuos.com%2F2010%2F05%2F11%2Fbugcon-2010%2F&amp;style=compact" height="61" width="50" /><br />
			</a>
		</div>
<p>&#160;</p>
<p>Nos mandan el “Call for Papers”, para el BugCon de 2010, BugCon es un evento abierto y técnico sobre seguridad informática.</p>
<p>BugCON is a purely technical convention where all security researchers can show their current work,projects and ideas in Mexico City. </p>
<p>The main topics for BugCON 2010 are:</p>
<p><span id="more-1471"></span></p>
<ul>
<li>Software security</li>
<li>Secure coding</li>
<li>Audit</li>
<li>Honeynets     </li>
<li>Perimeter Security</li>
<li>Web security</li>
<li>Malware Development</li>
<li>Computer Forensic</li>
<li>Fuzzing</li>
<li>Security related AI applications </li>
<li>Database hacking</li>
<li>Privacy issues</li>
<li>Mobile technologies</li>
<li>Hardware/firmware and embedded systems hacking</li>
<li>Cracking and protections on software</li>
<li>Academic security research</li>
<li>Firewalls, IDS and other network hardware/software (implementation, configuration and evasion</li>
<li>Open Source projects</li>
<li>Videogame consoles, T.V. systems, and other friki stuff</li>
<li>Cryptography and steganography</li>
<li>Phreaking</li>
<li>Informatic legislation</li>
<li>Reverse Engineering     </li>
<li>REMEMBER, you can send us your topic&#8230; We don’t have any problem if your topic is not present in the list above .</li>
</ul>
<p> <!--more-->
<p>BugCON accepts your participation in the form of conference and workshop, with a duration of 1 to 2 hours for the conference and in the case of workshops you can tell us how many time would you like need(if you need more time BugCON can offer work tables for continuing your talk); the conference language can be Spanish (prefereably) or English.</p>
<p>Remeber that BugCON is totally uncensored, so the public can start a discussion about your conference, and it&#8217;s totally acceptable.   </p>
<p>BugCON has two lines, “white hat” topic and “black hat” topic the technical reviewers going to collocate your conferences in the most adecuate clasification. BugCON reserves the right to accept or reject any paper.   </p>
<p>All proposals should be sent to <a href="mailto:secretary@bugcon.org">secretary@bugcon.org</a> with a little description about the conference and a little bio from the author, from February 17th to August 31th (no extensions).</p>
<p>The final schedule will be published on September 18th. Once your conference is accepted you should send a confirmation, a telephone number for contacting you and details about your arrival.   </p>
<p>BugCon 2010 will be celebrated at 27, 28 and 29 of October 2010 at CFIE-IPN ( Centro de Formación e Innovación Educativa del Instituto Politécnico Nacional) with the best support of&#160; ESCOM-IPN ( Escuela Superior de Cómputo).    <br />Will be waiting for you.    <br />Regards    <br />Armin Garcia    <br />President of BugCon    <br />Forensic Malware Analyst at Cipherstorm Ltd    </p>
<p>UK Office Suite 404, Albany House    <br />324-326 Regent Street    <br />London    <br />W1B 3HH    <br />United Kingdom    <br />UK Tel: 0871 245 6786    <br />UK Tel: 0871 245 6789    <br />Intl. Tel: +44 (0) 701 703 5786    <br />Fax: 0844 589 0400    <br />http://cipherstormgroup.com/     <br />http://www.bugcon.org</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ubicuos.com/2010/05/11/bugcon-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
