<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3452733866338189385</id><updated>2011-07-30T12:11:05.500-05:00</updated><category term='linux'/><category term='Serialización'/><category term='programación'/><category term='POO'/><category term='css'/><category term='python'/><category term='web'/><category term='html'/><category term='electrónica'/><category term='video'/><category term='objetos'/><category term='ubuntu'/><category term='diseño'/><category term='sistemas operativos'/><category term='freelance'/><category term='Java'/><category term='clases'/><category term='dispositivos'/><category term='multimedia'/><title type='text'>En la mira del código</title><subtitle type='html'>Un poco de todo...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-5124780964129180432</id><published>2011-04-09T17:00:00.001-05:00</published><updated>2011-04-09T17:05:08.799-05:00</updated><title type='text'>Script de descarga de videos en Bash</title><content type='html'>Qué tal amigos!&lt;br /&gt;&lt;br /&gt;Pues primero que nada, mil disculpas por no haber publicado nada en este tiempo, me encontraba en proceso de desarrollo y he aquí yo para compartirles nuevos temas.&lt;br /&gt;&lt;br /&gt;Investigando un poco sobre cómo descargar videos de youtube o de alguna otra fuente, descifré la forma de &amp;nbsp;lograrlo a través de terminal. A partir de ello me puse en la tarea de elaborar un script de bash para &amp;nbsp;llevarlo a cabo.&lt;br /&gt;&lt;br /&gt;Antes de ejecutar el script, es necesario que se tenga abierta la pagina de donde esta el video y esperar a que se cargue por completo, de otra forma sólo se descargará lo que actualmente se haya cargado.&lt;br /&gt;&lt;br /&gt;Realizado lo anterior, asta con abrir una terminal y ejecutar: sh nombre_archivo.sh, seguir las instrucciones y listo!&lt;br /&gt;&lt;br /&gt;El código es el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;clear&lt;br /&gt;&lt;br /&gt;while [ opc != "" ] || [ opc != "c" ] || [ opc != "i" ]&lt;br /&gt;&lt;br /&gt;do&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;echo "** Descarga de videos ** Hecho por &amp;nbsp;Alexis Hernandez \n"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;echo -n "Escriba 'i' para obtener informacion o 'c' para continuar: "&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;read opc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if [ "$opc" = "i" ]; then&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "\n- Se ejecutara el comando lsof | grep Flash para buscar los procesos que esten utilizando Flash."&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "- Dicho proceso durara un tiempo considerable, sea paciente."&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "- Se arrojara un mensaje como en el siguiente ejemplo:"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "\nchrome &amp;nbsp; &amp;nbsp;2205 &amp;nbsp; &amp;nbsp; user &amp;nbsp; 29r &amp;nbsp; &amp;nbsp; &amp;nbsp;REG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8,4 14337439 &amp;nbsp; &amp;nbsp; 655373 /tmp/FlashXXg7HIFi (deleted)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "\n - Dado este dato se debe proprionar a est aplicacion el numero de 4 digitos (el segundo parametro) y el numero que se encuentra despues del nombre de usuario (el cuarto parametro sin la letra final 'r')"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo -n "\n&amp;gt; Presione [ENTER] para continuar"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;read l&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "\nEjecutando comando, esto tardara varios minutos..."&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;lsof | grep Flash&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo -n "Escriba el numero segundo parametro dado: "&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;read segundo&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo -n "Escriba el cuarto parametro dado (sin la letra final): "&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;read cuarto&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo -n "Escriba la ruta (y nombre de archivo) donde desea copiar el video: "&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;read directory&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;cp /proc/$segundo/fd/$cuarto $directory&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "Archivo copiado correctamente"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;elif [ "$opc" = "c" ]; then&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "\nEjecutando comando, esto tardara varios minutos..."&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;lsof | grep Flash&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo -n "Escriba el numero segundo parametro dado: "&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;read segundo&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo -n "Escriba el cuarto parametro dado: "&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;read cuarto&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo -n "Escriba la ruta (y nombre de archivo) donde desea copiar el video: "&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;read directory&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;cp /proc/$segundo/fd/$cuarto $directory&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "Archivo copiado correctamente"&lt;br /&gt;&amp;nbsp;&amp;nbsp;exit&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;else&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;echo "Opcion incorrecta, vuelva a intentar, presione [ENTER] para continuar"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;read x&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;clear&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;fi&lt;br /&gt;done&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-5124780964129180432?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/5124780964129180432/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=5124780964129180432' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/5124780964129180432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/5124780964129180432'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2011/04/script-de-descarga-de-videos-en-bash.html' title='Script de descarga de videos en Bash'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-8914672024954793974</id><published>2010-05-01T23:31:00.005-05:00</published><updated>2010-05-02T00:05:38.384-05:00</updated><title type='text'>Ubuntu 10.04 y Atheros</title><content type='html'>¡Qué tal lectores!&lt;br /&gt;&lt;br /&gt;Bueno, después de un buen tiempo sin escribir, me animo a contarles que ya he instalado la nueva versión de la distribución Ubuntu: Lucid Lynx.&lt;br /&gt;&lt;br /&gt;Trae consigo un buen número de características nuevas y una vista diferente, en lo personal no me gustó el color tan fuerte de las carpetas, pero bueno, eso no influye tanto.&lt;br /&gt;&lt;br /&gt;A pesar de todas estas mejoras me topé con que sí detectaba mi chip de Atheros pero no lograba rastrear las redes inalámbricas. He aquí algunas soluciones:&lt;br /&gt;&lt;br /&gt;Primero verificamos que realmente detecta nuestra tarjeta Atheros:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;code&gt; lspci | grep Atheros&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_N2sdxupZnG8/S9z8EuXjGXI/AAAAAAAAAHI/5InfQlzDFN4/s1600/atheros.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_N2sdxupZnG8/S9z8EuXjGXI/AAAAAAAAAHI/5InfQlzDFN4/s320/atheros.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Si sale un resultado como el anterior, significa que sí lo ha detectado correctamente. Después de ello nos encontramos con dos alternativas para hacer funcionar nuestra tarjeta:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;1.- Instalar drivers de madwifi:&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.joelsedano.com/blog/2008/08/19/atheros-wireless-en-ubuntu-gracias-a-madwifi/"&gt;http://www.joelsedano.com/blog/2008/08/19/atheros-wireless-en-ubuntu-gracias-a-madwifi/&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;2.- Instalar los paquetes de linux-backports:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;code&gt; &lt;b&gt;sudo aptitude install linux-backports-modules-wireless-lucid-generic&lt;/b&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;code&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;Posteriormente reiniciamos y quedaría listo. Este segundo método lo he seguido en algunas distribuciones anteriores y en ninguna ocasión ha fallado.&lt;br /&gt;&lt;br /&gt;¡Les mando un saludo y disfruten de esta nueva distribución!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-8914672024954793974?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/8914672024954793974/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=8914672024954793974' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/8914672024954793974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/8914672024954793974'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/05/ubuntu-1004-y-atheros.html' title='Ubuntu 10.04 y Atheros'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_N2sdxupZnG8/S9z8EuXjGXI/AAAAAAAAAHI/5InfQlzDFN4/s72-c/atheros.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-4870519404419960537</id><published>2010-03-19T09:54:00.002-06:00</published><updated>2010-03-19T10:07:17.438-06:00</updated><title type='text'>Cómo tomar screenshots en Java</title><content type='html'>Aquí les dejo un pequeño truco (curioso, por cierto) en el cual se explica cómo tomar una captura de pantalla en Java desde un código bastante corto.&lt;br /&gt;&lt;br /&gt;En esta ocasión lo haremos sin interfaz gráfica, el resultado será el mismo.&lt;br /&gt;&lt;br /&gt;Lo primero: importamos las clases que ocuparemos:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.awt.AWTException;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.awt.Dimension;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.awt.Rectangle;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.awt.Robot;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.awt.Toolkit;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.awt.image.BufferedImage;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.io.File;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.io.IOException;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; java.util.Calendar;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;import&lt;/span&gt;&lt;/b&gt; javax.imageio.ImageIO;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;... y ahora sí, vamos con la clase:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;public class&lt;/span&gt;&lt;/b&gt; ScreenshotApplication&lt;br /&gt;{&lt;br /&gt;    &lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;public static void&lt;/span&gt;&lt;/b&gt; main(String []args)&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;    {&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;        try&lt;br /&gt;        {&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;           &lt;span class="Apple-style-span" style="color: #274e13;"&gt; //Obtenemos un "ayudante"&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;            &lt;b&gt;Robot&lt;/b&gt; robot = &lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;new&lt;/span&gt;&lt;/b&gt; Robot();&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;            //Con lo siguiente sabremos qué resolución tiene nuestra pantalla&lt;/span&gt;&lt;br /&gt;            &lt;b&gt;Dimension&lt;/b&gt; d = Toolkit.getDefaultToolkit().getScreenSize();&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;            //Creamos un BufferedImage para poderlo manejar en memoria&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;            &lt;b&gt;BufferedImag&lt;/b&gt;e bi = robot.createScreenCapture(new Rectangle(d));&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;            &lt;span class="Apple-style-span" style="color: #274e13;"&gt;/*&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             * La siguiente técnica consiste en darle un nombre de archivo&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             * a partir de la hora y fecha del sistema, para poder generar&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             * archivos cuyos nombres no se repitan.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             */&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;            &lt;b&gt;String&lt;/b&gt; filename = &lt;span class="Apple-style-span" style="color: blue;"&gt;"/CualquierRuta/" &lt;/span&gt;+ Calendar.getInstance().getTime() + &lt;span class="Apple-style-span" style="color: blue;"&gt;".jpg"&lt;/span&gt;;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;            &lt;span class="Apple-style-span" style="color: #274e13;"&gt;/*&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;   &amp;nbsp;   &amp;nbsp;     * Utilizamos el método write, al que le pasamos los siguientes&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             * parámetros:&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             *&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             * 1.- Cualquier objeto de tipo Buffer, en este caso un ImageBuffer,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             *     en pocas palabras, qué va a ser guardado en el archivo.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             * 2.- El tipo de archivo&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             * 3.- La ruta donde será almacenada nuestra imágen en archivo.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; white-space: normal;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;             */&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;code&gt;            &lt;b&gt;ImageIO&lt;/b&gt;.write(bi, "jpg", new File(filename));&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;            System.out.println("¡Screenshot tomada!");&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        &lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;catch&lt;/span&gt;&lt;/b&gt; (AWTException e)&lt;br /&gt;        {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;        &lt;b&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;catch&lt;/span&gt;&lt;/b&gt; (IOException e)&lt;br /&gt;        {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Algunos procesos levantarán excepciones (en caso de que exista algún error), por lo que es necesario "cacharlos" con sus respectivos try-catch. Para una mejor comprensión del manejo de excepciones &lt;a href="http://es.wikipedia.org/wiki/Manejo_de_excepciones"&gt;visiten este enlace&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Podrán ver un resultado como el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_N2sdxupZnG8/S6Ogp577cCI/AAAAAAAAAHA/SN-3WAMFOC0/s1600-h/screenshot1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_N2sdxupZnG8/S6Ogp577cCI/AAAAAAAAAHA/SN-3WAMFOC0/s320/screenshot1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-4870519404419960537?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/4870519404419960537/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=4870519404419960537' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/4870519404419960537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/4870519404419960537'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/03/como-tomar-screenshots-en-java.html' title='Cómo tomar screenshots en Java'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_N2sdxupZnG8/S6Ogp577cCI/AAAAAAAAAHA/SN-3WAMFOC0/s72-c/screenshot1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-7757249254470094749</id><published>2010-03-17T20:58:00.000-06:00</published><updated>2010-03-17T20:58:20.826-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Tips para crear un buen sistema (Desktop o Web)</title><content type='html'>¡Qué tal lectores!&lt;br /&gt;&lt;br /&gt;Durante la vida del programador vienen proyectos, otros se van, otros se quedan una muy buena temporada sacándonos canas verdes y en otras ocasiones simplemente no viene ni uno solo (jaja si, malas rachas).&lt;br /&gt;&lt;br /&gt;Pero cuando tenemos listos los requerimientos del sistema, en muchos casos no sabemos ni cómo empezar ni mucho menos cómo quedará nuestro sistema. Para esto les dejaré algunos consejos que les podrían servir de algo:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1.- Plasma tus ideas. &lt;/b&gt;Recuerda que la mente es bastante traicionera y que todo puede quedar en el olvido. Por otro lado, el tener por escrito los requerimientos del sistema te ayudará a descartar las partes indispensables de las que no lo son.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_N2sdxupZnG8/S6GKX-uap5I/AAAAAAAAAGQ/EREyuegnYXo/s1600-h/idea-cloud.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_N2sdxupZnG8/S6GKX-uap5I/AAAAAAAAAGQ/EREyuegnYXo/s320/idea-cloud.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.- Todo por escrito. &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;C&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;uando se trata de un sistema en el que va de por medio un compromiso con algún cliente, debes dejar bien claro &lt;/span&gt;lo que tu sistema hace y lo que no hace, &lt;/b&gt;ya que en muchas ocasiones el cliente suele ser bastante &lt;s&gt;tirano&lt;/s&gt; inteligente, aprovechando lo que no se dijo para exigirte más y más. Desde luego que entre más te exige, más debe pagar... ya que estaría estipulado previamente en un documento legal.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_N2sdxupZnG8/S6GKlLM0YBI/AAAAAAAAAGY/GeKs80yrYoQ/s1600-h/legal_doc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_N2sdxupZnG8/S6GKlLM0YBI/AAAAAAAAAGY/GeKs80yrYoQ/s320/legal_doc.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.- Utiliza una Programación Orientado a Objetos&lt;/b&gt;.- El utilizar esta técnica te va ayudar a tener tu código muy bien organizado, ya que podrás trasladar "la vida real" a "la vida programática", así como aprovechar las ventajas de herencia, polimorfismo y demás características de esta técnica &lt;a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos"&gt;[ver más sobre POO]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_N2sdxupZnG8/S6GLBKQ9BiI/AAAAAAAAAGg/_iZAVVom5qI/s1600-h/javacode.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_N2sdxupZnG8/S6GLBKQ9BiI/AAAAAAAAAGg/_iZAVVom5qI/s320/javacode.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.- Utiliza diagramas.&lt;/b&gt;- Organizar tu proyecto con diagramas UML, o Diagramas E-R (Entidad-Relación) te servirá de apoyo para tener mucho más clara la forma en que desarrollaremos nuestro sistema.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_N2sdxupZnG8/S6GQawqJDwI/AAAAAAAAAGo/clz0AmKBKuI/s1600-h/uml" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_N2sdxupZnG8/S6GQawqJDwI/AAAAAAAAAGo/clz0AmKBKuI/s320/uml" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.- Trata de no empezar desde cero. &lt;/b&gt;Si ya existen cosas hechas... ¿Para qué volverlas a hacer? El uso de librerías (ya probadas cientos de veces previamente por desarrolladores expertos) te servirá para hacer las cosas de una manera más rápido, pero &lt;b&gt;ojo&lt;/b&gt;&amp;nbsp;con no dejar que las cosas las hagan por ti, simplemente te servirá de &lt;b&gt;apoyo.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;6.- Elige un buen lenguaje de programación. &lt;/b&gt;Tomando en cuenta que programar Orientado a Objetos, debes dar un segundo buen paso: elegir un lenguaje que los soporte (¿demasiado obvio no?). Existe una gran gama de lenguajes bastante buenos, cada uno con características especiales y que hacen muy diferentes unos de otros (p. ej. que funcionen bajo un sistema operativo en especial).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_N2sdxupZnG8/S6GV7ZHkLWI/AAAAAAAAAGw/Qqv8--M0sxk/s1600-h/2662210806_c7bbc90786.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_N2sdxupZnG8/S6GV7ZHkLWI/AAAAAAAAAGw/Qqv8--M0sxk/s320/2662210806_c7bbc90786.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;7.- Elige bien el IDE que utilizarás. &lt;/b&gt;Cuando tengas todo listo y decidas codificar, tómate un tiempo para pensar qué &lt;a href="http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado"&gt;IDE&lt;/a&gt;&amp;nbsp;es el que más se acomoda a tus necesidades. Existe una gran variedad de IDE's que te facilitarán la codificación: con su herramienta de autocompletado de código, algún plug-in para el diseño de interfaces gráficas (web o desktop), la posibilidad de agregar código personalizado (templates) etcétera.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_N2sdxupZnG8/S6GWjp5pFDI/AAAAAAAAAG4/gqApzVEKu94/s1600-h/ide.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_N2sdxupZnG8/S6GWjp5pFDI/AAAAAAAAAG4/gqApzVEKu94/s320/ide.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8.- Procura usar software libre.&lt;/b&gt;&amp;nbsp;Sabemos que es bastante difícil utilizar software privativo, es decir, que para poder desarrollar nuestro sistema debemos utilizar software cuya empresa creadora te vende "el permiso para usarlo". Por eso trata de encontrar software libre: que no te "ate" ni te obligue a pagar, porque recuerda algo: &lt;b&gt;si utilizas software privativo debes pagar las licencias&lt;/b&gt;, de otro modo podrías tener problemas legales.&lt;br /&gt;&lt;br /&gt;Bueno, he aquí unos cuantos tips, podrían ser más pero son los que considero importantes y que no se deben dejar pasar, espero les haya servido esta entrada. ¡Saludos!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-7757249254470094749?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/7757249254470094749/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=7757249254470094749' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/7757249254470094749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/7757249254470094749'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/03/tips-para-crear-un-buen-sistema-desktop.html' title='Tips para crear un buen sistema (Desktop o Web)'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_N2sdxupZnG8/S6GKX-uap5I/AAAAAAAAAGQ/EREyuegnYXo/s72-c/idea-cloud.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-5168534092046728324</id><published>2010-03-12T08:23:00.004-06:00</published><updated>2010-03-12T20:18:03.168-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Devede, un excelente conversor de video</title><content type='html'>¿Alguna vez han tenido la necesidad de grabar algún archivo de video y convertirlo en DVD? En alguna ocasión tuve esa necesidad y no conocía ningún programa para Linux que me sacara de ese apuro; buscando en &lt;b&gt;San Google&lt;/b&gt;&amp;nbsp;me topé con un programa llamado &lt;b&gt;Devede&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_N2sdxupZnG8/S5pOJnaa07I/AAAAAAAAAGI/6aPIe-h73J0/s1600-h/devede" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_N2sdxupZnG8/S5pOJnaa07I/AAAAAAAAAGI/6aPIe-h73J0/s320/devede" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Devede&lt;/b&gt; es un programa que permite crear DVD's a partir de &lt;s&gt;casi&lt;/s&gt; cualquier archivo de video. Para ser más preciso, convierte cualquier tipo reproducible en &lt;a href="http://www.mplayerhq.hu/design7/news.html"&gt;MPlayer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para poder ser instalado, es necesario tener instaladas algunas dependencias:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Mplayer&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Mencoder&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;DVDAuthor&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;VCDImager&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;MKisofs&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Python&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;PyGTK&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; y&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;PyGlade&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;Para instalar Devede, basta con abrir la terminal y echarle un vistazo a los repositorios escribiendo:&lt;br /&gt;&lt;b&gt;sudo aptitude install devede.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Definitivamente recomiendo este programa, pueden encontrar mas información visitando su &lt;a href="http://www.rastersoft.com/programas/devede_es.html"&gt;página oficial&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-5168534092046728324?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/5168534092046728324/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=5168534092046728324' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/5168534092046728324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/5168534092046728324'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/03/devede-un-excelente-conversor-de-video.html' title='Devede, un excelente conversor de video'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_N2sdxupZnG8/S5pOJnaa07I/AAAAAAAAAGI/6aPIe-h73J0/s72-c/devede' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-8887779672166920894</id><published>2010-03-11T12:55:00.000-06:00</published><updated>2010-03-11T12:55:21.022-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='freelance'/><title type='text'>El porque ser un Diseñador Freelance es riesgoso</title><content type='html'>&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;Buscando por la net algo sobre diseño web, me encontre un artículo que me llamó mucho la atención puesto que va dirigido a todas aquellas personas que se guían por el camino del freelance (Independiente), aquellos que quieren empezar una empresa, otros que ya la empezamos, etc. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;Esto es para ti lector que quieres jugartela en el mundo del diseño web, y recuerden algo que siempre he dicho, aquí en México siempre ha habido crisis, al igual que siempre ha habido trabajo, para quien quiere trabajar, tenganlo siempre muy en cuenta. Espero les guste este artículo y les sirva de referencia futura.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;El porqué ser un Diseñador Freelance es riesgoso: 7 estrategias de negocio para ayudarte a triunfar.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;uno de los mayores problemas que se presentan al ser un diseñador freelance es que el trabajo puede ser todo&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;un reto. no importa que tan clara sea la tarea y la direccion del cliente, hay trampas que evitar. Aqui se muestran 7 sugerencias para ayudar a tu negocio freelance triunfe.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;1.- Redacta un contrato&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Antes de que empiezes a trabajar, es algo critico el redactar un contrato que delimite el producto a ser entregado, así como tambien la cantidad de revisiones que el cliente obtendra. Y plasmar que no será incluido en tus servicios esto cubre todas tus bases. Pues que no quieres estar atrapado en una situacion donde haras incontables revisiones y ademas sin recibir un pago por ello.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;2.- Confirma el formato a ser entregado&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Es crucial para saber cómo un cliente quiere que el diseño sea entregado. Querrás saber la aplicación en la que el diseño está siendo utilizado y por lo tanto asegúrarte que entregas un formato que funcione para el &lt;a href="http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenidos"&gt;CMS&lt;/a&gt; (CMS o no). Esto también debe ser especificado en el contrato.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;3.- Garantiza que te paguen&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cuando eres independiente(freelancer) no tendras la seguridad de tener una gran firma de diseño respaldandote y manejando tus cuentas. Una cosa inteligente que hacer es poner una marca de agua en el trabajo o entregarlo en una resolucion que es muy baja como para ser usada por el cliente. Una vez que el trabajo es pagado en su totalidad puedes entregar el trabajo en su resolucion total sin marca de agua.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;4.- Puede que tengas que empezar desde abajo.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Siempre existe la tentacion de ser independiente,trabajar las horas que quieras y tomar los proyectos que quieras ¿cierto? Bien, puedes encontrar que no es del todo asi, especialmente en las etapas iniciales. Puede que tengas que aceptar cualquier trabajo que se te cruze en tu camino, hasta que te puedas vender y obtener una lista de clientes que te daran suficiente trabajo para apoyarte a ti y a tu nuevo trabajo.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;5.- Establece una Política de Arbitraje.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si hay una discrepancia en la cantidad debida o sobre el contrato inicial que elaboró con el cliente, necesitas asegurarte de que están legalmente cubiertas. Al redactar el contrato debes asegurarte de que el cliente lo firmó y que te devuelve la copia original y que comprende la obligación de arbitraje para poner fin a cualquier controversia. Esto será crucial si tienes que llevarlos a la corte de reclamos menores. Siempre sé lo más específico posible.&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;6.- Gasta el dinero solo en caso necesario.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;No puedes tener todo el equipo mas moderno como lo harias en una empresa de diseño. Compra de computadoras, &lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;software, lapices, acuarelas, son costos muy marcados en tu nuevo negocio, manten tus gastos bajos al mantener &lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;tu laptop unos pocos meses más, y busca descuentos en software.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;7.-Nombres importantes.&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Mantenga un archivo detallado de direcciones para estar al día de sus contactos profesionales. Tus  contactos son tu activo más importante. Desearás estar en contacto con tus clientes, incluso después de terminado un trabajo. Envíando actualizaciones por email, boletines de noticias o promociones pueden ser una buena manera de mantenerse en contacto.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Freelancing es un camino difícil. No todo el mundo es adecuado para un estilo de vida como éste. Se necesita cerebro, bolas, y el ingenio para permanecer fuera del agua. Pero esperamos que estos siete consejos te darán una ventaja para tener éxito.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;leer el articulo &lt;a href="http://www.webdesignmo.com/blog/2009/07/31/why-being-a-freelance-designer-is-risky/"&gt;original&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal; line-height: 22px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-8887779672166920894?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/8887779672166920894/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=8887779672166920894' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/8887779672166920894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/8887779672166920894'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/03/el-porque-ser-un-disenador-freelance-es.html' title='El porque ser un Diseñador Freelance es riesgoso'/><author><name>Rito Leonardes</name><uri>http://www.blogger.com/profile/03002895797772257875</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_Yx2_q8-7ujI/S5cW0ZZdS9I/AAAAAAAAAAM/qBmbq9dqlmo/S220/SilvermediaLogo3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-4139896681126019960</id><published>2010-03-09T19:01:00.006-06:00</published><updated>2010-03-09T19:08:56.281-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dispositivos'/><category scheme='http://www.blogger.com/atom/ns#' term='electrónica'/><title type='text'>Cómo crear una memoria USB a partir de un simple cable</title><content type='html'>Curioseando por la Web, me topé con un artículo bastante interesante (y bastante gracioso, cabe mencionar) el cual me impresionó bastante. ¡Qué cosas no se pueden hacer el día de hoy!&lt;br /&gt;&lt;br /&gt;Resulta que "Windell", como se hace llamar el usuario, publicó el siguiente artículo, es bastante fácil de elaborar, tanto que un compañero del trabajo ya lo hizo y le quedó a la perfección.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_N2sdxupZnG8/S5bvGoTJyZI/AAAAAAAAAFg/FWoEz2FqoYw/s1600-h/usb.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_N2sdxupZnG8/S5bvGoTJyZI/AAAAAAAAAFg/FWoEz2FqoYw/s400/usb.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_N2sdxupZnG8/S5bv4A8jZHI/AAAAAAAAAFo/lJ9DQt4DB6M/s1600-h/usb2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_N2sdxupZnG8/S5bv4A8jZHI/AAAAAAAAAFo/lJ9DQt4DB6M/s400/usb2.jpg" width="400" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;En el artículo vienen los pasos detallados y podrán acceder al sitio en el siguiente enlace.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.evilmadscientist.com/article.php/usbkey" target="blank"&gt;http://www.evilmadscientist.com/article.php/usbkey&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-4139896681126019960?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/4139896681126019960/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=4139896681126019960' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/4139896681126019960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/4139896681126019960'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/03/como-crear-una-memoria-usb-partir-de-un.html' title='Cómo crear una memoria USB a partir de un simple cable'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_N2sdxupZnG8/S5bvGoTJyZI/AAAAAAAAAFg/FWoEz2FqoYw/s72-c/usb.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-4309160863952428372</id><published>2010-03-09T18:52:00.002-06:00</published><updated>2010-03-09T19:06:13.922-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Python  ¿Ya lo conocían?</title><content type='html'>¡Qué tal lectores!&lt;br /&gt;&lt;br /&gt;Esta entrada está dedicada para hablar de un buen lenguaje de programación: Python.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_N2sdxupZnG8/S5bsTR8oOXI/AAAAAAAAAFY/Pfx_paCU6mY/s1600-h/python-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="67" src="http://2.bp.blogspot.com/_N2sdxupZnG8/S5bsTR8oOXI/AAAAAAAAAFY/Pfx_paCU6mY/s200/python-logo.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #f1c232;"&gt;Python&lt;/span&gt;&lt;/b&gt; es un lenguaje de programación &amp;nbsp;interpretado; esto quiere decir que está diseñado para que un intérprete (vía terminal o consola) esté en la espera de recibir alguna orden, tal y como lo vemos en MS-DOS, en el Shell de Linux y en la terminal de Mac.&lt;br /&gt;&lt;br /&gt;A su vez, este lenguaje cumple con los requisitos del paradigma de Programación Orientado a Objetos, logrando así una programación bastante sencilla y completa (para quienes están acostumbrados a POO). Otra característica importante de este lenguaje es que omite la tipificación de datos, (sí, dije OMITE), así que para quienes esto de la tipificación es un problema, he aquí una solución: por ejemplo, que la variable "x" tome el valor de "Hola Python", pero durante la ejecución del programa ésta pueda obtener otro valor, ya sea entero, doble, etcétera. Fascinante ¿no?.&lt;br /&gt;&lt;br /&gt;Entre otras características, existe también la eliminación de las llaves del cuerpo de algún subproceso ({, }) ya que se maneja todo por indentación, es decir, dejar indentación por cada sub-bloque. Respetando cada indentación, el código puede ser interpretado correctamente.&lt;br /&gt;&lt;br /&gt;Para más información acerca de Python o ver su documentación, &lt;a href="http://python.org/"&gt;visiten su página oficial.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-4309160863952428372?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/4309160863952428372/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=4309160863952428372' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/4309160863952428372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/4309160863952428372'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/03/python.html' title='Python  ¿Ya lo conocían?'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_N2sdxupZnG8/S5bsTR8oOXI/AAAAAAAAAFY/Pfx_paCU6mY/s72-c/python-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-94079476912946378</id><published>2010-03-06T23:53:00.009-06:00</published><updated>2010-03-09T19:11:36.880-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Nueva cara de Ubuntu 10.04</title><content type='html'>En vísperas del lanzamiento de Ubuntu 10.04 LTS, me he encontrado (gracias a los consejos de mi amigo Luis Montiel [&lt;a href="http://www.luismontiel.com/" target="blank"&gt;www.luismontiel.com&lt;/a&gt;])que Ubuntu cambiará de marca, es decir, tendrá un nuevo  look (si quieres ver el artículo original haz click &lt;a href="http://fridge.ubuntu.com/node/1991"&gt;aquí&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Dicha presentación tendrá un nuevo splash, el logotipo de ubuntu tendrá un nuevo diseño, al estilo Canonical... todo por su nueva ideología "Light", por lo visto están adoptando un nuevo concepto, la ligereza.&lt;br /&gt;&lt;br /&gt;Veamos algunas imágenes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_N2sdxupZnG8/S5NDDzfHRsI/AAAAAAAAAEw/sZZFJm9onGo/s1600-h/blackeubuntulogo.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5445770107060438722" src="http://4.bp.blogspot.com/_N2sdxupZnG8/S5NDDzfHRsI/AAAAAAAAAEw/sZZFJm9onGo/s400/blackeubuntulogo.png" style="cursor: hand; cursor: pointer; display: block; height: 105px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;Nuevo logo.&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;A su vez, tendrá nuevos temas (se rumora acerca de GNOME 3).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_N2sdxupZnG8/S5NDRkOZCgI/AAAAAAAAAE4/EVBgYL9Edo4/s1600-h/ubuntu-tendra-nueva-imagen_2.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5445770343481936386" src="http://1.bp.blogspot.com/_N2sdxupZnG8/S5NDRkOZCgI/AAAAAAAAAE4/EVBgYL9Edo4/s400/ubuntu-tendra-nueva-imagen_2.png" style="cursor: hand; cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_N2sdxupZnG8/S5NEZPb-LPI/AAAAAAAAAFI/sOR7C0apJkY/s1600-h/ubuntu-blacktheme.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5445771574852332786" src="http://4.bp.blogspot.com/_N2sdxupZnG8/S5NEZPb-LPI/AAAAAAAAAFI/sOR7C0apJkY/s400/ubuntu-blacktheme.png" style="cursor: hand; cursor: pointer; display: block; height: 300px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pues bien, es sólo cuestión de esperar a que sea liberado en el mes de Abril, que podría apostar que será bien recibido.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-94079476912946378?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/94079476912946378/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=94079476912946378' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/94079476912946378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/94079476912946378'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/03/nueva-cara-de-ubuntu-1004.html' title='Nueva cara de Ubuntu 10.04'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_N2sdxupZnG8/S5NDDzfHRsI/AAAAAAAAAEw/sZZFJm9onGo/s72-c/blackeubuntulogo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-6402920594450478728</id><published>2010-01-29T10:25:00.003-06:00</published><updated>2010-01-29T10:35:36.309-06:00</updated><title type='text'>Java 7</title><content type='html'>Una noticia un tanto vieja, pero dedicada para aquellos que no la saben, ha salido la nueva actualización de Java, en su versión número 7, contiene varios cambios, entre ellos tenemos:&lt;br /&gt;&lt;br /&gt; Modularidad: lo que se quiere hacer es dividir todo el paquete para hacer lo más "liviano" a Java. De esta manera, el usuario final podrá bajar automáticamente todos los módulos que necesite en ese momento.&lt;br /&gt;&lt;br /&gt;Soporte multi-lenguaje: Soportando Ruby y Python.&lt;br /&gt;&lt;br /&gt;Nueva librería de IO (NIO 2) : Tendrá una búsqueda automática directorios automática, con lo que ya no se tendrá que hacer "a mano".&lt;br /&gt;&lt;br /&gt;Swing: Olvidemos ya la librería JCalendar, ya que tendrá un "DatePicker" y algunos efectos de "blur" (desenfoque) en algunos componentes que se deseen deshabilitar. Algo interesante aunque no es la gran cosa.&lt;br /&gt;&lt;br /&gt;Cambios menores a la sintaxis: Una de las cosas que me sorprendió es que ya se podrá poner una lista de excepciones en la cláusula "catch", lo que reducirá el antiguo código de tantos y tantos "catches" que seponen para poder capturar las excepciones:&lt;br /&gt;&lt;br /&gt;Veamos el siguiente pseudocódigo:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;    //...cualquier código aquí&lt;br /&gt;}&lt;br /&gt;catch(Exception1 ex1, Exception2, ex2, ExceptionN exN)&lt;br /&gt;{&lt;br /&gt;   //...cualquier código aquí&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Para finalizar tenemos un buen vídeo, el cual nos podrá explicar un poco más sobre ello, está completamente en inglés, pero igual es bastante intuitivo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://a.blip.tv/scripts/flash/showplayer.swf?file=http://blip.tv/rss/flash/2496766%3Freferrer%3Dhttp%25253A%25252F%25252Fmundojava.blogspot.com%25252F2009%25252F08%25252Falgunas-cosas-nuevas-de-java-7.html%26source%3D3&amp;showplayerpath=http://blip.tv/scripts/flash/showplayer.swf&amp;feedurl=http://sdnpipeline.blip.tv/rss/flash&amp;brandname=blip.tv&amp;brandlink=http://blip.tv/%3Futm_source%3Dbrandlink&amp;enablejs=true" target="blank"&gt; Click aqu&amp;iacute; para ver el v&amp;iacute;deo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-6402920594450478728?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/6402920594450478728/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=6402920594450478728' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/6402920594450478728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/6402920594450478728'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2010/01/java-7.html' title='Java 7'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-2495671628856662835</id><published>2009-09-29T21:19:00.024-05:00</published><updated>2009-09-30T20:10:52.975-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Fondos estáticos en páginas web</title><content type='html'>&amp;#161;Qu&amp;eacute; tal lector!&lt;br /&gt;&lt;br /&gt;Un amigo mio me llam&amp;oacute; por medio de mi cliente de mensajer&amp;iacute;a instant&amp;aacute;nea favorito... emesene hehe, el cliente MSN para linux hecho en GTK :]&lt;br /&gt;Mi amigo me hizo una pregunta que me hizo pensar... creo que muchos tendr&amp;aacute;n la misma duda que &amp;eacute;l, por eso he creado este nuevo post:&lt;br /&gt;&lt;br /&gt;&amp;#191;C&amp;oacute;mo establecer "x" imagen como fondo pero que se quede est&amp;aacute;tico? Supongo que han visto en p&amp;aacute;ginas como myspace u otras m&amp;aacute;s en las que el fondo no se mueve, y que al navegar a trav&amp;eacute;s de la p&amp;aacute;gina el texto es lo que se desliza. &amp;#161Ok! Esto se resuelve con un simple fragmento hecho en CSS.&lt;br /&gt;&lt;br /&gt;Para los que no est&amp;aacute;n muy familiarizados con CCS les recomiendo que le echen un vistazo aqu&amp;iacute;: &lt;a href="http://www.google.com.mx/search?client=firefox-a&amp;rls=org.mozilla%3Aes-ES%3Aofficial&amp;channel=s&amp;hl=es&amp;source=hp&amp;q=curso+css&amp;meta=&amp;btnG=Buscar+con+Google"&gt;Resultados de b&amp;uacute;squeda en Google sobre CCS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ok, comencemos con el c&amp;oacute,digo; lo pueden incrustar en los tags &amp;lt;head&amp;gt; y &amp;lt;/head&amp;gt;o en un archivo CSS externo.&lt;br /&gt;&lt;br /&gt;El c&amp;oacute;digo es el siguiente:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;    body&lt;br /&gt;    {&lt;br /&gt;        background-image: url('miimagen.jpg');&lt;br /&gt;        background-repeat: no-repeat;&lt;br /&gt;        background-attachment: fixed&lt;br /&gt;    }&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;... y con eso, podr&amp;aacute;s crear p&amp;aacute;ginas con fondo est&amp;aacute;tico.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-2495671628856662835?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/2495671628856662835/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=2495671628856662835' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/2495671628856662835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/2495671628856662835'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2009/09/fondos-estaticos-en-paginas-web.html' title='Fondos estáticos en páginas web'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-682302341180816952</id><published>2009-09-26T01:22:00.005-05:00</published><updated>2010-03-10T00:06:56.750-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='sistemas operativos'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Race Ubuntu Karmic Alpha 2 vs Windows 7 RC</title><content type='html'>&lt;p&gt;&lt;br /&gt;&amp;#161;Saludos lectores!&lt;br /&gt;&lt;br /&gt;Me he encontrado con un video que me dej&amp;oacute; sin palabras: Una vez m&amp;aacute;s Ubuntu ha demostrado ser superior a Windows en muchos aspectos, en esta ocasi&amp;oacute;n se ha comparado la velocidad de carga del Sistema Operativo y miren lo que result&amp;oacute; de este experimento:&lt;br /&gt;&lt;/P&gt;&lt;center&gt;&lt;br /&gt;&lt;object width="553" height="305"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ymbB8RT6Aas&amp;hl=es&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ymbB8RT6Aas&amp;hl=es&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="553" height="305"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&amp;#191;Genial no? Esta es una de las tantas razones por las que las distribuciones de Linux son superiores a las versiones de Windows... &amp;#161;Vamos apoyemos al software libre!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-682302341180816952?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/682302341180816952/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=682302341180816952' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/682302341180816952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/682302341180816952'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2009/09/race-ubuntu-karmic-alpha-2-vs-windows-7_26.html' title='Race Ubuntu Karmic Alpha 2 vs Windows 7 RC'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-290603762002416232</id><published>2009-09-19T01:01:00.035-05:00</published><updated>2009-09-20T01:13:38.029-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='objetos'/><category scheme='http://www.blogger.com/atom/ns#' term='clases'/><category scheme='http://www.blogger.com/atom/ns#' term='POO'/><title type='text'>Creando clases y objetos</title><content type='html'>&lt;p&gt;&lt;br /&gt;&amp;#161;Qu&amp;eacute; tal a todos!&lt;br&gt;&lt;br&gt;&lt;br /&gt;Les doy una cordial bienvenida a este post. Quiero dar un saludo especial a un buen alumno y gran amigo, el es Jonathan, de Colombia. Quisiera dedicarle este post, ya que apenas se est&amp;aacute; iniciando en Java y quisiera darle un peque&amp;ntilde;o empuj&amp;oacute;n.&lt;br&gt;&lt;br /&gt;Comenzaremos explicando lo que es una clase. Una clase es una plantilla en la que se declarar&amp;aacute;n todos los m&amp;eacute;todos necesarios con el fin de que &amp;eacute;stos puedan ser llamados desde otra clase (com&amp;uacute;nmente en la aplicac&amp;iacute;n, aunque puede ser en otra clase tambi&amp;eacute;n) mediante un objeto de la misma clase.&lt;br&gt;&lt;br /&gt;Imag&amp;iacute;nate que creas la clase Persona, con una serie de m&amp;eacute;todos (funciones en otros lenguajes) que te permiten manejar la informaci&amp;oacute;n para una persona; despu&amp;eacute;s creas un objeto de esa misma clase de la siguiente forma:&lt;br&gt;&lt;br /&gt;&lt;center&gt;&lt;strong&gt;&lt;code&gt;Persona p = new Persona();&lt;/code&gt;&lt;/strong&gt;&lt;/center&gt;&lt;br&gt;&lt;br /&gt;Ahora imag&amp;iacute;nate que el objeto "p" ya tiene todos los m&amp;eacute;todos que definiste en la clase Persona... &amp;#191;No es eso genial? S&amp;icaute; que lo es... y su uso es mucho m&amp;aacute;s: supongamos que en la clase Persona definimos el m&amp;eacute;todo "imprimirNombre(String nombre)" en el que le pasamos cualquier nombre y nos lo imprime en consola; la manera de lograrlo es decirle al objeto "p" que nos de ese m&amp;eacute;todo &lt;code&gt;&lt;strong&gt;p.impimirNombre("Alexis Hern&amp;aacute;ndez");&lt;/strong&gt;&lt;/code&gt; &amp;#161;bastante simple!&lt;br&gt;&lt;br /&gt;Ahora, veamos algo de c&amp;oacute;digo, crearemos un solo m&amp;eacute;todo para mayor comprensi&amp;oacute;n y no compliar mucho, para eso estar&amp;aacute;n los ejemplos que podr&amp;aacute;s descargar al final de la lecci&amp;oacute;n. Priemro creamos la clase diciendo "public class NombreDeLaClase" y despu&amp;eacute;s declaramos todos los m&amp;eacute;todos que gustes:&lt;br&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public class Persona&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private void imprimirNombre(String nombre)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(nombre);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;El m&amp;eacute;todo "imprimirNombre" recibe una variable de tipo String, el cual representa al texto que se imprimir&amp;aacute; en consola... Ahora imaginate que estamos en la aplicaci&amp;oacute;n y crearemos un objeto de la clase Persona:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;Persona p = new Persona();&lt;br /&gt;String nombre = "Jonathan";&lt;br /&gt;p.imprimirNombre(nombre);&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&amp;#191;Bastante sencillo no? Ahora te preguntar&amp;aacute;s para qu&amp;eacute; creo objetos si podemos declarar m&amp;eacute;todos en la misma clase aplicaci&amp;oacute;n... La respuesta es sencilla: en la clase declaras todos los m&amp;eacute;todos que utilizar&amp;aacute;s en una aplicaci&amp;oacute;n, la ventaja es que ese c&amp;oacute;digo est&amp;aacute; compilado y correctamente probado, por lo que puedes reutilizar ese mismo c&amp;oacute;digo creando cuantos objetos necesites, cada uno de ello tendr&amp;aacute; los mismos m&amp;eacute;todos pero diferentes valores dentro de ellos; imag&amp;iacute;nate que tenemos 3 objetos de la misma clase, pero a cada uno de ellos le pasamos 3 par&amp;aacute;metros distintos: &lt;code&gt;p1.imprimirNombre("Abril"); p2.imprimirNombre("Pepe"); p3.imprimirNombre("Alberto");&lt;/code&gt; Aqu&amp;iacute; utilizamos el mismo m&amp;eacute;todo pero en distintos objetos (p1, p2, p3), con lo que puedes aprovechar el mismo c&amp;oacute;digo creando tantos objetos como necesites en una aplicaci&amp;oacute;n sin necesidad de repetirlo: reutilizaci&amp;oacute;n, es la clave.&lt;br&gt;&lt;br /&gt;&lt;br /&gt;Bueno, es momento de que descarguen el ejemplo para que tengan m&amp;aacute;s claro esta explicaci&amp;oacute;n. Espero haya sido lo m&amp;aacute;s claro posible, acepto sus dudas y sus comentarios con el mayor de los gustos. &amp;#161;Un saludo!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;Nota: ver primero la clase y despu&amp;eacute;s la aplicaci&amp;oacute;n&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.enlamiradelcodigo.comlu.com/sources/clasesyobjetos.rar"&gt;Descargar archivos de ejemplo aqu&amp;iacute;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-290603762002416232?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/290603762002416232/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=290603762002416232' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/290603762002416232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/290603762002416232'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2009/09/creando-clases-y-objetos.html' title='Creando clases y objetos'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-7885741613404862316</id><published>2009-09-13T08:52:00.027-05:00</published><updated>2009-09-27T21:25:46.117-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Serialización'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='POO'/><title type='text'>Seralizando objetos en java</title><content type='html'>¡Qué tal!&lt;br /&gt;&lt;br /&gt;En esta ocasión explicaremos detalladamente cómo serializar uno o varios objectos en java.&lt;br /&gt;&lt;br /&gt;Primeramente hay que saber qué es serializar. Serializar objetos o datos, significa convertirlos en bytes, de tal manera que es más facil transferir la información desde la Invocación de Métodos Remotos, por ejemplo, o simplemente generar un fichero con los bytes correspondientes a nuestra información, con el fin de crear datos persistentes.&lt;br /&gt;&lt;br /&gt;Para poder crear un objeto que tenga la capacidad de ser serializado, es fundamental que a la clase correspondiente le sea implementada la intefaz Serializable; veamos un pequeño ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.io.Serializable&lt;br /&gt;&lt;br /&gt;public class Persona implements Serializable&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String nombre;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String apellidoPaterno;&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private String apellidoMaterno;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;con esta instrucción, cualquier objeto creado a partir de esta clase, podrá ser serializado.&lt;br /&gt;&lt;br /&gt;Naturalmente son necesarios los métodos para que nuestro objeto sea convertido en un fichero de bytes; partimos de tres clases importantes para la &lt;span style="font-style: italic; font-weight: bold;"&gt;escritura&lt;/span&gt; en disco(en la aplicaci&amp;oacute;n), los cuales son:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;File &lt;a href="http://java.sun.com/javase/6/docs/api/java/io/File.html" target="blank"&gt;[ver api]&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;FileOutputStream &lt;a href="http://java.sun.com/javase/6/docs/api/java/io/FileOutputStream.html" target="blank"&gt;[ver api]&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;FileInputStream &lt;a href="http://java.sun.com/javase/6/docs/api/java/io/ObjectOutputStream.html" target="blank"&gt;[ver api]&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;En esta ocasión crearemos nuestro fichero a la "hardcode", es decir, de manera estática, posteriormente podríamos ver cómo hacerlo dinámico mediante la petición de la ruta al usuario, pero en esta ocasión nos dedicaremos a estudiar la creación del archivo directamente.&lt;br /&gt;&lt;br /&gt;Comenzamos con "la receta": Creamos nuestro método &lt;i&gt;&lt;b&gt;wrietObject&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;public void writeObject(ObjectOutputStream oos, persona p)throws IOException&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;oos.writeObject(persona);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;En este m&amp;eacute;todo le hemos pasado un objeto de tipo &lt;b&gt;ObjectOutputStream&lt;/b&gt;, quien es el encargado de darle salida y escribir en un fichero que contiene la informaci&amp;oacute;n de al persona a guardar.&lt;br /&gt;&lt;br /&gt;Ahora, procedemos a hacer "la inversa" al método anterior, ocupando 3 clases para la &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;lectura&lt;/span&gt;&lt;/span&gt; de ficheros serializados (en la aplicaci&amp;oacute;n):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;File&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;FileInputStream &lt;a href="http://java.sun.com/javase/6/docs/api/java/io/FileInputStream.html"&gt;[ver api]&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;ObjectInputSTream &lt;a href="http://java.sun.com/javase/6/docs/api/java/io/ObjectInputStream.html"&gt;[ver api]&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;code&gt;public Persona readObject(ObjectInputStream ois)throws IOException, ClassNotFoundException&lt;br /&gt;{   &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Persona p= (Persona) oos.readObject();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return p;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;En este &amp;uacute;ltimo m&amp;eacute;todo se asume que la clase Persona tiene los t&amp;iacute;picos m&amp;eacute;todos viejos de java, los "setters" y los "getters", por lo que se crea una persona a partir de lo que se ley&amp;oacute; del fichero. En el archivo de ejemplo viene m&amp;aacute;s amplia la explicaci&amp;oacute;n de cada uno de los m&amp;eacute;todos utilizados, adem&amp;acute;s de que en la clase aplicaci&amp;oacute;n comprender&amp;acute;s de manera sencilla el uso de los m&amp;eacute;todos &lt;b&gt;writeObject&lt;/b&gt; y &lt;b&gt;readObject&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Con ésto podemos crear nuestro objeto serializado, espero que haya sido lo suficientemente claro, si no es así, siéntete libre de enviarnos tu comentario o sugerencia a j.akexus@gmail.com&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;i&gt;&lt;a href="http://www.enlamiradelcodigo.comlu.com/sources/serializacion.rar"&gt;Descargar archivos de ejemplo aquí&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-7885741613404862316?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/7885741613404862316/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=7885741613404862316' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/7885741613404862316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/7885741613404862316'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2009/09/seralizando-objetos-en-java.html' title='Seralizando objetos en java'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3452733866338189385.post-642503338896094931</id><published>2009-09-13T02:12:00.004-05:00</published><updated>2009-09-19T17:11:06.064-05:00</updated><title type='text'>¡Se inicia un nuevo blog!</title><content type='html'>¡Qué tal!&lt;br /&gt;&lt;br /&gt;En nombre de enlamiradelcodigo.blogspot.com les doy la más cordial bienvenida en ésta, la apertura de un nuevo blog...&lt;br /&gt;&lt;br /&gt;Ustedes podrán encontrar, algunos artículos y códigos interesantes de los diferentes lenguajes de programación; les prometo que en la medida que sea posible les compartiré periódicamente algunos ejemplos o artículos que les serán de ayuda.&lt;br /&gt;&lt;br /&gt;enlamiradelcodigo ha nacido con el propósito de ayudar, no de resolverle la vida a la gente que no programa; en pocas palabras, enmiradelcodigo no te hace la tarea... te ayudará a pensar ^^&lt;br /&gt;&lt;br /&gt;Te deseamos una agradable estancia en este blog.&lt;br /&gt;&lt;br /&gt;Quisiera dedicarle este sitio a mi novia Abril, quien siempre me apoya en todos mis proyectos... te amo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3452733866338189385-642503338896094931?l=enlamiradelcodigo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enlamiradelcodigo.blogspot.com/feeds/642503338896094931/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3452733866338189385&amp;postID=642503338896094931' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/642503338896094931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3452733866338189385/posts/default/642503338896094931'/><link rel='alternate' type='text/html' href='http://enlamiradelcodigo.blogspot.com/2009/09/se-inicia-un-nuevo-blog.html' title='¡Se inicia un nuevo blog!'/><author><name>JAkexus</name><uri>http://www.blogger.com/profile/09284098421460778752</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://bp0.blogger.com/_N2sdxupZnG8/SCSVfOsytmI/AAAAAAAAAAQ/AL17sxPcUas/S220/DSC00117YO.JPG'/></author><thr:total>1</thr:total></entry></feed>
