<?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>Walhez &#187; GDideas</title>
	<atom:link href="http://walhez.com/category/gnu-linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://walhez.com</link>
	<description>Ser geek no es suficiente</description>
	<lastBuildDate>Thu, 24 May 2012 19:00:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Tenis inspirados en empresas tecnologicas</title>
		<link>http://walhez.com/2011/11/tenis-inspirados-en-empresas-tecnologicas/</link>
		<comments>http://walhez.com/2011/11/tenis-inspirados-en-empresas-tecnologicas/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 18:00:36 +0000</pubDate>
		<dc:creator>luis_tokis</dc:creator>
				<category><![CDATA[GDideas]]></category>
		<category><![CDATA[LifeStyle]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[Ocio]]></category>

		<guid isPermaLink="false">http://walhez.com/?p=13703</guid>
		<description><![CDATA[El sitio web BrassMonki se ha caracterizado por sacar tenis inspirados en diferentes temas como lo son los deportes, música, televisión, cine, videojuegos, etc. Esta ocasión nos muestra una gama muy interesante de tenis inspirados en empresas o servicios tecnológicos del momento como lo son Android, Google, Chrome, Play Station 3, Wii, etc. Los precios ]]></description>
			<content:encoded><![CDATA[<p>El sitio web BrassMonki se ha caracterizado por sacar tenis inspirados en diferentes temas como lo son los deportes, música, televisión, cine, videojuegos, etc.</p>
<p>Esta ocasión nos muestra una gama muy interesante de tenis inspirados en empresas o servicios tecnológicos del momento como lo son Android, Google, Chrome, Play Station 3, Wii, etc. Los precios de los tenis  son un poco elevados, rondan entre los $2500 y $3000 MXN que creo solo los verdaderos fans de estas empresas o alguien con mucho gusto por esto si sería capaz de comprarlos.</p>
<p style="text-align: left"><a href="http://walhez.com/wp-content/uploads/2011/11/sneakers_for_webbies_2.jpg" target="_blank"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="aligncenter size-full wp-image-13704" src="http://walhez.com/wp-content/uploads/2011/11/sneakers_for_webbies_2.jpg" alt="" width="600" height="400" /></a>Unos tenis muy creativos que creo que a cualquier de nosotros nos gustaría tener mínimo alguno de ellos, a mí me ha encantado el de Android o el de Facebook.</p>
<p style="text-align: left">SitioWeb|<a href="http://brassmonki.wazala.com/" target="_blank">BrassMonki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/11/tenis-inspirados-en-empresas-tecnologicas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Musica legal para usar en tus proyectos multimedia (videos, podcasts, documentales, presentaciones, spot publicitarios&#8230;)</title>
		<link>http://walhez.com/2011/11/musica-legal-para-usar-en-tus-proyectos-multimedia-videos-podcasts-documentales-presentaciones-spot-publicitarios/</link>
		<comments>http://walhez.com/2011/11/musica-legal-para-usar-en-tus-proyectos-multimedia-videos-podcasts-documentales-presentaciones-spot-publicitarios/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 20:15:21 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[Entretenimiento]]></category>
		<category><![CDATA[GDideas]]></category>
		<category><![CDATA[Música]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[Vimeo]]></category>
		<category><![CDATA[Destacados]]></category>
		<category><![CDATA[Dig.ccmixter]]></category>
		<category><![CDATA[documentales]]></category>
		<category><![CDATA[Free Music Archive]]></category>
		<category><![CDATA[Jamendo]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[presentaciones]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[spot publicitarios]]></category>
		<category><![CDATA[Vimeo Music Store]]></category>

		<guid isPermaLink="false">http://walhez.com/?p=13665</guid>
		<description><![CDATA[Las regulaciones actuales, junto a propuestas para futuras políticas con respecto a los derechos de autor y el uso de contenido con Copyright, hace que los usuarios que crean contenido digital -videos, podcast, presentaciones, documentales etc- recurran al uso de canciones bajo licencias Creative Commons: Las licencias CC están inspiradas en la licencia GPL (General ]]></description>
			<content:encoded><![CDATA[<p><a href="http://walhez.com/2011/11/musica-legal-para-usar-en-tus-proyectos-multimedia-videos-podcasts-documentales-presentaciones-spot-publicitarios/creative-commons/" rel="attachment wp-att-13680"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="aligncenter size-full wp-image-13680" title="Creative Commons" src="http://walhez.com/wp-content/uploads/2011/11/Creative-Commons.jpg" alt="" width="400" height="303" /></a><br />
Las regulaciones actuales, junto a propuestas para futuras políticas con respecto a los derechos de autor y el uso de contenido con Copyright, hace que los usuarios que crean contenido digital -videos, podcast, presentaciones, documentales etc- recurran al uso de canciones bajo <a href="http://es.wikipedia.org/wiki/Creative_Commons#Licencias">licencias Creative Commons</a>:</p>
<blockquote><p>Las licencias CC están inspiradas en la licencia GPL (General Public License) de la Free Software Foundation, compartiendo buena parte de su filosofía. La idea principal detrás de ellas es posibilitar un modelo legal ayudado por herramientas informáticas, para así facilitar la distribución y el uso de contenidos.</p></blockquote>
<p>Desde Walhez, queremos en-listarles los sitios que proporcionan una gran variedad de contenido musical e instrumental para utilizar en sus proyectos:</p>
<p><strong><a href="http://freemusicarchive.org/">Free Music Archive</a></strong>: Ofrece un catalogo de aproximadamente 5,000 temas musicales que pueden ser utilizados por productores de radio, podcasts y videos.</p>
<p><strong><a href="http://dig.ccmixter.org/">Dig.ccmixter</a></strong>: buscador de la comunidad ccmixter.org, que ofrece 1,000 canciones para uso comercial. Hay <a href="http://dig.ccmixter.org/music_for_film_and_video">música instrumental para peliculas</a>, <a href="http://dig.ccmixter.org/featured">ipod</a>, <a href="http://dig.ccmixter.org/free_music">proyectos comerciales</a>, además de canciones de artistas que quieren darse a conocer.<br />
<strong><br />
<a href="http://www.jamendo.com/es/">Jamendo</a></strong>: Un sitio pensado para los artistas, productores, y demás interesados en auto-promocionarse. Cuenta con más contenido que <a href="http://dig.ccmixter.org/">Dig.ccmixter</a> pero a diferencia de este, las canciones descargadas de Jamendo es <a href="http://www.jamendo.com/es/faq/5/iquestpuedo-usar-musica-de-jamendo-en-un-marco-comercial">solo para uso privado, es decir, no comercial.</a></p>
<p><strong><a href="http://vimeo.com/blog:443">Vimeo Music Store</a></strong>:<br />
<iframe src="http://player.vimeo.com/video/29198414?byline=0&amp;portrait=0" frameborder="0" width="400" height="225"></iframe></p>
<p>Recientemente lanzada, es la tienda musical del portal por excelencia para la divulgación de proyectos freelance. Proporcionar 45,000 temas musicales gratuitos y de pago, ordenados por categorías y tags.</p>
<p>Todos los sitios en-listados, detallan en cada canción la licencia que poseen, y para utilizar comercialmente algunos temas musicales se debe pagar un determinado monto. ¿Qué sitio añadirías a la lista?</p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/11/musica-legal-para-usar-en-tus-proyectos-multimedia-videos-podcasts-documentales-presentaciones-spot-publicitarios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Square Enix  probará suerte en Android</title>
		<link>http://walhez.com/2011/11/square-enix-probara-suerte-en-android/</link>
		<comments>http://walhez.com/2011/11/square-enix-probara-suerte-en-android/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 20:00:13 +0000</pubDate>
		<dc:creator>luis_tokis</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[GDideas]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[Destacados]]></category>

		<guid isPermaLink="false">http://walhez.com/?p=13553</guid>
		<description><![CDATA[Hace algunos meses cuando fue el TelmexHub en Querétaro y que tuve la oportunidad de ir muchos conferencistas coincidían en algo, Android será tan grande que incluso sacará su propia consola de videojuegos o se desarrollarán juegos exclusivos para esta plataforma. Han pasado a penas un par de meses desde ese ciclo de conferencias cuando ]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><a href="http://walhez.com/wp-content/uploads/2011/11/Untitleddrawing-1.jpg" target="_blank"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="aligncenter size-full wp-image-13554" src="http://walhez.com/wp-content/uploads/2011/11/Untitleddrawing-1.jpg" alt="" width="600" height="400" /></a></p>
<p>Hace algunos meses cuando fue el TelmexHub en Querétaro y que tuve la oportunidad de ir muchos conferencistas coincidían en algo, Android será tan grande que incluso sacará su propia consola de videojuegos o se desarrollarán juegos exclusivos para esta plataforma.</p>
<p>Han pasado a penas un par de meses desde ese ciclo de conferencias cuando me encuentro con esta noticia, Square Enix, la compañía que dio vida a la saga de Final Fantasy, Dragon Quest entre otros estupendos juegos ha anunciado la creación de Square Enix Market, que no es más que simplemente su propia tienda de videojuegos para dispositivos con Android. Y la gran razón por la cual crea su propia tienda en lugar de poner sus juegos en el Android Market es simple, quieren todas las ganancias para ellos, no quieren compartir parte de estas ganancias con Google.</p>
<p>El lanzamiento de esta tienda se planea para el 1ro de Diciembre de este año, lamentablemente de un inicio será exclusivo de Japón.</p>
<p>VÍA|<a href="http://www.vidaextra.com/android/square-enix-market-la-tienda-de-square-enix-para-android" target="_blank">VX</a></p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/11/square-enix-probara-suerte-en-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>En la pelea de las redes sociales Google+ se anota un +1!</title>
		<link>http://walhez.com/2011/10/en-la-pelea-de-las-redes-sociales-google-se-anota-un-1/</link>
		<comments>http://walhez.com/2011/10/en-la-pelea-de-las-redes-sociales-google-se-anota-un-1/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 12:00:27 +0000</pubDate>
		<dc:creator>luis_tokis</dc:creator>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[GDideas]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Destacados]]></category>

		<guid isPermaLink="false">http://walhez.com/?p=13059</guid>
		<description><![CDATA[Ya lo hizo Facebook, lo va a hacer Twitter pero por ahora lo hace ¡Google+! El día de ayer Google+ actualizo su sitio trayendo unas muy buenas mejoras y a diferencia de Facebook, estas mejoras parecen ser del agrado del público. Las actualizaciones que recibió el sitio se pueden resumir prácticamente en cuatro puntos:   ¿Cuáles ]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://walhez.com/?attachment_id=13060" rel="attachment wp-att-13060"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="aligncenter size-full wp-image-13060" src="http://desmond.imageshack.us/Himg534/scaled.php?server=534&amp;filename=googlevsfbvstwitter.jpg&amp;res=medium" alt="" /></a></p>
<p>Ya lo hizo Facebook, lo va a hacer Twitter pero por ahora lo hace ¡Google+! El día de ayer Google+ actualizo su sitio trayendo unas muy buenas mejoras y a diferencia de Facebook, estas mejoras parecen ser del agrado del público.</p>
<p>Las actualizaciones que recibió el sitio se pueden resumir prácticamente en cuatro puntos:</p>
<p><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="alignnone" src="http://desmond.imageshack.us/Himg220/scaled.php?server=220&amp;filename=67331693.png&amp;res=medium" alt="" width="15" height="16" /><strong>  </strong><strong>¿Cuáles son los temas más populares?</strong>: o por su nombre en inglés “What’s hot?”, sí, sí es lo que están pensando. Esto  podemos decir que es como el “Trendy  Topic” de Twitter, ya que lo que nos mostrará son los temas que más se están “hablando” en el mundo. Esta función aparecerá en dos lugares. La primera es que aparecerá en la timeline como si fuera una publicación de tus círculos, y ahí hay una flecha con los que puedes cambiar de tema, por el momento son ocho temas los que muestra. La segunda es que aparecerá arriba de tus “sparks” o intereses y te re direccionará una página donde te los muestra. (Imágenes abajo)</p>
<p><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  src="http://desmond.imageshack.us/Himg220/scaled.php?server=220&amp;filename=67331693.png&amp;res=medium" alt="" width="15" height="16" /><strong> </strong> <strong>Ripples:</strong> es una herramienta la cual su función principal más que nada es ver la actividad de alguna publicación tuya que hayan compartido, y luego comentado, y todo esto que puede llegar a sonar complejo, Google aplica su estilo minimalista y todo esto te lo representa en un mapa dinámico donde puedes ver toda actividad. Por último, para accesar a esta característica, una vez que hayas seleccionado una publicación, debes darle click al menú desplegable y por último seleccionar “View Ripples”. (Imágenes abajo)</p>
<p><strong> <img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  src="http://desmond.imageshack.us/Himg220/scaled.php?server=220&amp;filename=67331693.png&amp;res=medium" alt="" width="15" height="16" /><strong>  </strong>Creative Kit</strong>: esta es una herramienta de edición de imágenes  al más puro estilo Picnik o Instant Retro. Herramientas con las cuales puedes llegar incluso siendo bien usadas a hacer edición de calidad profesional. Esta opción viene integrada en la galería, cuando seleccionas una foto, hay un botón a lado de la opción “opciones” que dice editar, das click y en el menú desplegable seleccionas Creative Kit o Kit Creativo (según el idioma” y a ¡empezar la edición¡ Una última cosa, ahorita por las celebridades de Halloween próximas viene incluido unos plugins para hacer fotos espantosas y escalofriantes. (Imágenes abajo)</p>
<p><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  src="http://desmond.imageshack.us/Himg220/scaled.php?server=220&amp;filename=67331693.png&amp;res=medium" alt="" width="15" height="16" /> <strong> </strong>Google+ ahora está disponible para universidades, escuelas, organizaciones y empresas a través de Google Apps.Para los usuarios de Google Apps ya sea cuenta empresarial o gratuita y que hayan aceptado activar de forma automática los nuevos servicios de Google, Google+ será activado automáticamente para ellos durante los próximos días .</p>
<p><a href="http://walhez.com/wp-content/uploads/2011/10/ripple1.png"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="alignnone" src="https://lh5.googleusercontent.com/-GAQeLRUuI1k/TqmsybcChII/AAAAAAABNHo/aIZ__Id5SIA/w250/Larry.jpg" alt="" width="250" height="250" /><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="alignnone" src="https://lh3.googleusercontent.com/-LA5NS4dQcyQ/TqnEqsaPt6I/AAAAAAAAAZA/Quh5kYzCKnU/w250/image" alt="" width="250" height="250" /></a></p>
<p><a href='http://walhez.com/2011/10/en-la-pelea-de-las-redes-sociales-google-se-anota-un-1/google-vs-fb-vs-twitter/' title='google vs fb vs twitter'><img width="150" height="139" src="http://walhez.com/wp-content/uploads/2011/10/google-vs-fb-vs-twitter-150x139.jpg" class="attachment-thumbnail" alt="google vs fb vs twitter" title="google vs fb vs twitter" /></a><br />
<a href='http://walhez.com/2011/10/en-la-pelea-de-las-redes-sociales-google-se-anota-un-1/ripple1/' title='ripple1'><img width="150" height="144" src="http://walhez.com/wp-content/uploads/2011/10/ripple1-150x144.png" class="attachment-thumbnail" alt="ripple1" title="ripple1" /></a><br />
<a href='http://walhez.com/2011/10/en-la-pelea-de-las-redes-sociales-google-se-anota-un-1/ripple/' title='ripple'><img width="150" height="95" src="http://walhez.com/wp-content/uploads/2011/10/ripple-150x95.png" class="attachment-thumbnail" alt="ripple" title="ripple" /></a><br />
<a href='http://walhez.com/2011/10/en-la-pelea-de-las-redes-sociales-google-se-anota-un-1/h/' title='What&#039;s hot?'><img width="150" height="53" src="http://walhez.com/wp-content/uploads/2011/10/h-150x53.png" class="attachment-thumbnail" alt="What&#039;s hot?" title="What&#039;s hot?" /></a></p>
<div>VÍA | <a href="http://googleblog.blogspot.com/2011/10/google-popular-posts-eye-catching.html" target="_blank">Google</a></div>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/10/en-la-pelea-de-las-redes-sociales-google-se-anota-un-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¡Te invitamos a formar parte del equipo!</title>
		<link>http://walhez.com/2011/08/%c2%a1te-invitamos-a-formar-parte-del-equipo-2/</link>
		<comments>http://walhez.com/2011/08/%c2%a1te-invitamos-a-formar-parte-del-equipo-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 01:12:17 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[anuncios]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[Convocatoria]]></category>
		<category><![CDATA[Equipo]]></category>
		<category><![CDATA[Invitacion]]></category>
		<category><![CDATA[Walhez]]></category>

		<guid isPermaLink="false">http://walhez.com/?p=12016</guid>
		<description><![CDATA[Debido al crecimiento alcanzado en Walhez durante los últimos años, que ha llevado y lleva el sitio a niveles que no esperábamos, aunado al deseo de ofrecerles un mayor contenido diario y siempre de la mejor calidad posible. Queremos invitar a todos los lectores interesados en  formar parte del equipo y así, ¡contribuir entre todos ]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-12080" href="http://walhez.com/2011/08/%c2%a1te-invitamos-a-formar-parte-del-equipo-2/walhez-2/"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="aligncenter size-full wp-image-12080" title="Walhez" src="http://walhez.com/wp-content/uploads/2011/08/Walhez.jpg" alt="" width="225" height="110" /></a>Debido al crecimiento alcanzado en <a href="../"><strong>Walhez</strong></a> durante los últimos años, que ha llevado y lleva el sitio a niveles  que no esperábamos, aunado al deseo de ofrecerles un mayor contenido diario y  siempre de la mejor calidad posible. Queremos invitar a todos los lectores interesados en  formar parte del equipo y así, ¡contribuir entre todos al  crecimiento de este, tu blog!.</p>
<p>Buscamos una persona que tenga muy buena redacción, facilidad de  expresión, con conocimientos amplios sobre tecnología e informática. Si  eres esa persona, esta es tu oportunidad de darte a conocer en internet,  relacionarte con otros que comparten tus mismos intereses y aficiones, expresarte sobre temas/noticias que te apasionan y a la vez enriquecerte de mas conocimiento. Incluso podrías  tener accesos a invitaciones para eventos de las TI,  probar nuevas startups y muchas cosas  mas.</p>
<p>Únicamente requerimos nos envíes un post de tu propia autoría (original), la dirección de tu blog (si posees) y que nos hagas saber de donde eres. Si eres esa persona que buscamos, nos pondremos en contacto contigo.</p>
<p>Contactanos en Twitter <a href="https://twitter.com/#!/walhez">@walhez</a>, en <a href="https://www.facebook.com/walhez">Facebook</a> o escríbenos al email:<a rel="attachment wp-att-12083" href="http://walhez.com/2011/08/%c2%a1te-invitamos-a-formar-parte-del-equipo-2/7dd0cfdd1356ce405318786b383a31ab/"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="size-full wp-image-12083 alignright" title="Walhez email" src="http://walhez.com/wp-content/uploads/2011/08/7dd0cfdd1356ce405318786b383a31ab.png" alt="" width="127" height="13" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/08/%c2%a1te-invitamos-a-formar-parte-del-equipo-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El día que morimos y revivimos</title>
		<link>http://walhez.com/2011/06/el-dia-que-morimos-y-revivimos/</link>
		<comments>http://walhez.com/2011/06/el-dia-que-morimos-y-revivimos/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 17:27:47 +0000</pubDate>
		<dc:creator>ajamaica</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[nuke]]></category>
		<category><![CDATA[Walhez]]></category>

		<guid isPermaLink="false">http://walhez.com/?p=11902</guid>
		<description><![CDATA[Quizá es el FSM nos salvó esta vez. Ya hemos sabido de desastres que matan sitios completos como Magnolia y lo que hace poco le pasó a Google con Gmail. Nunca podemos confiar al cien por cien en nuestros sistemas informáticos. Sucede que el jueves pasado Nuestro servidor principal, y el servidor DNS sufrieron una ]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-11903" href="http://walhez.com/2011/06/el-dia-que-morimos-y-revivimos/us_nuke/"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="aligncenter size-large wp-image-11903" title="us_nuke" src="http://walhez.com/wp-content/uploads/2011/06/us_nuke-600x250.jpg" alt="" width="600" height="250" /></a></p>
<p>Quizá es el FSM nos salvó esta vez. Ya hemos sabido de desastres que matan sitios completos como Magnolia y lo que hace poco le pasó a Google con Gmail. Nunca podemos confiar al cien por cien en nuestros sistemas informáticos. Sucede que el jueves pasado Nuestro servidor principal, y el servidor DNS sufrieron una saturación del servicio. Ordene un aumento de 8 GB a nuestro servidor de alojamiento para lograr tener 16GB de RAM. Nuestra Tarjeta Madre no soportaba así ordene un cambio de Proscesador y Tarjeta Madre. El sistema no soportó el cambio de hardware así que ordene una reinstalación, y aquí comenzó el problema.</p>
<p>Sucede que encontraron un error de hardware en alguno de los sectores del disco, usaron otro para reinstalar y después copiarían los datos. Y pues bueno, cuando estaba copiando el disco trono.</p>
<p>Perdimos buena parte de la información, configuraciones clientes. Estamos arriba de milagro. Viejos backups, un poco de ayuda de Google y muchas horas de trabajo nos permiten estar hoy de regreso. Notarán que no tenemos imagenes, estas llegaran eventualmente pero tomaran tiempo. Por ahora lo que nos interesa es tener el sitio arriba y rápido.</p>
<p>Bienvenidos de nuevo. Esperemos que no suceda algo así jamás. Esta vez la sabiduría y la experiencia nos ayudo en este momento de crisis. Espero que sigan con nosotros.</p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/06/el-dia-que-morimos-y-revivimos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Humor] La ruleta de respuestas de un Help Desk</title>
		<link>http://walhez.com/2011/06/humor-la-ruleta-de-respuestas-de-un-help-desk/</link>
		<comments>http://walhez.com/2011/06/humor-la-ruleta-de-respuestas-de-un-help-desk/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 03:03:22 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[GDideas]]></category>
		<category><![CDATA[Help Desk]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Information Technology]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[IT Service Desk]]></category>
		<category><![CDATA[Ruleta]]></category>
		<category><![CDATA[TI]]></category>

		<guid isPermaLink="false">http://walhez.com/?p=11880</guid>
		<description><![CDATA[Cuando se llama al departamento de IT (Information Techonology) para pedir soporte técnico, en la mayoría de casos se obtienen respuestas pre-fabricadas y que mas de alguno,  se las sabe de memoria, como la típica &#8220;reinicie su computadora&#8221; etc. Si alguno quisiera trabajar en el departamento de IT, esta fantástica ruleta les convertirá automáticamente en ]]></description>
			<content:encoded><![CDATA[<p>Cuando se llama al departamento de IT (Information Techonology) para pedir soporte técnico, en la mayoría de casos se obtienen respuestas pre-fabricadas y que mas de alguno,  se las sabe de memoria, como la típica &#8220;reinicie su computadora&#8221; etc.</p>
<p>Si alguno quisiera trabajar en el departamento de IT, esta fantástica ruleta les convertirá automáticamente en un Help Desk hecho y derecho:<a rel="attachment wp-att-11884" href="http://walhez.com/2011/06/humor-la-ruleta-de-respuestas-de-un-help-desk/sshot4df06741cf3d2/"></a></p>
<p style="text-align: center;"><a rel="attachment wp-att-11884" href="http://walhez.com/2011/06/humor-la-ruleta-de-respuestas-de-un-help-desk/sshot4df06741cf3d2/"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="aligncenter size-full wp-image-11884" title="IT Answers, Repuesta de IT, HelpDesk" src="http://walhez.com/wp-content/uploads/2011/06/sshot4df06741cf3d2.png" alt="" width="520" height="390" /></a></p>
<p>Via | <a href="http://www.lowbird.com/all/view/2011/05/hornoxe-hornoxe-com-picdump205-054">Lowbird</a></p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/06/humor-la-ruleta-de-respuestas-de-un-help-desk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python y Django : ¿Cómo Empezar?</title>
		<link>http://walhez.com/2011/05/python-y-django-%c2%bfcomo-empezar/</link>
		<comments>http://walhez.com/2011/05/python-y-django-%c2%bfcomo-empezar/#comments</comments>
		<pubDate>Thu, 12 May 2011 09:56:50 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[GDideas]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Quizá sepan que Python es por mucho mi lenguaje favorito. Especificamente por toda la magia que trae incorporada. He trabajado con PHP desde el 2004 y Ruby en algún momento del 2009 pero sencillamente, desde mi punto de vista Python es la mejor herramienta que usado para desarrollar sitios web. Cuando nos referimos a desarrollo web con Python, lo primero ]]></description>
			<content:encoded><![CDATA[<p><a href="http://walhez.com/wp-content/uploads/2011/05/django-logo.png"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  title="django-logo" src="http://walhez.com/wp-content/uploads/2011/05/django-logo.png" alt="" width="630" height="286"></a>Quizá sepan que Python es por mucho mi lenguaje favorito. Especificamente por toda la magia que trae incorporada. He trabajado con PHP desde el 2004 y Ruby en algún momento del 2009 pero sencillamente, desde mi punto de vista Python es la mejor herramienta que usado para desarrollar sitios web.</p>
<p>Cuando nos referimos a desarrollo web con Python, lo primero que se nos viene a la cabeza es usar un framework. El mas famoso y usado de todos en Django, pero no es el unico. Existe <a href="http://pylonshq.com/">Pylons</a>, <a href="http://grok.zope.org/">Grok</a>, <a href="http://www.turbogears.org/">TurboGears</a> y <a href="http://www.zope.org/">Zope</a> todos open source y corriendo sobre WSGI. Siendo honestos Django ha dominado mucho, al nivel que Google lo incorpora en el 2008 como parte de los frameworks por default a su app engine.</p>
<h2>Python</h2>
<h3>Empezando en Python</h3>
<p>Para empezar se requiere trabajar con Python. A diferencia de Ruby o PHP, en este lenguaje la anarquia es algo que se castiga. El orden y pragmatismo es algo en lo que sus desarrolladores se encuentran muy orgullosos. Esto te garantiza que logres aprender el lenguaje intuitivamente. Nada mejor que empezar aprendiendo cosas básicas y después lanzandote con un proyecto. Python es un lenguaje scripting, no hay que preocuparse (mucho) por el manejo de memoria por que tenemos recolector. Hay mucho que aprender de Python pero sabiendo el paradigma Orientado a Objetos y teniendo una visión clara de lo que hay que hacer el camino para aprender este lenguaje es muy sencillo, quizá mas sencillo que Java, C o PHP (no orientados a objetos, pero hago referencia a la curva de aprendizaje).</p>
<p>Yo te recomiendo que leas : <a href="http://learnpythonthehardway.org/index">Learn Python the hardway</a></p>
<p>Algunas características de Python que debes conocer son:</p>
<ul>
<li>Es Legible : su sintaxis es intuitiva y estricta (¡muy estricta!)</li>
<li>Concisa : una linea de código en Python equivale a 3 de Java y a 5 de C++</li>
<li>Portable : Funciona en Windows, Linux y Mac.</li>
<li>Extenso : STL y Librerías</li>
</ul>
<h4>Antes de seguir te sugiero que instales python y te des una vuelta por la consola interactiva.</h4>
<p><span></span></p>
<h3>Variables</h3>
<p>Las variables en python son de tipo dinámicas podemos declararlas sin problemas de esta manera</p>
<pre>x = 4</pre>
<pre>x="string"</pre>
<h3>Objetos</h3>
<p>Este lenguaje parte del paradigma Orientado a Objetos es por eso que absolutamente todo es un objeto derivado del objeto object.</p>
<table border="1">
<tbody>
<tr>
<th>Tipo</th>
<th>Clase</th>
<th>Notas</th>
<th>Ejemplo</th>
</tr>
<tr>
<td>str</td>
<td>Cadena</td>
<td>Su contenido no puede cambiarse en tiempo de ejecución</td>
<td>‘Cadena’</td>
</tr>
<tr>
<td>unicode</td>
<td>Cadena</td>
<td>Versión Unicode de str</td>
<td>u’Cadena’</td>
</tr>
<tr>
<td>list</td>
<td>Secuencia</td>
<td>Puede contener objetos de diversos tipos, puede cambiarse su contenido</td>
<td>[4.0, 'Cadena', True]</td>
</tr>
<tr>
<td>tuple</td>
<td>Secuencia</td>
<td>No puede cambiarse en tiempo de ejecución, puede contener objetos de diversos tipos</td>
<td>(4.0, ‘Cadena’, True)</td>
</tr>
<tr>
<td>set</td>
<td>Conjunto</td>
<td>Sin orden, no contiene duplicados, puede cambiarse su contenido</td>
<td>set([4.0, 'Cadena', True])</td>
</tr>
<tr>
<td>frozenset</td>
<td>Conjunto</td>
<td>Sin orden, no contiene duplicados, no puede cambiarse su contenido</td>
<td>frozenset([4.0, 'Cadena', True])</td>
</tr>
<tr>
<td>dict</td>
<td>Mapping</td>
<td>Grupo de pares clave:valor</td>
<td>{‘key1?: 1.0, ‘key2?: False}</td>
</tr>
<tr>
<td>int</td>
<td>Número entero</td>
<td>Precisión fija, convertido en <var>long</var> en caso de overflow.</td>
<td>42</td>
</tr>
<tr>
<td>long</td>
<td>Número entero</td>
<td>Precisión arbitraria</td>
<td>42L ó 456966786151987643L</td>
</tr>
<tr>
<td>float</td>
<td>Número decimal</td>
<td>Coma flotante de doble precisión</td>
<td>3.1415927</td>
</tr>
<tr>
<td>bool</td>
<td>Booleano</td>
<td>Valor booleano verdadero o falso</td>
<td>True o False</td>
</tr>
</tbody>
</table>
<h3>Operadores</h3>
<p>Existen de varios tipos como en muchos los lenguajes:</p>
<ul>
<li>Aritméticos : +,-,*,/,%,**</li>
<li>Lógicos : or, and, not</li>
<li>Comparadores : &lt;, &gt;, &lt;=,&gt;= , ==</li>
</ul>
<h3>Módulos</h3>
<p>Un módulo no es mas que un fichero .py. Estos modulos se organizan en carpetas llamadas paquetes. Cada carpeta debe tener un archivo __init__.py.</p>
<p>Estos modulos pueden ser importados a otros usando la sencencia:</p>
<pre>import modulo</pre>
<p>Python se encarga de buscar con la siguiente prioridad :</p>
<ol>
<li>La carpeta  actual ./</li>
<li>El directorio site-package de python en nuestra máquina. Donde viven las librerias locales de python como Django</li>
<li>El Pythonpath del enviroment actual</li>
<li>En la instalación de Python actual ejemplo 2.7 o 3.0</li>
</ol>
<p>Podemos importar archivos específicos de ciertos modulos con la siguiente sentencia :</p>
<pre>from modulo import componente</pre>
<pre>from modulo import *</pre>
<pre>from modulo import componente as c</pre>
<h3>Estructura</h3>
<p>En Python los corchetes estan prohibidos. Jamas los veras. Para poder delimitar instrucciones (inicio y fin de clases o funciones) se usan tabulaciones (1 tabulación) o 4 espacios (recomendada). Es importante no combinarlas.   Se recomienda que cada linea no pase de 79 caracteres.</p>
<p>Una función en Python se ve así:</p>
<pre>def funcion(p1,p2):
     return "Hola Mundo!"</pre>
<p>Una clase en Python se debe de ver así</p>
<pre>class Rectangulo(Blob):
       def __init__(self, ancho, alto,
                     color=&#39;negro&#39;, iluminado=0):
            if (ancho == 0 and alto == 0 and
                color == &#39;rojo&#39;  and
                iluminado &gt; 100):
                raise ValueError(&quot;Error&quot;)
            if ancho == 0 and alto == 0 and (color == &#39;rojo&#39;) and iluminado &lt; 100:
                raise ValueError(&quot;Error ancho es %s, y alto es %s&quot; %
                                 (ancho, alto))
            Blob.__init__(self, ancho, alto,
                          color, iluminado)</pre>
<p>Para convertir entre tipos basta con :</p>
<pre>int('34')</pre>
<pre>str(66)</pre>
<p>Recomiendo <a href="http://www.python.org/dev/peps/pep-0008/">leer el PEP 8</a> antes de seguir, debe ser tu Biblia para ser un mejor programador.</p>
<h3>Sentencias</h3>
<p>Condicional:</p>
<pre>if foo == 'blah':
        do_blah_thing()
    elif :
        do_otra_cosa()</pre>
<p>Ciclos:</p>
<pre>count = 0
while (count &lt; 9):
   print &#39;The count is:&#39;, count
   count = count + 1</pre>
<pre>fruits = ['banana', 'apple',  'mango']
for fruit in <strong>fruits</strong>:
   print 'Current fruit :', fruit</pre>
<p>Exepciones:</p>
<pre>try:
   fh = open("archivo", "w")
   fh.write("Para escribir")
except IOError:
   print "Error!"
else:
   print "Exito!"
   fh.close()</pre>
<h2>Django</h2>
<h3>Empezando en Django</h3>
<p>Se originó en un ambiente periodístico en la editorial del WSJ. Era complicado estar implementando a la misma velocidad que se incorporaban nuevos componentes requeridos por los periodistas.</p>
<p>Su filosofía se basa en el acoplamiento facil, menos código, Desarrollo rápido, no repetir funcionalidad, ser explícito y consistente.</p>
<p>Django es tan bueno por que</p>
<ul>
<li>Usa Python <img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  src="http://walhez.com/wp-includes/images/smilies/icon_wink.gif" alt=";)"> </li>
<li>Desarrollo rápido y limpio</li>
<li>WSGI</li>
<li>Usa el modelo MVC mejor dicho <a href="http://docs.djangoproject.com/en/dev/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names">MTV</a></li>
<li>Se basa en el principio DRY</li>
<li>No escribes SQL a menos que sea absolutamente necesario</li>
<li>Excelente desempeño</li>
</ul>
<h3>Componentes mas usados</h3>
<p>Django cuenta con muchas librerías geniales que te ahorran mucho trabajo las mas relevantes son :</p>
<ul>
<li>Libreria de ORM para comunicarte con la DB como objetos</li>
<li>Despachador de URL</li>
<li>Administrador</li>
<li>Gestor de usuarios &lt;3</li>
<li>Internacionalización</li>
<li>Csfr</li>
<li>Comentarios</li>
<li>Geolocalización</li>
<li>Manejo de sesiones</li>
<li>Cache</li>
<li><a href="http://djangopony.com/">Y ponies claro…</a></li>
</ul>
<h3>Arquitectura de Django</h3>
<p>Como cualquier framework web Django se encarga mendiante tus instrucciones en sus distintos modulos acoplar todo para que se sirvan páginas dinámicas. La estructura de Django es la siguiente.</p>
<p><a href="http://walhez.com/wp-content/uploads/2011/05/Captura-de-pantalla-2011-05-12-a-las-04.48.10.png"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  title="Captura de pantalla 2011-05-12 a las 04.48.10" src="http://walhez.com/wp-content/uploads/2011/05/Captura-de-pantalla-2011-05-12-a-las-04.48.10.png" alt="" width="459" height="409"></a></p>
<p>Por ahora este tutorial lo dejaremos hasta aquí. En las siguientes entregas incluiremos como instalar, configurar y empezar un proyecto. Tambien aprenderemos a manejar Modelos, y las nuevas Class Views.</p>
<p>Gracias especiales a <a href="http://fitoria.net/">Adolfo Fitoria</a>, <a href="http://twitter.com/jaimeirurzun">Jaime Irurzun</a> y <a href="http://twitter.com/jorgebastida">Jorge Bastida</a></p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/05/python-y-django-%c2%bfcomo-empezar/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Presentando Walhez comparte</title>
		<link>http://walhez.com/2011/02/presentando-walhez-comparte/</link>
		<comments>http://walhez.com/2011/02/presentando-walhez-comparte/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 09:08:02 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Walhez]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Siendo honestos en el mercado de los blogs hay muy poco que inovar y evolucionar. Es un mercado un poco saturado y siendo relalistas una buena manera de llamar la atención es implementando nuevas cosas. Ahora presentamos Walhez Comparte, esta es una herramienta que tanto tu como nosotros podamos compartir enlaces de cosas interesantes rapidamente. ]]></description>
			<content:encoded><![CDATA[<p><a href="http://walhez.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-02.43.00.png"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  title="Captura de pantalla 2011-02-13 a las 02.43.00" src="http://walhez.com/wp-content/uploads/2011/02/Captura-de-pantalla-2011-02-13-a-las-02.43.00-630x160.png" alt="" width="630" height="160"></a>Siendo honestos en el mercado de los blogs hay muy poco que inovar y evolucionar. Es un mercado un poco saturado y siendo relalistas una buena manera de llamar la atención es implementando nuevas cosas. Ahora presentamos Walhez Comparte, esta es una herramienta que tanto tu como nosotros podamos compartir enlaces de cosas interesantes rapidamente. El objetivo es convertir el FrontPage en algo más dinámico. Justo como sucede en sitios como digg, twitter o el wall en facebook.</p>
<p>Vamos por etapas. Probaremos primero nuestra caja de envios. En esta podrás publicar un link rapidamente muy similar al wall de facebook. No importa si lo que publicas es tu startup, un descubrimiento, un tip o un enlace a tu blog. Si tu link es bueno lo publicaremos.</p>
<p>No estoy seguro si una locura así pueda funcionar, pero al menos debemos intentarlo. Esperaremos sus links y pueden ver los ya publicados en <a href="http://walhez.com/comparte">Comparte</a></p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/02/presentando-walhez-comparte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pinterest : El catalogo social de cosas que te gustan [ Invitaciones ]</title>
		<link>http://walhez.com/2011/01/pinterest-el-catalogo-social-de-cosas-que-te-gustan-invitaciones/</link>
		<comments>http://walhez.com/2011/01/pinterest-el-catalogo-social-de-cosas-que-te-gustan-invitaciones/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 21:28:54 +0000</pubDate>
		<dc:creator>ajamaica</dc:creator>
				<category><![CDATA[GDideas]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[El día de ayer recibí una invitación a Pinterest. Este es un servicio de bookmarking de cosas que te gustan presentadas en una interfaz muy novedosa. Su objetivo es agrupar y clasificar estas cosas en catálogos. Este servicio desde de punto de vista tiene lo adictivo de Tumblr, la utilidad de Del.icio.us, la calidad de flickr, ]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-11979" href="http://walhez.com/2011/01/pinterest-el-catalogo-social-de-cosas-que-te-gustan-invitaciones/pinteres_home_1309919217106/"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  class="aligncenter size-large wp-image-11979" title="Pinteres_Home_1309919217106" src="http://walhez.com/wp-content/uploads/2011/01/Pinteres_Home_1309919217106-600x250.png" alt="" width="600" height="250" /></a></p>
<p>El día de ayer recibí una invitación a <a href="http://pinterest.com/">Pinterest</a>. Este es un servicio de bookmarking de cosas que te gustan presentadas en una interfaz muy novedosa. Su objetivo es agrupar y clasificar estas cosas en catálogos. Este servicio desde de punto de vista tiene lo adictivo de Tumblr, la utilidad de Del.icio.us, la calidad de flickr, y genera la sorpresa de Stumble Upon.</p>
<p>Llevo un buen rato usando la herramienta y no paro de sorprenderme de las geniales cosas que me encuentro. Si desean invitaciones pueden solicitarlas a través de un comentario.</p>
<p><strong>Update</strong>: No es necesario que pongan su correo en el comentario, únicamente con escribirlo en la parte email del formulario de comentario es suficiente.</p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/01/pinterest-el-catalogo-social-de-cosas-que-te-gustan-invitaciones/feed/</wfw:commentRss>
		<slash:comments>48</slash:comments>
		</item>
		<item>
		<title>@ERVMX Ganador del PvZ</title>
		<link>http://walhez.com/2011/01/ervmx-ganador-del-pvz/</link>
		<comments>http://walhez.com/2011/01/ervmx-ganador-del-pvz/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 02:30:36 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[GDideas]]></category>
		<category><![CDATA[Walhez]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Felicidades a Ernesto Reyes @ERVMX por ganar la copia de Plan Vs Zombies que walhez regalo para cerrar el año]]></description>
			<content:encoded><![CDATA[<p><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  title="Captura de pantalla 2011-01-02 a las 20.23.48" src="http://walhez.com/wp-content/uploads/2011/01/Captura-de-pantalla-2011-01-02-a-las-20.23.48.png" alt="" width="174" height="202"></p>
<p>Felicidades a Ernesto Reyes @ERVMX por ganar la copia de Plan Vs Zombies que walhez regalo para cerrar el año.</p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2011/01/ervmx-ganador-del-pvz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iniciando en desarrollo del iPhone</title>
		<link>http://walhez.com/2010/12/iniciando-en-desarrollo-del-iphone-2/</link>
		<comments>http://walhez.com/2010/12/iniciando-en-desarrollo-del-iphone-2/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 22:31:52 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[GDideas]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Muy molesto por el poco contenido en español que existia sobre el Objective C y los tutoriales que requieren un poco de conocimiento tecnico he decidido comenzar una serie de tutoriales basados en mis apuntes. A esto lo he llamado el Walhez Learning Center y publicaré paulatinamente (espero uno a la semana) textos con los pasos puntuales para herramientas ]]></description>
			<content:encoded><![CDATA[<p><a href="http://walhez.com/wp-content/uploads/2010/12/Develop-on-your-Mac.png"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  title="Develop on your Mac" src="http://walhez.com/wp-content/uploads/2010/12/Develop-on-your-Mac.png" alt="" width="328" height="282"></a>Muy molesto por el poco contenido en español que existia sobre el Objective C y los tutoriales que requieren un poco de conocimiento tecnico he decidido comenzar una serie de tutoriales basados en mis apuntes. A esto lo he llamado el <strong>Walhez <a href="http://walhez.com/category/learning-center">Learning Center</a></strong> y publicaré paulatinamente (espero uno a la semana) textos con los pasos puntuales para herramientas como : Django, CodeIgniter, WordPress, Apache, Android, Blackberry OS, entre otras cosas que he aprendido. Quizá me lleve la vida haciendo esto pero creo que vale la pena.</p>
<p>Todo el tutorial es paso por paso y utiliza el paquete de developer en Ingles. No explicare mucho de la sintaxis de Objective C revisa <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html">http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction</a></p>
<p><strong>Cosas que aprenderas</strong></p>
<p>En el siguiente curso aprenderas:</p>
<ul>
<li>Como usar <strong>Xcode</strong> y poder configurar aplicaciones del tipo  <strong>View-Based Application</strong>.</li>
<li>Como usar el <strong>Interface Builder</strong> para crear xib y views.</li>
<li>Como usar y entender los <strong>IBOutlet. </strong>En otras palabras la instancia que permite conectar Variables de instancia con el Interface Builder.</li>
<li>Como usar  y entender las <strong>IBAction.</strong> En  Otras palabras la instancia que permite conectar eventos del Interface Builder con sus respectivos manejadores de eventos.</li>
<li>Como usar Drag-and-Drop para conectar los elementos del Interface Builder con variables de Instancia en los controladores.</li>
<li>Como usar Drag-and-Drop para conectar los eventos del Interface Builder con variables de Instancia en los controladores.<img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  title="More..." src="http://walhez.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt=""></li>
</ul>
<p><span></span></p>
<h2>Prerequisitos</h2>
<p>Seguirnos en Twitter  como @walhezblog.</p>
<p>Tener una Mac.</p>
<p>Tener instalado y configurado el IOS 4.2 Developer Kit.</p>
<h2>Crear un nuevo proyecto en Xcode</h2>
<p>Para crear un proyecto en OBjective C sigue los siguientes pasos.</p>
<ol>
<li>Si Xcode no esta ejecutandose:
<ol>
<li>Abre el Finder (el icono de la carita en el Doc).</li>
<li>En el panel izquierdo, da click en <strong>Macintosh HD</strong>.</li>
<li>En el panel derecho, Da click en el folder <strong>Developer</strong>.</li>
<li>Da click en el folder <strong>Applications</strong>.</li>
<li>Da click en el icono de <strong>Xcode</strong></li>
</ol>
</li>
<li>Con Xcode Ejecutando se:
<ol>
<li>Ve a File &gt; New Project</li>
<li>En el panel Izquierdo, selecciona <strong>Application</strong> dentro de la sección de <strong>iPhone OS</strong>.</li>
<li>En el panel Derecho de la misma ventana, selecciona <strong>View-Based Application</strong>. (Importante: Selecciona <strong>View-Based Application</strong> y nada mas)</li>
<li>Da click en el botón <strong>Choose</strong>.</li>
<li>Ingresa un nombre, para este tutorial utilizaré <strong>Counter</strong> como nombre de proyecto.</li>
<li>Da click en <strong>Save</strong>.</li>
</ol>
</li>
<li>Xcode a creado un par de archivos y carpetas de manera automatica. Explicaremos después como funciona cada una de estas.</li>
<li>Da click en <strong>Build and Go </strong>para poder visualizar tu aplicación en el simulador.</li>
<li>Veras que se abre una aplicación con un fondo gris.:</li>
</ol>
<p>El proximo paso es crear nuestra interfaz.</p>
<h2>Acerca del Interface Builder</h2>
<p>Mientras que Xcode es para aventar código, el Interface Buildig es para desarrollar interfaces.Esta herramienta te servirá en este tutorial para:</p>
<ol>
<li>Arrastrar y soltar 2 controles, el <strong>UILabel</strong> y el <strong>UIButton</strong>, en la vista. Poscicionarlos en su lugar final para el usuario.  El <strong>UILabel</strong> mostrara el valor del contador que construimos, mientras que el <strong>UIButton</strong> aumentará el valor.</li>
<li>Utilizaremos <strong>IBOutlet</strong> para conectar nuestro Label con una variable local en Xcode.</li>
<li>Utilizaremos tambien  los <strong>IBAction</strong> para poder detectar eventos dentro de las ventanas para ejecutar metodos en Xcode.</li>
</ol>
<p>Tanto el Interface Builder como Xcode son herramientas diferentes, muchas veces dejan de sincronizarse. Ten cuidado de como es que trabajas y estate atento de todo lo que se crea.</p>
<h2>Empezando el Interface Builder</h2>
<p>Para corre el Interface Builder:</p>
<ol>
<li>En Xcode en la ventana de <strong>File Name</strong>,veras el <em>CounterViewController.xib</em>. ( o [nombre de tu proyecto]ViewController.xib)</li>
<li>Da doble click en <em>CounterViewController.xib</em>.( o [nombre de tu proyecto]ViewController.xib)</li>
<li>Se abrirá el Interface Builder así como muchas otras ventanas.</li>
</ol>
<h2>Interface Builder :  File’s Owner</h2>
<p>En el Interface Builder veras una serie de 3 iconos en una ventana pequeña cuadrada :</p>
<ol>
<li><strong>File’s Owner</strong>. Este icono conecta el la interface con la clase en Xcode.</li>
<li><strong>First Responder</strong>. Ignoremos por ahora.</li>
<li><strong>View</strong>. Esta es la vista actual del proyecto que trabajamos.</li>
</ol>
<p>EL Icono que dice  <strong>File’s Owner</strong> muestra la definición de la clase que maneja esta vista en Xcode. Para poder usar una vista con un controlador lee lo siguiente:</p>
<ol>
<li>En la ventana pequeña veras 3 iconos. Juntos se llaman <strong>View Mode</strong>.</li>
<li>Por default todos están en <strong>icon view mode</strong>.</li>
<li>Si haces click en el boton de en medio podrás ver  <strong>Name</strong> (nombre) y su <strong>Type</strong> (tipo ) de cada uno de los iconos. En la columna de tipo podrás ver la herencia de cada elemento.</li>
<li>Repitamos el  <strong>File’s Owner</strong> asocia el archivo de vista xib con la determinada clase en Xcode. Es el contector. Para poder conectarlo desde el código utilizaremos la instancia <strong>IBOutlet</strong> y la instancia <strong>IBAction </strong>que veremos después.</li>
</ol>
<h2>Usando el Interface Builder Para hacer vistas</h2>
<p>Para poder trabajar con el Interface Builder sigue los siguientes pasos:</p>
<ol>
<li>En Interface Builder, haga doble clic en el icono de <strong>View</strong> que está en la misma ventana que el <strong>File’s Owner</strong> y the <strong>First Responder</strong>.</li>
<li>Usted debe observar una ventana llamada <strong>View</strong> abierta (it may already be open).</li>
<li>Observe que el color de fondo de la vista es de color gris.</li>
<li>Usa el menu del Interface Builder y selecciona <strong>Tools &gt; Library</strong>.</li>
<li>Observa  una ventana llamada Library.</li>
<li>En la ventana Library, observa que hay una colección de  <strong>Objects/Classes/Media</strong>. Por ahora nos concentraremos con los objetos unicamente.</li>
<li>Observa la palabra <strong>Library </strong>que esta debajo del boton Objects/Classes/Media.</li>
<li>Da click en la flecha de la caja donde esta la palabra Library, verás lo siguiente:
<ol>
<li>Cocoa Touch Plugin</li>
<li>Custom Objects</li>
</ol>
</li>
<li>Dentro de <strong>Cocoa Touch Plugin</strong>, Veras:
<ol>
<li>Controllers</li>
<li>Data Views</li>
<li>Inputs &amp; Values</li>
<li>Windows, Views &amp; Bars</li>
</ol>
</li>
<li>Da click en <strong>Inputs &amp; Values</strong>.</li>
<li>Observaras como se desplaza y veras una serie de componentes de IU, como el <strong>Label</strong> (UILabel).</li>
<li>Da cick en <strong>Label</strong>, abajo veras su descripción.</li>
<li>Arrastra el icono de <strong>Label</strong> de la <strong>Library</strong> a tu ventana <strong>View</strong>. Colócalo por la mitad</li>
<li>Selecciona Label en la ventana View, ve a <strong>Tools &gt; Attributes Inspector</strong>.</li>
<li>Observaras los Atributos del objeto Label, como Text, Baseline, Layout, y  otros.</li>
<li>Para este caso configura el Label de la siguiente maneta:
<ol>
<li>Layout: Centered</li>
<li>Font Size: 28</li>
</ol>
</li>
<li>Regresa a la ventana Library, ahora arrastra un <strong>Round Rect Button</strong> a <strong>View</strong>.</li>
<li>Haz mas grande tu botón pero sin pasarte de las lineas Azules. Steve Jobs ha definido varias buenas practicas de diseño y entre ellas es el evitar tocar los bordes.</li>
<li>Dale doble click al Botón y cambia el texto  a “Sumar”.</li>
<li>Ahora regresa a XCode. Puedes usar cmd +tab</li>
<li>En Xcode da click en<strong> Build and Go</strong>.</li>
<li>Observa como ya funciona tu botón y se puede ver el label. En el simulador.</li>
<li>Presiona Home (el unico boton frontal del iPhone) y pararas la simulación.</li>
</ol>
<p>Ahora trabajaremos sobre Xcode para poder agregar funcionalidad.</p>
<h2>Agregando un IBOutlet a las cabeceras de nuestro controlador  (CounterViewController.h)</h2>
<p>Nota: usaremos CounterViewController.h puede que no sea tu caso pero debe de ser algo como <em>[nombre de tu proyecto]ViewController.h</em></p>
<p>El <strong>IBOutlet, </strong>repetimos sirve para poder comunicar nuestros objetos de vista con nuestro Código.</p>
<p>Para esta aplicación utilizaremos el Botón y el label que hemos creado.</p>
<ol>
<li>En Xcode, Da click en <em>CounterViewController.h</em> para usar el editor de texto.</li>
<li>Ahorita no hemos modificado nada así que tu código se verá algo así:</li>
</ol>
<ul>
<li>
<ul>
<li><span style="color:#643820"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">#import </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">&lt;UIKit/UIKit.h&gt;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@interface</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> CounterViewController : UIViewController {<br />
}<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@end<br />
</span></span></span></li>
</ul>
</li>
</ul>
<ol>
<li>Agregaremos 2 variables de instancia:</li>
</ol>
<ul>
<li>
<ul>
<li><span style="color:#643820"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">#import </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">&lt;UIKit/UIKit.h&gt;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@interface</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> CounterViewController : UIViewController {<br />
</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UILabel</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *label;<br />
</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIButton</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *button;<br />
}<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@end<br />
</span></span></span></li>
</ul>
</li>
</ul>
<ol>
<li>Crea 2 <strong>Property </strong>para ambas instancias (una cosa rarísima que te permite “transportar” tus variables de instancia ), Usa <strong>IBOutlet</strong> para decirle a la clase que acceda al socket que permite la conexión con el Interface Builder:</li>
</ol>
<ul>
<li>
<ul>
<li><span style="color:#643820"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">#import </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">&lt;UIKit/UIKit.h&gt;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@interface</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> CounterViewController : UIViewController {<br />
</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UILabel</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *label;<br />
</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIButton</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *button;<br />
}<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@property</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">nonatomic</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">, </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">retain</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">) </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">IBOutlet</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UILabel</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *label;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@property</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">nonatomic</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">, </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">retain</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">) </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">IBOutlet</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIButton</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *button;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@end<br />
</span></span></span></li>
</ul>
</li>
</ul>
<ol>
<li>Da click en <strong>Build and Go</strong>.</li>
<li>Tu aplicación deberá correr sin problemas. Esto que hicimos en este archivo nos permite conectar nuestras vistas y controladores. Toca implementar la funcionalidad en el archivo .m</li>
<li>Presiona Home para parar el simulador.</li>
</ol>
<p><strong>Agregar variables de instancia a CounterViewController.m</strong></p>
<p>Si bien tus variables ya están declaradas en el archivo .h file, ahora tenemos que poder acceder a ellas en el archivo .m.</p>
<ol>
<li>En Xcode ve a  CounterViewController.m da le click para abrir el editor.</li>
<li>Como no haz editado nada tu proyecto se verá así:</li>
</ol>
<ul>
<li>
<ul>
<li><span style="color:#643820"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">#import </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">“CounterViewController.h”<span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@implementation</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> CounterViewController<br />
</span></span></span></p>
<p></span></span></span></li>
</ul>
</li>
</ul>
<ol>
<li>Debajo de <strong>@implementation</strong>, agregaremos la palabra <strong>@synthesize</strong> seguida de nuestras variables de instancia:
<ol>
<li><span style="color:#643820"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">#import </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">“CounterViewController.h”<span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@implementation</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> CounterViewController</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@synthesize</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> label;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@synthesize</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> button;<br />
</span></span></span></p>
<p></span></span></span></li>
</ol>
</li>
<li>Da scroll dentro de .m y encontraras algo como esto:</li>
</ol>
<ul>
<li>
<ul>
<li><span style="font-family:Monaco, monospace"><span style="font-size:x-small"><span style="color:#007400">/*</span></span></span><br />
<span style="color:#007400"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.<br />
- (void)viewDidLoad {<br />
[super viewDidLoad];<br />
}<br />
*/<br />
</span></span></span></li>
</ul>
</li>
</ul>
<ol>
<li>Este método se usa para poder ejecutar algo justo cuando se termine de cargar el view.</li>
<li>Remueve los comentarios y agrega esto. Lo que asemos es inicializar las variables cuando se termina de cargar <strong>View</strong>:</li>
</ol>
<ul>
<li>
<ul>
<li><span style="font-family:Monaco, monospace"><span style="font-size:x-small"><span style="color:#007400">// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.<br />
</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">- (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">void</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">)viewDidLoad {<br />
[</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">super</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">viewDidLoad</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">];</p>
<p><span style="color:#007400"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">// Initialize values of the controls<br />
</span></span></span><span style="color:#3f6e74"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">label</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">.</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">text</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> = </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@”0?</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">;<br />
[</span></span></span><span style="color:#3f6e74"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">button</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">setTitle</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">:</span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@"Press to Increment Count"</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">forState</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">:</span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIControlStateNormal</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">];<br />
}<br />
</span></span></span></p>
</p>
<p></span></span></span></li>
</ul>
</li>
</ul>
<ol>
<li>Da click en<strong> Build and Go</strong>.</li>
<li>Tu app debe verse justo como antes. La aplicación no hace aun nada..</li>
</ol>
<p><strong>Conectemos el Interface Builder con nuestra clase usando IBOutlets</strong></p>
<p>Ahora conectaremos el Interface Builder usando IBOutlets directo al código de Xcode.</p>
<ol>
<li>Vamos al Interface Builder donde nos quedamos</li>
<li>Abre CounterViewController.xib desde Xcode. Da click on File’s Owner para seleccionarlo.</li>
<li>Usa el menu del Interface Builder para ir a<strong> Tools &gt; Connections Inspector.</strong></li>
<li>Observaras las conexiones de esta vista con el controlador de nuestra aplicación.</li>
<li>Observa la lista de IBOutlets disponibles:
<ol>
<li>button</li>
<li>label</li>
<li>navigationItem</li>
<li>tabBarItem</li>
</ol>
</li>
<li>Observa que hay un pequeño circulo al final de los nombres.</li>
<li>Concentrate en el “button”, usa control click sobre el circulo y arrastrado al botón que generaste en el view. Verás una especie de tubería.</li>
<li>Ahora tu Botón esta conectado con el objeto instanciado como button en la clase controlador de Xcode.</li>
<li>Repitamos para entender mejor:
<ol>
<li>Da click en File’s Owner</li>
<li>Ve a Tools &gt; Connections Inspector</li>
<li>Usa control + click para arrastar la pipa al botón.</li>
</ol>
</li>
<li>Repite el proceso para el Outlet “label” Pero ahora unelo a tu Label.</li>
<li>Salva, Regresa a Xcode</li>
<li><strong>Build and Go.</strong></li>
<li>Ahora verás que el Label ya tiene “0? en lugar de la palabra label y el botón tambien debió haber cambiado</li>
<li>Sal del simulador</li>
</ol>
<p><strong>Agrega una IBAction </strong><strong>las cabeceras de nuestro controlador (</strong><strong> CounterViewController.h )</strong></p>
<p>Una IBAction permite trabajar con los eventos de la interface directamente en el código. Por ejemplo, cuando alguien presione nuestro botón.</p>
<p>Para esta aplicación definiremos un IBAction en nuestra cabecera (el archivo .h).</p>
<ol>
<li>En Xcode ve a <em>CounterViewController.h</em>. Veras el editor</li>
<li>Para este punto tu código se verá así:</li>
</ol>
<ul>
<li>
<ul>
<li><span style="color:#643820"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">#import </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">&lt;UIKit/UIKit.h&gt;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@interface</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> CounterViewController : UIViewController {<br />
</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UILabel</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *label;<br />
</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIButton</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *button;<br />
}<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@property</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">nonatomic</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">, </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">retain</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">) </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">IBOutlet</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UILabel</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *label;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@property</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">nonatomic</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">, </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">retain</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">) </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">IBOutlet</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIButton</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *button;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@end<br />
</span></span></span></li>
</ul>
</li>
</ul>
<ol>
<li>Agregamos el Método que cachará la acción al final:
<ol>
<li><span style="color:#643820"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">#import </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">&lt;UIKit/UIKit.h&gt;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@interface</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> CounterViewController : UIViewController {<br />
</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UILabel</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *label;<br />
</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIButton</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *button;<br />
}<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@property</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">nonatomic</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">, </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">retain</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">) </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">IBOutlet</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UILabel</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *label;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@property</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">nonatomic</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">, </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">retain</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">) </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">IBOutlet</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIButton</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> *button;<br />
- (IBAction) do_button_press:(id) sender;<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@end<br />
</span></span></span></li>
</ol>
</li>
<li><strong>Ve a Build &gt; Build</strong>.</li>
<li>Veras un icono amarillo en la parte de abajo.</li>
<li>Dale click a ese icono, una ventana llamada <strong>Build Results</strong> se abrirá.</li>
<li>En esta ventana nos informa que el metodo <em>do_button_press</em> esta escrito en la cabecera pero  no está implementado.</li>
</ol>
<p><strong>Implementar una IBAction en CounterViewController.m</strong></p>
<p>En este ejercicio implementaremos do_button_press en el CounterViewController.</p>
<ol>
<li>Eb Xcode, da click en <em>CounterViewController.m, </em>verás el editor</li>
<li>Dale scroll y verás lo que programamos anterior mente en el archivo:</li>
</ol>
<ul>
<li>
<ul>
<li><span style="color:#007400"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.<br />
</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">- (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">void</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">)viewDidLoad {<br />
[</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">super</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">viewDidLoad</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">];</p>
<p><span style="color:#007400"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">// Initialize values of the controls<br />
</span></span></span><span style="color:#3f6e74"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">label</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">.</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">text</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> = </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@”0?</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">;<br />
[</span></span></span><span style="color:#3f6e74"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">button</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">setTitle</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">:</span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@"Press to Increment Count"</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">forState</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">:</span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIControlStateNormal</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">];<br />
}<br />
</span></span></span></p>
</p>
<p></span></span></span></li>
</ul>
</li>
</ul>
<ol>
<li>Agrega el metodo do_button_press después del  viewDidLoad code:
<ol>
<li><span style="color:#007400"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.<br />
</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">- (</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">void</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">)viewDidLoad {<br />
[</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">super</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">viewDidLoad</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">];</p>
<p><span style="color:#007400"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">// Initialize values of the controls<br />
</span></span></span><span style="color:#3f6e74"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">label</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">.</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">text</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> = </span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@”0?</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">;<br />
[</span></span></span><span style="color:#3f6e74"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">button</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">setTitle</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">:</span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@"Press to Increment Count"</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">forState</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">:</span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">UIControlStateNormal</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">];<br />
}</span></span></span></p>
<p>- (<span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">IBAction</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">) do_button_press:(</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">id</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">)sender {<br />
</span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">static</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#aa0d91"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">int</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> count = </span></span></span><span style="color:#1c00cf"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">0</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">;<br />
count++;<br />
</span></span></span><span style="color:#3f6e74"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">label</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">.</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">text</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> = [</span></span></span><span style="color:#5c2699"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">NSString</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small"> </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">stringWithFormat</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">:</span></span></span><span style="color:#c41a16"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">@"%d\n"</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">, </span></span></span><span style="color:#2e0d6e"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">count</span></span></span><span style="color:#000000"><span style="font-family:Monaco, monospace"><span style="font-size:x-small">];<br />
}</span></span></span></p>
</p>
<p></span></span></span></li>
</ol>
</li>
<li><strong>Build and Go</strong>.</li>
<li>Si todo sale bien, veras la aplicación como la habíamos dejado. El botón a un no funciona por que no lo hemos conectado con el método correspondiente</li>
</ol>
<h2>Usando el Interface Builder para conectarlo con el IBAction</h2>
<p>In this exercise, you will use Interface Builder to connect the event from the button to the IBAction code in your Xcode source code.</p>
<ol>
<li>Presiona Command+Tab para ir al Interface Builder.</li>
<li>En tu vista del Interface Builder  ve a la ventana llamada <strong>View. </strong>Selecciona el botón</li>
<li>Usa el menu y ve a <strong>Tools &gt; Connections Inspector</strong>.</li>
<li>Observaras la las conexiones asociadas al <strong>Button</strong>.</li>
<li>Esta es la lista de eventos:
<ol>
<li>Did End On Exit</li>
<li>Editing Changed</li>
<li>Editing Did Begin</li>
<li>…</li>
<li>Touch Up Inside</li>
<li>…</li>
</ol>
</li>
<li>Cada una tiene tambien un pequeño circulo que igual puede arrastrarse,.</li>
<li>Asegurate que la ventana de CounterViewController.xib visible</li>
<li>Observa el evento <strong>Touch Up Inside</strong> del <strong>Button. </strong>Usa control + click sobre el circulo dele vento <strong>Touch Up Inside</strong> y arrastralo a <strong>File’s Owner</strong></li>
<li>Cuando sueltas el botón sobre <strong>File’s Owner</strong>, verás una ventana donde aparece el método <strong>do_button_press. </strong>Seleccionalo y listo. Haz terminado de implementar la coneción</li>
<li>Cada que le des click al botón (se ejecuta el evento Touch Up Inside ) se ejecutará do_button_press.</li>
<li>Repitamos esto es muy importante. :
<ol>
<li>Da click en el <strong>Button</strong> de la ventana.</li>
<li>Ve a Tools &gt; Connections Inspector</li>
<li>Usa control + click sobre el evento “Touch Up Inside”  y arrastralo a File’s  Owner .</li>
<li>Cuando lo sueltes elije<strong> do_button_press</strong></li>
</ol>
</li>
<li>Regresa a Xcode</li>
<li><strong>Build and Go</strong>.</li>
<li>Ahora cada vez que utilices el botón el contador se incrementará</li>
<li>Presiona Home para salir</li>
</ol>
<p>Con esto terminamos este largo tutorial de iniciación para programación en el iPhone. Siente libre de mandarme un mail con dudas a iPhone@arturojamaica.com o de dejar un comentario con dudas</p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2010/12/iniciando-en-desarrollo-del-iphone-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wikileaks: The game en Flash</title>
		<link>http://walhez.com/2010/12/wikileaks-the-game-en-flash/</link>
		<comments>http://walhez.com/2010/12/wikileaks-the-game-en-flash/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 17:33:12 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[GDideas]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[La cobertura mediática que ha tenido Wikileaks y sus mas recientes filtraciones que hicieron temblar la diplomacia estadounidense es tal, que hasta ya se ha hecho un videojuego en Flash. En el juego tienes que robar 300,000 documentos de la laptop de Obama mientras el descansa y si eres visto se te acusaran de cargos ]]></description>
			<content:encoded><![CDATA[<p>
<small></small><br />
La cobertura mediática que ha tenido Wikileaks y sus mas recientes filtraciones que hicieron temblar la diplomacia estadounidense es tal, que hasta ya se ha hecho un videojuego en Flash. En el juego tienes que robar 300,000 documentos de la laptop de Obama mientras el descansa y si eres visto se te acusaran de cargos de abuso sexual.</p>
<p>Lo próximo  es una película sobre Wikileaks y su fundador Julian Assange.</p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2010/12/wikileaks-the-game-en-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instrucciones para apoyar a wikileaks con ataques de DDOS</title>
		<link>http://walhez.com/2010/12/instrucciones-para-apoyar-a-wikileaks-con-ataques-de-ddos/</link>
		<comments>http://walhez.com/2010/12/instrucciones-para-apoyar-a-wikileaks-con-ataques-de-ddos/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 19:49:56 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[GDideas]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[¿Quieres ayudar a wikileaks? Esta es una traducción a las traducciones de el grupo Anonymous para poder coordinar ataques de DDOS (negación de servicio) a sitios internacionales. Existen soluciones para Windows, Mac  y Linux. Existe la opción de usar HIVEMIND y permitir que tu maquina sea controlada de manera voluntaria para lanzar un ataque. Cabe ]]></description>
			<content:encoded><![CDATA[<p><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  title="anonymous" src="http://walhez.com/wp-content/uploads/2010/12/anonymous.jpeg" alt="" width="269" height="317"></p>
<p>¿Quieres ayudar a wikileaks? Esta es una traducción a las traducciones de el grupo Anonymous para poder coordinar ataques de DDOS (negación de servicio) a sitios internacionales. Existen soluciones para Windows, Mac  y Linux. Existe la opción de usar HIVEMIND y permitir que tu maquina sea controlada de manera voluntaria para lanzar un ataque. Cabe señalar que en ningun momento pones en riesgo los datos de las grandes organizaciones. Realmente lo unico que haces es saturar sus servidores evitando ofrecer su servicio. Las instrucciones son las siguientes</p>
<h2>Windows</h2>
<p><strong>Para XP</strong> Debes descargar el <a href="http://half-open.com/download_en.htm">Half-Open connections fix</a>.</p>
<ol>
<li><a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;displaylang=en">Debes tener el  MS .NET Framework 3.5</a> o <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&amp;displaylang=en">4.0</a></li>
<li><a href="https://github.com/downloads/NewEraCracker/LOIC/loic.1.1.1.14.zip">Desgacarga Hivemind LOIC</a> descomprimelo y dejalo en tu escritorio.</li>
<li> Inicia LOIC.exe</li>
<li><strong>Servidor: </strong>loic.AnonOps.net (hay otros servidores en .AnonOps.info)</li>
<li><strong>Canal:</strong> #loic</li>
<li>Selecciona el modo “hivemind mode”</li>
<li>Sientate y disfruta.</li>
</ol>
<h2>MAC/Linux</h2>
<p><strong>Descarga el JavaLOIC</strong><strong>:</strong> <a href="http://www.mediafire.com/?v71xomi7aogto92">Download</a></p>
<ul>
<li>Descarga JavaLOIC</li>
<li>Ingresa una Target <em>URL</em> o <em>IP</em> da click en FIRE! (las instrucciones de ataque están en su twitter o en irc)</li>
<li>unete al #setup en cualquiera de sus servidores IRC usando Colloquy o cualquier cliente IRC</li>
</ul>
<h2>Terminal</h2>
<ul>
<li>Ejecuta esto en tu terminal <a href="http://pastebin.com/pMw4zE2z">http://pastebin.com/pMw4zE2z</a></li>
<li><a href="http://pastebin.com/pMw4zE2z"></a>Servidor: loic.AnonOps.net (hay otros servidores en .AnonOps.info)</li>
</ul>
<p>Para mas información @op_payback | <a rel="me nofollow" href="http://anonops.net/">http://anonops.net</a> | <a rel="me nofollow" href="http://anonops.net/">http://anonops</a>.info</p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2010/12/instrucciones-para-apoyar-a-wikileaks-con-ataques-de-ddos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurar resolucion de pantalla en Ubuntu y hacerla persistente</title>
		<link>http://walhez.com/2010/11/configurar-resolucion-de-pantalla-en-ubuntu-y-hacerla-persistente/</link>
		<comments>http://walhez.com/2010/11/configurar-resolucion-de-pantalla-en-ubuntu-y-hacerla-persistente/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 18:25:14 +0000</pubDate>
		<dc:creator>Walter Hernandez</dc:creator>
				<category><![CDATA[GDideas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Manuales y Revistas]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Cuando se trata de configurar la resolución de pantalla que nos gustaría tener en Ubuntu 10.10 (es la versión que estoy usando actualmente), se complica un poco especialmente cuando eres un usuario que esta empezando a conocer esta distribución de Linux (como yo jeje). En un mini-tutorial anterior les había explicado como agregar su propia configuración ]]></description>
			<content:encoded><![CDATA[<p><a href="http://walhez.com/wp-content/uploads/2010/11/Pantallazo.png"><img onError="javascript: wp_broken_images = window.wp_broken_images || function(){}; wp_broken_images(this);"  title="Resolucion de Pantalla Persistente en Ubuntu 10.10" src="http://walhez.com/wp-content/uploads/2010/11/Pantallazo-630x394.png" alt="" width="630" height="394"></a></p>
<p>Cuando se trata de configurar la resolución de pantalla que nos gustaría tener en Ubuntu 10.10 (es la versión que estoy usando actualmente), se complica un poco especialmente cuando eres un usuario que esta empezando a conocer esta distribución de Linux (como yo jeje).</p>
<p>En un mini-tutorial anterior les había explicado como agregar su propia <a href="http://walhez.com/2010/10/cambiar-la-resolucion-de-pantalla-desde-la-consola-en-ubuntu-10-10/"><strong>configuración de resolucion de pantalla en Ubuntu 10.10 a traves de la consola de comandos </strong></a>pero no especifique otros detalles que les ayudaría a tener esta resolución persistente cada vez que inician sesión.</p>
<p>Lo primero a hacer es ejecutar el comando ctv + la resolucion escogida:<br />
<code>cvt 1280 1024</code><br />
Lo que dará como resultado:<br />
<code># 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz<br />
Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync </code></p>
<p>Ahora que si se quiere tambien definir la tasa de refrescamiento, por ejemplo yo la quiero de 60 <a href="http://es.wikipedia.org/wiki/Gigahercio">GHz</a>. Ejecuto el comando Gtf (<a href="http://en.wikipedia.org/wiki/Generalized_Timing_Formula">Generalized Timing Formula de VESA</a>) + Resolucion deseada + 60 <a href="http://es.wikipedia.org/wiki/Gigahercio">GHz</a>, así:<br />
<code>gtf 1280 1024 60.0</code><br />
Devolviendo:<br />
<code> # 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz<br />
Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync</code></p>
<p>Ahora que tenemos los datos, agregamos nuestra resolucion ejecutando:<br />
<code>xrandr --newmode modeline</code><br />
Quedando así:<br />
<code>xrandr --newmode "1280x1024_60.00" 108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync</code></p>
<p>Agregamos el nuevo modo:<br />
<code>xrandr --addmode nombre monitor nombre modeline</code><br />
Esto seria así:<br />
<code>xrandr --addmode VGA1 1280x1024_60.00</code></p>
<p>Establecemos la nueva configuracion a nuestro monitor:<br />
<code>xrandr --output VGA1 --mode 1280x1024_60.00</code></p>
<p>Ya con la resolucion de pantalla, notaran que si reinician volverán a una resolucion anterior. Para poder dejar persistente una resolucion deseada unicamente abrimos con permisos el archivo de configuraciones por default:<br />
<code>sudo gedit /etc/gdm/Init/Default</code></p>
<p>Buscamos las lineas:<br />
<code>PATH=/usr/bin:$PATH<br />
OLD_IFS=$IFS</code><br />
y debajo de ellas copiamos:<br />
<code>xrandr --newmode "1280x1024_60.00" 108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync<br />
xrandr --addmode VGA1 1280x1024_60.00<br />
xrandr --output VGA1 --mode 1280x1024_60.00</code></p>
<p>Con esto ya tenemos la configuración que queremos y no tendremos que andar modificando ningún archivo xorg.conf o creando como en pasado se hacia para este tipo de problemas.</p>
]]></content:encoded>
			<wfw:commentRss>http://walhez.com/2010/11/configurar-resolucion-de-pantalla-en-ubuntu-y-hacerla-persistente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- Quick Cache: failed to write cache. The cache/ directory is either non-existent ( and could not be created ) or it is not writable. -->
