<?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/'><id>tag:blogger.com,1999:blog-21787490</id><updated>2008-05-08T16:27:48.725-07:00</updated><title type='text'>Diario de un programador</title><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21787490.post-5769116741757921018</id><published>2007-05-01T17:28:00.000-07:00</published><updated>2007-10-22T22:28:41.100-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Base de datos'/><title type='text'>Conectando Java con SQLite usando Netbeans</title><content type='html'>&lt;div class="main"&gt;&lt;div class="snap_preview"&gt;&lt;p&gt;En este pequeño tutorial explicaré la forma de conectar una aplicación Java con SQLite utilizando el IDE Netbeans bajo el ambiente de Ubuntu Linux.&lt;/p&gt;&lt;p&gt;Antes de empezar, debemos bajar el &lt;a href="http://mx.geocities.com/jclaurian/sqlitejdbc-v033-nested.jar"&gt;jar&lt;/a&gt; que nos servira como puente entre java y la base de datos.&lt;/p&gt;&lt;p&gt;SQLlite es una pequeña librería programada en lenguaje C que implementa un completo motor de base de datos multiplataforma que no precisa configuración. Se distribuye bajo licencia de dominio público. Es muy rápido y la ventaja fundamental es que permite utilizar un amplio subconjunto del lenguaje estándar SQL. SQLite destaca también por su versatilidad.&lt;/p&gt;&lt;p&gt;Podemos utilizar SQLite como un gestor de base de datos local en un PC, de esta forma podemos gestionar base de datos SQLite igual que si estuviéramos trabajando con un sistema gestor de base de datos como MySQL sin necesidad de instalar nada, ya que SQLite se compone de un único archivo ejecutable.&lt;/p&gt;&lt;p&gt;Primero instalaremos SQLite, para esto, abrimos una terminal y escribimos lo siguiente:&lt;br /&gt;&lt;em&gt;sudo apt-get install sqlite3&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Lo siguiente será entrar y crear nuestra base de datos, para ello tecleamos en consola (en nuestro directorio de trabajo)&lt;/p&gt;&lt;p&gt;&lt;em&gt;juan@amaranta:/media/documentos/Athena$ sqlite3 DATOS.db&lt;br /&gt;SQLite version 3.3.13&lt;br /&gt;Enter “.help” for instructions&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Ahora creamos la tabla:&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;/p&gt;&lt;blockquote&gt;CREATE TABLE Datos (&lt;br /&gt;…&gt;id int (3) not null,&lt;br /&gt;…&gt;titulo char(30) not null,&lt;br /&gt;…&gt;autor char(30) not null,&lt;br /&gt;…&gt;primary key (id));&lt;/blockquote&gt;&lt;/em&gt;&lt;p&gt;Al realizar esto veremos que no nos da error, lo que significa que todo salio bien.&lt;/p&gt;&lt;p&gt;Ahora insertaremos un registros a la tabla:&lt;/p&gt;&lt;p&gt;&lt;blockquote&gt;sqlite&gt; INSERT INTO Libros (id, titulo, autor) VALUES (’1′,’Seda’,'Alessandro Baricco’);&lt;/blockquote&gt;&lt;p&gt;Antes de continuar, debemos colocar el .jar que descargamos en el directorio de trabajo, en este caso /documentos/Athena&lt;/p&gt;&lt;p&gt;Ahora abriremos Netbeans y crearemos un nuevo proyecto de Aplicación Java el cual guardaremos en nuestra área de trabajo.&lt;/p&gt;&lt;p&gt;Ya creado nuestro proyecto debemos identificar la pestaña &lt;em&gt;Projects&lt;/em&gt; que aparece a la izquierda de la ventana y posicionarnos en &lt;em&gt;Libraries&lt;/em&gt; para agregar la librería de conexión a SQLite.&lt;/p&gt;&lt;p&gt;Damos clic con el botón derecho del mouse sobre &lt;em&gt;Libraries&lt;/em&gt; y seleccionamos “&lt;em&gt;add jar/folder&lt;/em&gt;”&lt;/p&gt;&lt;p&gt;En el cuadro de dialogo que nos aparece, debemos ubicar el .jar que descargamos, lo seleccionamos y damos clic en abrir.&lt;/p&gt;&lt;p&gt;Ahora, modificaremos nuestra clase para comprobar que nos podemos conectar sin ningún problema. Nuestra clase deberá quedar de la siguiente manera:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;/*&lt;br /&gt;* Main.java&lt;br /&gt;*&lt;br /&gt;* Created on 21 de abril de 2007, 10:32 PM&lt;br /&gt;*&lt;br /&gt;*/&lt;/p&gt;&lt;p&gt;package athena;&lt;/p&gt;&lt;p&gt;import java.sql.*;&lt;br /&gt;import org.sqlite.JDBC;&lt;/p&gt;&lt;p&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author JCLAURIAN http://diariodeunprogramador.wordpress.com&lt;br /&gt;* @email  diariodeunprogramor@gmail.com&lt;br /&gt;*/&lt;br /&gt;public class Main {&lt;br /&gt;/** Creates a new instance of Main */&lt;br /&gt;public Main() {&lt;br /&gt;}&lt;br /&gt;/**&lt;br /&gt;* @param args the command line arguments&lt;br /&gt;*/&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;// TODO code application logic here&lt;br /&gt;try {&lt;br /&gt;//Nombre de la base de datos&lt;br /&gt;String fileName = “DATOS.db”;&lt;br /&gt;// Driver usado&lt;br /&gt;// http://www.zentus.com/sqlitejdbc/index.html&lt;br /&gt;Class.forName(”org.sqlite.JDBC”);&lt;br /&gt;//Creamos un objeto para conectarnos a la base de datos&lt;br /&gt;Connection conn = DriverManager.getConnection(”jdbc:sqlite:”+fileName);&lt;br /&gt;//Creamos un objeto Statement que se conectara a la BD&lt;br /&gt;Statement stmt = conn.createStatement();&lt;br /&gt;//Creamos un objeto para almacenar los resultados de una consulta&lt;br /&gt;ResultSet rs = stmt.executeQuery(”SELECT * FROM Libros ORDER BY id ASC”);&lt;br /&gt;while (rs.next()) {&lt;br /&gt;String id = rs.getString(”id”);// Columna 1&lt;br /&gt;String ti = rs.getString(”titulo”); // Columna 2&lt;br /&gt;String au = rs.getString(”autor”); // Columna 3&lt;br /&gt;//Mostramos los resultados encontrados en la base de datos&lt;br /&gt;System.out.println(”ID: “+id+” TÍTULO: “+ti+” AUTOR: “+au);&lt;br /&gt;}&lt;br /&gt;// Cerramos la base de datos&lt;br /&gt;conn.close();&lt;br /&gt;}&lt;br /&gt;catch (Exception e) {&lt;br /&gt;System.out.println(e.getMessage());&lt;br /&gt;System.out.println(e.toString());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ahora sólo compilamos (F11) y ejecutamos (F6) nuestra aplicación y veremos que nos muestra los registros incluidos en la tabla Libros.&lt;/p&gt;&lt;p&gt;Referencias:&lt;/p&gt;&lt;p&gt;http://usuarios.pntic.mec.es/sqlite.html&lt;/p&gt;&lt;p&gt;&lt;a href="http://mx.geocities.com/jclaurian/sqlite-introduccion.pdf"&gt;Tutorial básico de SQLite&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2007/05/conectando-java-con-sqlite-usando.html' title='Conectando Java con SQLite usando Netbeans'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=5769116741757921018&amp;isPopup=true' title='3 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/5769116741757921018/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/5769116741757921018'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/5769116741757921018'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-116508390215590629</id><published>2006-12-02T10:23:00.000-08:00</published><updated>2006-12-02T10:25:02.166-08:00</updated><title type='text'>Apuntes de programación, base de datos, web, etc</title><content type='html'>&lt;div id="post-container"&gt;   &lt;p&gt;¿Tienes ansia de aprender? Pues no te pierdas &lt;a href="http://tiger.la.asu.edu/quick_reference_card.htm"&gt;esta web&lt;/a&gt; donde han recopilado apuntes sobre &lt;strong&gt;programación, bases de datos y web, administración del ordenador, editores y tipos de lenguaje&lt;/strong&gt; de la Universidad Estatal de Arizona (&lt;a href="http://asu.edu/"&gt;ASU&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Todos los archivos son PDF, todos bastante extensos, por lo que no te faltará de nada.&lt;/p&gt;  &lt;p&gt;Esto te puede venir perfecto si estás estudiando Ingeniería Informática o intentas aprender por tu cuenta.&lt;/p&gt;  &lt;p&gt;(Via &lt;a href="http://tec.fresqui.com/excelente-web-con-utiles-chuletas-mysql-perl-php-linux-windows-vi-bash"&gt;Fresqui&lt;/a&gt;)&lt;/p&gt;  &lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/12/apuntes-de-programacin-base-de-datos.html' title='Apuntes de programación, base de datos, web, etc'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=116508390215590629&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/116508390215590629/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/116508390215590629'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/116508390215590629'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-116500162864526521</id><published>2006-12-01T11:24:00.000-08:00</published><updated>2006-12-01T11:33:48.656-08:00</updated><title type='text'>Apuntes Java</title><content type='html'>Hace tiempo tomé un intersemestral de "Introducción a la programación en Java" , el cual segiamos con unos tutoriales que la profesora tenia en su servidor, considero que son muy buenos, los comparto con ustedes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diariodeunprogramador.googlepages.com/Java1.pdf"&gt;Unidad 1 y 2&lt;/a&gt;&lt;br /&gt;- Conceptos básicos de la POO&lt;br /&gt;- Introducción a Java&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diariodeunprogramador.googlepages.com/Java3.pdf"&gt;Unidad 3&lt;/a&gt;&lt;br /&gt;- Fundamentos del lenguaje Java&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diariodeunprogramador.googlepages.com/java4.pdf"&gt;Unidad 4&lt;/a&gt;&lt;br /&gt;- Clases en Java&lt;br /&gt;&lt;a href="http://diariodeunprogramador.googlepages.com/java5.pdf"&gt;&lt;br /&gt;Unidad 5 y 6&lt;/a&gt;&lt;br /&gt;- Excepciones&lt;br /&gt;- Entrada y salida de datos&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diariodeunprogramador.googlepages.com/java7.pdf"&gt;Unidad 7&lt;/a&gt;&lt;br /&gt;- AWT&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diariodeunprogramador.googlepages.com/java8.pdf"&gt;Unidad 8&lt;/a&gt;&lt;br /&gt;- Manejo de eventos&lt;br /&gt;&lt;br /&gt;&lt;a href="http://diariodeunprogramador.googlepages.com/java9.pdf"&gt;Unidad 9&lt;/a&gt;&lt;br /&gt;- Acceso a base de datos</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/12/apuntes-java.html' title='Apuntes Java'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=116500162864526521&amp;isPopup=true' title='4 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/116500162864526521/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/116500162864526521'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/116500162864526521'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-116275427001372404</id><published>2006-11-05T11:16:00.000-08:00</published><updated>2006-11-05T11:18:10.793-08:00</updated><title type='text'>Tutoriales Java</title><content type='html'>Algunos tutoriales Java &lt;a href="http://diariodeunprogramador.googlepages.com/tutoriales-java"&gt;aquí&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La lista irá creciendo</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/11/tutoriales-java.html' title='Tutoriales Java'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=116275427001372404&amp;isPopup=true' title='1 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/116275427001372404/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/116275427001372404'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/116275427001372404'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-116084682662300024</id><published>2006-10-14T10:10:00.000-07:00</published><updated>2006-10-14T10:27:06.650-07:00</updated><title type='text'>Conectar Java con MySQL en NetBeans</title><content type='html'>En un post anterior explique como conectar NetBeans con MySQL, en esta ocación escribiremos un programa que se conecta a una base de datos ya creada usando este mismo IDE.&lt;br /&gt;&lt;br /&gt;Para empezar, debe tener instalado NetBeans  5.0 y haber descargado el conector Java.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Primero crearemos un proyecto normal (Java application)&lt;/li&gt;&lt;li&gt;Abrimos el manejador de bibliotecas. &lt;span style="font-style: italic; font-weight: bold;"&gt; Menu Tools -&gt; Library Manager&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Nos aparecera el cuadro de dialogo Library Manager. Ahora debemos dar de alta una nueva biblioteca dando click en &lt;span style="font-weight: bold; font-style: italic;"&gt;New Library...&lt;/span&gt;&lt;/li&gt;&lt;li&gt;En el cuadro que nos aparece, debemos llenarlo de la siguiente forma:  Library Name: MySQL (no puede tener espacios)&lt;br /&gt;Library Type: Class Libraries&lt;br /&gt;Click en el boton OK&lt;/li&gt;&lt;li&gt;Ahora debemos agregar unos detalles a la biblioteca. Asegurece que la nueva biblioteca creada este seleccionada (izquierda).&lt;/li&gt;&lt;li&gt;Seleccionamos la pestaña Class Path y damos clic en el botón &lt;span style="font-style: italic; font-weight: bold;"&gt;Add JAR/Folder...&lt;/span&gt;&lt;/li&gt;&lt;li&gt; Se abre un dialogo llamado Browse JAR/Folder que permite seleccionar archivos. Buscamos el jar  descargado para conectarnos a MySQL  (mysql-3.1.11.jar)  los  seleccionamos y  damos click en el  boton &lt;span style="font-style: italic; font-weight: bold;"&gt;Add JAR/Folder&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Aparecera en la sección Class Path el archivo que acabamos de agregar, damos clic en Ok del cuadro de dialogo Library Manager.&lt;/li&gt;&lt;li&gt;Ahora debemos agregar la librería al proyecto.  Dentro del proyecto (explorador del proyecto) seleccionar el nodo Libraries. Dar click derecho para mostrar el menu contextual&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Seleccionar opción Add Library&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; Seleccionar de la lista, la biblioteca recien creada con el nombre MySQL&lt;/li&gt;&lt;/ul&gt; Debe aparecer como una nueva entrada dentro del nodo Libraries&lt;/li&gt;&lt;/ol&gt;Y Listo.&lt;br /&gt;&lt;br /&gt;Podemos escribir el siguiente programa para verificar que todo funciona.&lt;br /&gt;&lt;br /&gt;import java.sql.*;&lt;br /&gt;&lt;br /&gt;public class TestConnection&lt;br /&gt;{&lt;br /&gt;   static String bd = "tu_BD";&lt;br /&gt;   static String login = "usuario";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   static String password = "contraseña";&lt;br /&gt;   static String url = "jdbc:mysql://localhost/"+bd;&lt;br /&gt;&lt;br /&gt;   public static void main(String[] args) throws Exception&lt;br /&gt;   {&lt;br /&gt;      Connection conn = null;&lt;br /&gt;&lt;br /&gt;      try&lt;br /&gt;      {&lt;br /&gt;         Class.forName("com.mysql.jdbc.Driver").newInstance();&lt;br /&gt;&lt;br /&gt;         conn = DriverManager.getConnection(url,login,password);&lt;br /&gt;&lt;br /&gt;         if (conn != null)&lt;br /&gt;         {&lt;br /&gt;            System.out.println("Conexión a base de datos "+url+" ... Ok");&lt;br /&gt;            conn.close();&lt;br /&gt;         }&lt;br /&gt;      }&lt;br /&gt;      catch(SQLException ex)&lt;br /&gt;      {&lt;br /&gt;         System.out.println("Hubo un problema al intentar conectarse con la base de datos "+url);&lt;br /&gt;      }&lt;br /&gt;      catch(ClassNotFoundException ex)&lt;br /&gt;      {&lt;br /&gt;         System.out.println(ex);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Deberá aparecer onexión a base de datos "+url+" ... Ok</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/10/conectar-java-con-mysql-en-netbeans.html' title='Conectar Java con MySQL en NetBeans'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=116084682662300024&amp;isPopup=true' title='36 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/116084682662300024/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/116084682662300024'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/116084682662300024'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-116025205228627279</id><published>2006-10-07T13:11:00.000-07:00</published><updated>2006-10-07T13:22:11.663-07:00</updated><title type='text'>Conectarse a MySQL con NetBeans</title><content type='html'>&lt;div style="text-align: justify;"&gt;En este articulo explicare brevemente la manera de conectar MySQL en NetBeans 5.0, no es muy complicado. Antes de empezar supongo que ya tiene instalado tanto MySQL como NetBeans.&lt;br /&gt;&lt;br /&gt;Bueno, lo primero que hay que hacer es descargar el driver para conectarnos, esto se hace desde la página de&lt;a href="http://dev.mysql.com/"&gt; MySQL developer's.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ahora, abrimos NetBeans y creamos un proyecto, hacemos clic en la pestaña "Runtime" y buscamos la opción "Databases", hacemos doble clic sobre ella. Nos mostrara una carpeta con el nombre Driver, a esta le daremos clic con el botón derecho del mouse y seleccionamos Add Driver.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.netbeans.org/images/articles/win-with-netbeans/adddriver.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.netbeans.org/images/articles/win-with-netbeans/adddriver.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nos mostrara un cuadro de dialogo en el cual debemos agregar el driver que descargamos anteriormente. Esto se hace oprimiendo el botón Add, deberemos buscar el archivo mysql-connector-java-3.1.6-bin.jar. En la opción Driver Class debemos seleccionar "com.mysql.jdbc.Driver".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.netbeans.org/images/articles/win-with-netbeans/selectdriver.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.netbeans.org/images/articles/win-with-netbeans/selectdriver.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ahora, veremos que en la carpeta "Driver" nos aparecerá una opción llamada com.mysql.jdbc.Driver, la seleccionamos con el botón derecho del mouse y seleccionamos "Connect Using"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.netbeans.org/images/articles/win-with-netbeans/connectusing.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.netbeans.org/images/articles/win-with-netbeans/connectusing.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ahora, se nos pide los datos de la base de datos, en la opción "Database URL" debemos ingresar la dirección de la base de datos, empezando con el prefijo "jdbc:mysql:://host/bd, ingresamos nuestro nombre de usuario y contraseña.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.netbeans.org/images/articles/win-with-netbeans/conestablished.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.netbeans.org/images/articles/win-with-netbeans/conestablished.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nos deberá salir un mensaje diciendo "Connection established", si es así, la conexión se completo sin problemas.&lt;br /&gt;&lt;br /&gt;Bueno, ya esta la conexión, en otro post escribiré la forma de crear una tabla, aunque es muy intuitivo teniendo ya esto hecho.&lt;br /&gt;&lt;a href="http://www.netbeans.org/kb/articles/mysql-client.html"&gt;&lt;br /&gt;Fuente&lt;/a&gt; (ingles)&lt;br /&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/10/conectarse-mysql-con-netbeans_07.html' title='Conectarse a MySQL con NetBeans'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=116025205228627279&amp;isPopup=true' title='9 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/116025205228627279/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/116025205228627279'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/116025205228627279'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115941837736812187</id><published>2006-09-27T21:36:00.000-07:00</published><updated>2006-09-27T21:39:37.406-07:00</updated><title type='text'>Programadores matando un dragon</title><content type='html'>&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt; - Llega, encuentra al dragón, desarrolla un framework para aniquilación de tragones en múltiples capas, escribe varios artículos sobre el framework… pero no mata al dragón.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;.NET&lt;/strong&gt; - Llega, ve la idea del desarrollador de Java y la copia, intenta matar al dragón, pero el bicho se lo come&lt;/p&gt; &lt;p&gt;&lt;strong&gt;C&lt;/strong&gt; - Llega, mira al dragón con mirada de desprecio, tira de espada, degolla al dragón, encuentra a la princesa… y la ignora para ver los últimos checkins del cvs del kernel de linux&lt;/p&gt; &lt;p&gt;&lt;strong&gt;C++&lt;/strong&gt; - Crea un pincho básico y va juntando funcionalidades hasta tener una espada compleja que apenas consigue entender… mata al dragón pero se atasca en medio del puente por culpa de pérdidas de memoria (memory leaks)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;COBOL&lt;/strong&gt; - Llega, ve al dragón y piensa que es demasiado viejo para conseguir matar un bicho de ese tamaño y quedarse con la princesa, y entonces se va&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Pascal&lt;/strong&gt; - Se prepara durante 10 años para crear un sistema de aniquilación de dragones… cuando llega el momento descubre que el programa sólo acepta lagartijas como entrada&lt;/p&gt; &lt;p&gt;&lt;strong&gt;VB&lt;/strong&gt; - Monta un arma de destrucción de dragones a partir de varios componentes, salta encima del lomo del dragón, y en la hora H descubre que la espada sólo funciona durante las noches de lluvia…&lt;/p&gt; &lt;p&gt;&lt;strong&gt;PL/SQL&lt;/strong&gt; - Recoge datos de otros matadores de dragones, crea tablas con n relaciones de complejidad ternaria, datos en tres dimensiones, OLAP, tarda quince años para procesar la información… y para entonces la princesa se volvió lesbiana.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ruby&lt;/strong&gt; - Llega con muchísima fama, diciendo que es el mejor en hacer cualquier cosa y cuando va a enfrentarse al dragón muestra una peliculita de el matando a un dragón… el dragón se lo come de puro aburrimiento&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Smalltalk&lt;/strong&gt; - Llega, analiza al dragón y a la princesa, se da la vuelta y se pira: ellos son muy inferiores&lt;/p&gt; &lt;p&gt;&lt;strong&gt;shell&lt;/strong&gt; - Crea un arma poderosa para matar dragones, pero en la hora H no recuerda como usarla&lt;/p&gt; &lt;p&gt;&lt;strong&gt;shell(2)&lt;/strong&gt;- El tío se acerca al dragón con un script de dos líneas que mata, corta, destripa, empala, pica en pedacitos y empaca al bicho, pero a la hora de ejecutarlo el script aumenta, engorda, enfurece y pone alcohol en el fuego del dragón.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ensamblador&lt;/strong&gt; - Cree que está haciendo lo más correcto y eficiente… pero pone un A en lugar de un D y mata a la princesa para terminar follándose al dragón&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Fortran&lt;/strong&gt; - Llega y desarrolla una solución con 45 mil líneas de código, mata al dragón, va al encuentro de la princesa… pero ella le llama tirillas y se va corriendo detrás del programador de java que era elegante y además es rico&lt;/p&gt; &lt;p&gt;&lt;strong&gt;FOX PRO&lt;/strong&gt; - Desarrolla un sistema para matar al dragón. Por fuera es precioso y funciona, pero por dentro está todo parcheado y cuando va a ejecutar el aniquilador de dragones recuerda que olvidó indexar los DBF.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;ANALISTA DE PROCESOS&lt;/strong&gt; - Se acerca al dragón con dos toneladas de documentación desarrollada sobre el proceso de matar un dragón genérico, desarrolla un DFD para liberar a la princesa y casarse con ella, convence al dragón de que es lo mejor para el y que no va a doler. Al ejecutar el proceso estima el esfuerzo y el tamaño del daño que causará con la firma del papa, de Buda y de Joan Manuel Serrat para el plano, y entonces compra dos bombas nucleares, 45 cañones, un portaaviones y contrata a 300 hombres armados hasta los dientes… cuando en realidad tan sólo necesitaría la espada que tenía en la mano desde el principio&lt;/p&gt; &lt;p&gt;&lt;strong&gt;CLIPPER&lt;/strong&gt;: Monta una rutina que carga un array de codeblocks para insultar al dragón, cantarle a la princesa, cargar la espada a memoria, moler al dragón, limpiar la suciedad, preparar un vaso de leche condensada con moras para la princesa, follar a la princesa, darse un baño, encender el coche, ponerle gasolina y volver para casa. A la hora de ejecutar recibe un “Bound Error: Array Access” y el dragón se lo come con patatas&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Lisp&lt;/strong&gt;, donde el famoso caballero andante, tras hablar con numerosos expertos en matar dragones y modelar el conocimiento que ellos poseen programa el sistema y se da cuenta… de que se ha dejado algún paréntesis&lt;/p&gt; &lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;: Monta una web sobre espadas famosas usadas para matar dragones, pero se pasa los estándares W3C por el forro. Cuando se encara con el dragón descubre que el código no es compatible con su navegador, por lo que se queda compuesto y sin espada. El dragón se lo merienda como aperitivo. (Darkblade)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prolog&lt;/strong&gt;: Piensa que para matar al dragón necesita un arma. Busca en un catálogo 182014 armas. Para cuando la princesa muere de vieja ya ha logrado descubrir como fabricar todas las armas que empiezan por la A: Armas atómicas, Alabardas,Alfanges, Asesinos contratados, Armas blancas, Antiaéreos, Arcos, …&lt;br /&gt;&lt;strong&gt;PHP&lt;/strong&gt;: Crea una página web que al ejecutarla eliminará al $dragón tirando de una base de datos de armas en mysql y sobre un servidor apache. Sin embargo, se olvidó el Where en la query de delete y mata a la princesa, al dragon, a los campesinos, a la bruja, al hechicero y al propio programador.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;: El programador intenta matar al gran dragón verde que lanza fuego por la boca. Crean un script que borrará al dragón cuando carge una página web para unos segundos después crear unas damiselas que lancen flores y hagan soniditos de aplausos. Por desgracia no tuvo en cuenta la estructura Dom del lagarto, también conocido como Mozilla, y lo único que consigue es rellenar su consola de errores y que el libro de mozilla narre como acabó devorado.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;ActiveX&lt;/strong&gt;: Los programadores crean un tunel para entrar a la guarida del dragón desde el castillo y ejecutar un programa que matará al dragón desde una distacia segura y prudencial. El dragón descubre el tunel, se come a los trabajadores que cavaban, a los matadores de dragones y esclaviza a todos los siervos del castillo que pasan a ser sus esclavos. El castillo pasa a ser un lugar de cría de dragones lleno crías que manda en pop ups a otros castillos. Los restos poco apetitosos de los caballeros los mete en latas de Spam y manda también a otros castillos como advertencia.&lt;br /&gt;&lt;strong&gt;Basic&lt;/strong&gt;. Crean un arma capaz de matar a dragones de papel, pero por mucho que la perfeccionan descubren que no sirve para matar a ningún dragón más grande que una cría de caniche.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Matlab&lt;/strong&gt;: Crean un bucle que calcula las trayectorias para lanzar una flecha gigante contra el dragón. El programa funciona perfectamente. Sólo faltan los voluntarios capaces de lanzar la flecha con la fuerza y puntería necesaria.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Modula 2&lt;/strong&gt;: Implementa un método académicamente impecable para matar al dragón, pero no encuentra ninguna espada de verdad con la que usar dicho método.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Programador de videojuegos&lt;/strong&gt; :Se pasa dos años programando una espada state of the art, con shaders y todo. A la hora de matar al dragón se encuentra con que la mitad de los caballeros no tienen fuerza para mover la espada. Luego alguien programa un parche que revela las escenas de sexo con la princesa.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;CSS: &lt;/strong&gt;Tras crear el caballero un contenedor y un supercontenedor para mantenerse centrado y estable a pesar de las envestidas del dragón, olvida definir un DOCTYPE correcto y el dragón se lo merienda cual pincho de calamares.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;WEB 2.0: &lt;/strong&gt;Desarrolla una forma de matar al dragon utilizando XML, tonos pastel y letras grandes, y permite que todos los guerreros del mundo opinen sobre la mejor forma de matar al dragon con un sistema de tags y puntuaciones. En medio de la discusión, una horda de trolls revienta la convencion y mueren todos.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Consultor externo:&lt;/strong&gt; Aconseja una estrategia planificada con un incremento progresivo de medios y personal empleado, dosificado a partir de un comite de expertos internos y externos que se reuniran con periodicidad bimensual para analizar los informes de progreso. Una actitud proactiva debe ser impulsada en general en la seleccion de personal, asi como un buen ambiente interno. De hecho su propia empresa tiene expertos especializados en la seleccion de personal de programacion y en la dinamizacion de ambientes laborales. Una ciudadela de programacion es lo mas adecuado para dar estabilidad y solidez a la empresa. Conviene que se asuma desde el principio que el gasto de formacion de personal no debe ser cicatero, si queremos que la cosa avance, asi como que el sistema de pruebas debe de estar estandarizado y documentado para cada programa, para evitar sorpresas indeseables de ultima hora.&lt;br /&gt;Si en el transcurso del proyecto se produjera la extincion de los dragones o de las princesas, ya fuera por la desaparicion de su entorno natural por deforestacion o sepultamiento bajo informes documentados o por el advenimiento de la revolucion francesa, entonces habria que redirigir el proyecto-ciudadela a los canales publicos de reconversion industrial de urgencia social, para lo cual seria conveniente un comite de expertos internos y externos que se reunieran con periodicidad bimensual para establecer las politicas de reconversion y los ajustes necesarios a la luz de los informes de progreso.&lt;/p&gt; &lt;p&gt;&lt;strong&gt; El programador de Ajax:&lt;/strong&gt; Prepara una Interface para mentenerse alejado del Dragon y Atacar. Arma la Espada de DIV’s y viste a su caballero de hermosos CSS’s y lo manda a combatir. Cada vez que su caballero necesitaba algo, lo solicitaba y recibia inmediatamente lo que necesitaba, super armas, cambio de armaduras, invisibilidad, etc etc. Pero el dragón pendejo con unos escupitazos de fuegos crea una Firewall que hace lento al caballero Ajax. y de aburrido se lo come y lo caga al lado de Web 2.0.&lt;/p&gt; &lt;p&gt;Fuente: &lt;a target="_blank" href="http://rebotacion.blogspot.com/2006/03/programadores-matando-un-dragn.html"&gt;Rebotacion&lt;/a&gt; &lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/09/programadores-matando-un-dragon.html' title='Programadores matando un dragon'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115941837736812187&amp;isPopup=true' title='2 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115941837736812187/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115941837736812187'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115941837736812187'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115673657102965245</id><published>2006-08-27T20:40:00.000-07:00</published><updated>2006-08-27T20:42:51.043-07:00</updated><title type='text'>Proverbio</title><content type='html'>&lt;span style="font-style: italic;"&gt;"El mayor placer de un programador inteligente es aparentar ser un idiota frente a un programador idiota que aparenta ser inteligente"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;¿Qué opinan?&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/08/proverbio.html' title='Proverbio'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115673657102965245&amp;isPopup=true' title='3 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115673657102965245/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115673657102965245'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115673657102965245'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115604676585854413</id><published>2006-08-19T20:54:00.000-07:00</published><updated>2006-08-19T21:06:05.876-07:00</updated><title type='text'>Alternativa a clrscr() en Linux</title><content type='html'>Como muchos saben, la función "clrscr()" incluida en la librería conio.h es utilizada para limpiar la pantalla. Bueno, en Linux no existe la librería conio (de Borland) así que no podemos utilizar tal función para limpiar la pantalla. Buscando por allí encontre una forma de limpiar la pantalla, una simple instrucción:&lt;br /&gt;&lt;br /&gt; printf("\033[2J");&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;void clear()&lt;br /&gt;{&lt;br /&gt;    printf("\033[2J");&lt;br /&gt;}&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    printf("1ra linea\n");&lt;br /&gt;    clear();&lt;br /&gt;    printf("2da linea");&lt;br /&gt;    return 0;&lt;br /&gt;}</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/08/alternativa-clrscr-en-linux.html' title='Alternativa a clrscr() en Linux'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115604676585854413&amp;isPopup=true' title='7 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115604676585854413/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115604676585854413'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115604676585854413'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115578150160258327</id><published>2006-08-16T19:24:00.000-07:00</published><updated>2006-08-16T19:25:44.923-07:00</updated><title type='text'>Cómo hacer dinero con Open Source</title><content type='html'>&lt;div style="text-align: justify;"&gt;Via Linux para todos encontre este &lt;a href="http://www.linuxparatodos.net/geeklog/article.php?story=comohacerdinero"&gt;articulo&lt;/a&gt; en el cual se explica de que forma se podria hacer dinero con el open source.&lt;br /&gt;&lt;br /&gt;Cabe decir que en este artículo no descubre el hilo negro, simplemente retoma lo que muchos conocen para hacer un negocio con Open Source: servicios, ya sea soporte y capacitación.&lt;br /&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/08/cmo-hacer-dinero-con-open-source.html' title='Cómo hacer dinero con Open Source'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115578150160258327&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115578150160258327/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115578150160258327'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115578150160258327'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115568399098441264</id><published>2006-08-15T16:12:00.000-07:00</published><updated>2006-08-15T16:22:22.990-07:00</updated><title type='text'>Productos Turbo de Borland</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.idg.ro/rocs/borland.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 121px; height: 121px;" src="http://www.idg.ro/rocs/borland.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(34, 34, 34);"&gt;&lt;em&gt;Borland piensa sacar una serie de productos, denominados genéricamente&lt;/em&gt;&lt;/span&gt;&lt;span style="color: rgb(34, 34, 34);"&gt;&lt;em&gt; Turbo, de carácter&lt;/em&gt;&lt;/span&gt;&lt;span style="color: rgb(34, 34, 34);"&gt;&lt;em&gt; gratuito y que permitirán programar con Delphi, C++ y C#. Al parecer habrá un Turbo Delphi para Windows, un Turbo Delphi para .NET, un Turbo C++ y un Turbo C#. Ya hay una página oficial, &lt;a href="http://www.turboexplorer.com/"&gt;Turbo Explorer&lt;/a&gt;, con una cuenta&lt;/em&gt;&lt;/span&gt;&lt;span style="color: rgb(34, 34, 34);"&gt;&lt;em&gt; atrás, sobre esta nueva familia de productos. Borland sigue con esto una estrategia similar a los paquetes Express de Microsoft al ofrecerlos de forma gratuita para promocionar sus hermanos mayores y de pago.&lt;br /&gt;&lt;br /&gt;Fuente: &lt;a href="http://www.barrapunto.com"&gt;Barrapunto&lt;/a&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/08/productos-turbo-de-borland.html' title='Productos Turbo de Borland'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115568399098441264&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115568399098441264/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115568399098441264'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115568399098441264'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115497519211388848</id><published>2006-08-07T11:07:00.000-07:00</published><updated>2006-08-07T11:26:32.133-07:00</updated><title type='text'>Primeros pasos con Ruby</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;¿Qué es Ruby?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Es un  "lenguaje de  guiones" (scripts) de tipo multiplataforma que se orienta en una programación rápida, sencilla y fácil de aprender. Al referisnos que es un lenguaje de  guiones estamos indicando que Ruby nos permite:&lt;br /&gt;&lt;br /&gt;Posibilidades de realizar directamente llamadas al sistema operativo, potentes operaciones sobre cadenas de caracteres y expresiones regulares, así como retroalimentación inmediata durante el proceso de desarrollo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Por qué es fácil Ruby?&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Es innecesario las declaraciones de variables.&lt;/li&gt;&lt;li&gt;Las variables no tienen tipo.&lt;/li&gt;&lt;li&gt;La sintaxis es simple y consistente.&lt;/li&gt;&lt;li&gt;La gestión de la memoria es automática.&lt;/li&gt;&lt;li&gt;Enteros de precisión múltiple.&lt;/li&gt;&lt;li&gt;Carga dinámica.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Programación orientada a objetos:&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Todo es un objeto.&lt;/li&gt;&lt;li&gt;Clases, herencia, métodos,...&lt;/li&gt;&lt;li&gt;Métodos singleton.&lt;/li&gt;&lt;li&gt;Mixins por módulos.&lt;/li&gt;&lt;li&gt;Iteradores y cierres.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalación de Ruby&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Ahora vamos a instalar Ruby en nuestra computadora, así que lo primero que debemos hacer y que es lógico debemos descargarnos el paquete, el cual encontraras en la siguiente url:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="ftp://ftp.ruby-lang.org/pub/ruby/"&gt;ftp://ftp.ruby-lang.org/pub/ruby/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Dependiendo de tu sistema operativo, desrgate el paquete correspondiente. Ahora si vamos a instalarlo, si vas a trabajar sobre Windows no tendras complicaciones, ya sabes que hacer, next, next y mas next hasta terminar  ;).&lt;br /&gt;&lt;br /&gt;En Linux la instalación sería de esta forma:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Lo primero que vamos a hacer es lo siguiente: ./configure&lt;/li&gt;&lt;li&gt;Si este funciona generara config.h y el makefile.&lt;/li&gt;&lt;li&gt;Quita el mark(del comentario #) antes de que los nombres del módulo de ext/Setup (o agregue los nombres del módulo si no presentes), si deseas ligar los módulos estáticamente. Si no deseas compilar los módulos no estáticos de la extensión (probablemente en arquitecturas que no permitan el cargamiento dinámico), quita la marca del comentario de la línea "# opción nodynamic" en ext/Setup.&lt;/li&gt;&lt;li&gt;Ahora debemos correr make.&lt;/li&gt;&lt;li&gt;Opcionalmente corre "make test" para comprobar que el interprete de ruby compilado funciona correctamente. Si vez el mensaje "test succeeded", quiere decir que todo funciona correctamente.&lt;/li&gt;&lt;li&gt;Escribir o correr el comando "make install"&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Si llegas a tener problemas en la instalación te recuerdo que abras el archivo readme, que viene en el archivo tar de instalación de Ruby que descargaste. Allí viene información detallada de cómo instalar Ruby.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mi primer programa en Ruby&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Bien una vez tenemos instalado Ruby en nuestra computadora ya podemos empezar a programar, aquí únicamente veremos un programilla sencillo.&lt;br /&gt;&lt;br /&gt;Lo primero que haremos es verificar si tenemos realmente instalado Ruby en nuestra computadora, para ello en la consola tecleamos lo siguiente seguido de un enter:&lt;br /&gt;&lt;br /&gt;# ruby - v&lt;br /&gt;# ruby 1.6.3 (2001-11-23) [i586-linux]&lt;br /&gt;&lt;br /&gt;Si nos aparece eso Ruby esta instalado y podemos iniciar a programar, y como en todo lenguaje iniciaremos por mandar un mensaje que diga "Hola Mundo".&lt;br /&gt;&lt;br /&gt;Para esto tecleamos en la consola lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: right;"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;# ruby -e 'print "Hola Mundo\n"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Y nos deberá aparecer este mensaje :  Hola Mundo.&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/08/primeros-pasos-con-ruby.html' title='Primeros pasos con Ruby'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115497519211388848&amp;isPopup=true' title='1 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115497519211388848/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115497519211388848'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115497519211388848'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115432137565713846</id><published>2006-07-30T21:46:00.000-07:00</published><updated>2006-07-30T21:51:44.473-07:00</updated><title type='text'>Consejos para programar en C</title><content type='html'>&lt;meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt;&lt;title&gt;&lt;/title&gt;&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt;&lt;meta name="CREATED" content="20060730;21223100"&gt;&lt;meta name="CHANGED" content="16010101;0"&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { size: 21.59cm 27.94cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;&lt;/style&gt;&lt;meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt;&lt;title&gt;&lt;/title&gt;&lt;meta name="GENERATOR" content="OpenOffice.org 2.0  (Linux)"&gt;&lt;meta name="CREATED" content="20060730;21223100"&gt;&lt;meta name="CHANGED" content="16010101;0"&gt;              &lt;style type="text/css"&gt;  &lt;!--   @page { size: 21.59cm 27.94cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p style="margin-left: 0.02cm; margin-bottom: 0cm; page-break-after: avoid;"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;&lt;u&gt;Manejo de errores&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;Es  muy importante&lt;b&gt; detectar a tiempo que ha habido un&lt;/b&gt; error  cuando se ejecuta nuestro programa y en ese momento terminar  la  ejecución para evitar qué seguir con ella nos lleve a  errores más graves que puedan "colgar" la máquina,  por ejemplo.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.39cm;" align="justify"&gt;  &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;Es recomendable que la&lt;b&gt; salida  del programa vaya a stdout (o salida estándar) y los errores  vayan a stderr.&lt;/b&gt;   Por ejemplo:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-left: 0.69cm; margin-bottom: 0cm; line-height: 0.28cm;"&gt; &lt;span style="color:#000000;"&gt;           &lt;span style="font-size:85%;"&gt;fprintf(stdout, "La palabra es aceptada\n”);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.69cm; margin-bottom: 0cm; line-height: 0.35cm;"&gt; &lt;span style="color:#000000;"&gt;           &lt;span style="font-size:85%;"&gt;fprintf(stderr, "Los argumentos de entrada son invalidos\n");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.02cm; margin-bottom: 0cm; line-height: 0.9cm; page-break-after: avoid;"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;&lt;u&gt;&lt;b&gt;En la lectura de ficheros&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.02cm; margin-bottom: 0cm; line-height: 0.34cm;"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;Cuando se accede a un fichero para leerlo nos pueden ocurrir los siguientes casos que debemos evitar;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.02cm; margin-bottom: 0cm; line-height: 0.34cm;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.41cm;" align="justify"&gt;  &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;Se intenta leer&lt;b&gt; un fichero que  no existe&lt;/b&gt; y en vez de&lt;b&gt; dar error y salir del programa&lt;/b&gt; se  continúa y al final el programa  termina fallando.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.39cm;" align="justify"&gt;  &lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;Nuestro programa no detecta el  final de fichero y se cuelga.&lt;b&gt; Con las funciones de detección  de final de fichero y con las&lt;/b&gt;  &lt;b&gt;funciones de lectura de  fichero debemos poder detectar cuando terminamos de leer un fichero.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.39cm;" align="justify"&gt;  &lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;Cuando se está leyendo un  fichero no se comprueba que las cosas que se desean leer estén  como se espera y esto puede  producir que nuestro programa "cuelgue"  la máquina.&lt;b&gt; Cuando se está leyendo de un fichero y  rellenando con lo que lee&lt;/b&gt;  &lt;b&gt;unos datos&lt;/b&gt; se&lt;b&gt; debe  comprobar que&lt;/b&gt; se&lt;b&gt; lee lo deseado para evitar problemas&lt;/b&gt;&lt;/span&gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-left: 0.04cm; margin-bottom: 0cm; line-height: 0.81cm; page-break-after: avoid;"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;&lt;u&gt;&lt;b&gt;En el paso de argumentos al main&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.39cm;" align="justify"&gt;  &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Si nuestro programa puede  recibir parámetros&lt;/b&gt; a la hora de ejecutarse y&lt;b&gt; estos no  son introducidos,&lt;/b&gt;  lo más lógico es,&lt;b&gt; o bien&lt;/b&gt;   &lt;b&gt;pedirlos a continuación, o dar un error diciendo cual es  la sintaxis de lo que se debería haber introducido&lt;/b&gt; - Y  para  completar podría el programa mostrar una ayuda de los  parámetros que acepta y su uso a través del parámetro  -? o -h tras el nombre del programa.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.41cm;" align="justify"&gt;  &lt;span style="font-size:85%;"&gt;&lt;span style="color:#000000;"&gt;&lt;b&gt;Si&lt;/b&gt; el programa espera  argumentos en línea de comandos, hay que asegurarse de que el  usuario los ha introducido&lt;b&gt; comprobando&lt;/b&gt; &lt;b&gt;el valor de argc.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-left: 0.07cm; margin-bottom: 0cm; line-height: 0.9cm;"&gt;  &lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;u&gt;Trabajo con memoria dinámica&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.39cm;" align="justify"&gt;  &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;Lo primero que tenemos que tener  en cuenta es que tenemos en nuestro fichero los includes: &lt;b&gt;  &lt;alloc.h&gt; y &lt;stdlib.h&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.34cm;" align="justify"&gt;  &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Siempre que usemos una  variable definida como puntero hay que reservar memoria,&lt;/b&gt; el  siguiente ejemplo sería erróneo ya que no se le da  memoria en ningún sitió al puntero a char:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-left: 0.56cm; margin-bottom: 0cm; line-height: 0.25cm;" align="center"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;char *cadena;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.74cm; margin-bottom: 0cm; line-height: 0.44cm;" align="center"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;y después:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.76cm; margin-bottom: 0cm; line-height: 0.25cm;" align="center"&gt; &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;scanf("%s", cadena);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.76cm; margin-bottom: 0cm; line-height: 0.25cm;" align="justify"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.25cm;" align="justify"&gt;  &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;Se tiene que reservar la memoria  para la cadena de caracteres utilizada.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.34cm;" align="justify"&gt;  &lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;Si el programa tiene que parar la  ejecución por un error, se debe liberar la memoria reservada  hasta el momento.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-left: 0.09cm; margin-bottom: 0cm; line-height: 0.83cm;"&gt; &lt;span style="color:#000000;"&gt; &lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;u&gt;Trabajo con includes (.h)&lt;/u&gt;;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.6cm;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;.  No se puede poner ningún include del tipo&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.6cm;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;Indicando  el path completo al archivo: #include “a:\mifichero.h”  Se pone  de forma relativa: #include “mifichero.h” &lt;/span&gt;&lt;/span&gt;  &lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.6cm;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;De  un archivo de código: #include “mifichero.c”  Nunca un .c  en un include.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm; line-height: 0.6cm;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;De  un archivo nuestro, entre&lt;b&gt; "&lt;"&lt;/b&gt; y&lt;b&gt; &lt;/b&gt;"&gt;":  #include &lt;mifichero.h&gt; Se pone con comillas:  #include  “mifichero.h”&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-size:85%;"&gt;Siendo mifíchero.h o mifíchero.c ficheros creados por nosotros. Lógicamente no nos referimos a stdlib.h o stdio.h, u otros includes del sistema.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;No  olvidar poner ningún include,&lt;/b&gt; es típico olvidar  &lt;alloc.h&gt;, &lt;stdlib.h&gt; (sin estos includes el programa  puede dejar la maquina “colgada” a la hora de ejecutarse). Para  saber si nos olvidamos poner algún include hay que configurar  el Turbo C para que nos avise con un “warning” de ello. Lo más  cómodo y recomendable es activar en las opciones del  compilador Turbo C (o el que utilicemos) para que avise con un  mensaje en todos los casos que nos ofrece.&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:85%;"&gt;Cuando  creamos nuestro fichero de cabecera (.h) tenemos que tener las  siguientes instrucciones en éste:&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-left: 1.36cm; margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:85%;"&gt;#ifndef__IDENTIFICADOR&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 1.36cm; margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:85%;"&gt;#define__IDENTIFICADOR&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 1.36cm; margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:85%;"&gt;(...)&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 1.36cm; margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-size:85%;"&gt;#endif&lt;/span&gt;&lt;/p&gt; &lt;p style="" 02cm="" bottom="" 0cm="" height=""&gt;&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/07/consejos-para-programar-en-c.html' title='Consejos para programar en C'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115432137565713846&amp;isPopup=true' title='4 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115432137565713846/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115432137565713846'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115432137565713846'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115272599762904431</id><published>2006-07-12T10:38:00.000-07:00</published><updated>2006-07-12T10:39:57.643-07:00</updated><title type='text'>Sentirse programador</title><content type='html'>Este escrito lo encontre en Internet, no recuerdo la fuente, pero se me hizo muy interezante, jeje&lt;br /&gt;&lt;br /&gt;-----------------------------&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sentirse programador&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Una de las cosas que más me cuesta explicar a la gente no informática con la que me relaciono es la sensación que tienes cuando oyes la llamada del código. Suele suceder cuando llevas un tiempo sin programar. Puede que durante ese tiempo hayas estado con ordenadores durante diez horas al día, navegando, administrando, leyendo... pero no programando.&lt;br /&gt;&lt;br /&gt;Entonces un día, sin previo aviso, te entra el gusanillo. Tienes una idea o decides llevar adelante un proyecto que tenías aplazado y comienza la vorágine.&lt;br /&gt;&lt;br /&gt;Al principio, con fiebre extrema, pasas horas aprisionado delante de la pantalla, el teclado echa humo y desarrollas líneas de código a toda velocidad. El síntoma principal es el insomnio, normalmente la fiebre te entra a primeras horas de la noche, y no vas a perder el tiempo durmiendo o cenando. Las únicas distracciones que te permites son levantarte a preparar una cafetera, ya que otro síntoma es el consumo de bebidas estimulantes. Cierras el irc, el jabber, el correo y los feeds por leer se acumulan, todo lo que te pueda distraer es eliminado y solo tienes un objetivo: el código.&lt;br /&gt;&lt;br /&gt;La siguiente fase es la de reorganización. En un momento dado te das cuenta que tu mente va más deprisa que el código que generas, antes de entrar en esta fase es al revés, y que deberías parar un momento a generar un código más eficiente, más portable, más legible, algo más estandarizado y que incluso un subversión te vendría bien. Al final pasas del subversión por el tiempo que te llevaría leer tres páginas de documentación y sufres del clásico síntoma de libreritis. Empiezas a organizar clases en librerias, creas apis, renombras variables y desgastas dos milímetros las teclas de copiar y pegar.&lt;br /&gt;&lt;br /&gt;La tercera fase es la del piño. Te quedas atascado con un problema, ya que al único que compilan los programas a la primera es a Chuck Norris. Un fallo que no encuentras, una situación que no te habías planteado o cualquiera de los múltiples poltergaist que se encuentra un programador. Llenas el código de printfs, de asignaciones de variables y juras en arameo. Al llegar a esta fase, si no vives solo, tu pareja percibe que no te ha visto últimamente y decide venir a empreñarte con tonterías como "¿qué haces?" o "¿qué te pasa?" justo a mitad de una sesión de debug.&lt;br /&gt;&lt;br /&gt;Esta fase se puede prolongar en el tiempo y tu nivel de estrés sube de forma exponencial, además tu pareja también se estresa contigo diciendo que la ignoras, que la haces sentir mal y que además hay que ir al super para hacer la compra. La mayoría de divorcios de programadores son provocados por una mala asignación de valores no detectada.&lt;br /&gt;&lt;br /&gt;Poco a poco el estrés se te va pasando, pero el interés por el programa bloqueado también, es en ese momento cuando vuelves a la vida real. Empiezas con las comidas a las horas que toca, ves algo de televisión, incluso duermes, pero... no del todo.&lt;br /&gt;&lt;br /&gt;El problema se ha quedado incrustado en tu cerebro en segundo plano, si te concentras un poco incluso le oyes dar vueltas por ahí dentro, y precedido por un toque de trompetas aparece la solución al jodido bug. Da igual lo que estes haciendo o la hora que sea, normalmente las tres de la mañana, vas corriendo a la computadora y tienes una recaída de la fiebre inicial y entre gritos y exclamaciones varias descubres que funciona&lt;br /&gt;&lt;br /&gt;Por último tienes el subidón, terminas el programa y la cosa funciona. Buscas gente a quien contarselo, si el programa es complejo te das cuenta de lo bueno que eres y te cuelgas medallas. Caminas por la calle con una sonrisa de oreja a oreja y cuando la gente te mira lamentas que ellos no sepan todo lo que tú has hecho, pero el subidón se pasa y vuelves al letargo. Volverá a pasar un tiempo hasta que tengas tú idea o que el proyecto te apasione y mientras tanto pasaras las horas con tu ordenador esperando, ¿deseando?, que vuelva esa sensación.&lt;br /&gt;&lt;br /&gt;En resumen, no se si un programador es un yonki, que tiene que meterse su dosis para tener el subidón de forma periódica, o un enfermo crónico con recaídas en su enfermedad. ¿tú que piensas?</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/07/sentirse-programador.html' title='Sentirse programador'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115272599762904431&amp;isPopup=true' title='1 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115272599762904431/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115272599762904431'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115272599762904431'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115240025108553473</id><published>2006-07-08T16:08:00.000-07:00</published><updated>2006-07-08T16:11:44.746-07:00</updated><title type='text'>Creando un niño Linux</title><content type='html'>&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WrCsq2yPjfU"&gt;&lt;embed src="http://www.youtube.com/v/WrCsq2yPjfU" type="application/x-shockwave-flash" height="350" width="425"&gt;&lt;br /&gt;&lt;/object&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/07/creando-un-nio-linux.html' title='Creando un niño Linux'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115240025108553473&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115240025108553473/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115240025108553473'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115240025108553473'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-115108260066434261</id><published>2006-06-23T10:06:00.000-07:00</published><updated>2006-06-23T10:10:00.676-07:00</updated><title type='text'>Libros gratis</title><content type='html'>Navegando por Internet encontre esta página con una gran cantidad de libros electronicos sobre Java. Destacan temas sobre swing, ajax, struts, XML, java 3D, programación web y muchos otros. No esta de mas tenerlos de referencia.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ebooklobby.com/index.php?cid=44"&gt;http://www.ebooklobby.com/index.php?cid=44&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/06/libros-gratis.html' title='Libros gratis'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=115108260066434261&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/115108260066434261/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/115108260066434261'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/115108260066434261'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-114704449938553810</id><published>2006-05-07T16:26:00.000-07:00</published><updated>2006-05-07T16:28:19.386-07:00</updated><title type='text'>Método de ordenación por selección directa</title><content type='html'>Consiste en ercorrer un vector desde la primera posición hasta n-1, en cada iteración se busca encontrar el elemento más pequeño, de tal forma que después de la primera iteración en la posición 0 este el elemento más pequeño de todo el vector; en la segunda iteración el segundo elemento más pequeño y así sucesivamente hasta ordenar todos los datos.&lt;br /&gt;&lt;br /&gt;Este método no es el más eficiente, pero es uno de lo más fáciles de implementar. En algunos casos, a este método se le nombra erroneamente "Metodo de la burbuja".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int i,j,aux;&lt;br /&gt;&lt;br /&gt;// Dar valores a los elementos del array&lt;br /&gt;&lt;br /&gt;for(i=1;i&lt;br /&gt;{&lt;br /&gt; // Se intenta añadir el elemento i.&lt;br /&gt; aux=array[i];&lt;br /&gt; for(j=i-1;j&gt;=0;j--) // Se recorre la sublista de atrás a adelante para buscar&lt;br /&gt; {                   // la nueva posición del elemento i.&lt;br /&gt;   if(aux&gt;array[j])  // Si se encuentra la posición:&lt;br /&gt;   {&lt;br /&gt;     array[j+1]=aux; // Ponerlo&lt;br /&gt;     break;          // y colocar el siguiente número.&lt;br /&gt;   }&lt;br /&gt;   else              // si no, sigue buscándola.&lt;br /&gt;     array[j+1]=array[j];&lt;br /&gt; }&lt;br /&gt; if(j==-1)     // si se ha mirado todas las posiciones y no se ha encontrado la correcta&lt;br /&gt;   array[0]=aux; // es que la posición es al principio del todo.&lt;br /&gt;}</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/05/mtodo-de-ordenacin-por-seleccin.html' title='Método de ordenación por selección directa'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=114704449938553810&amp;isPopup=true' title='2 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/114704449938553810/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/114704449938553810'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/114704449938553810'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-114636327376599180</id><published>2006-04-29T19:10:00.000-07:00</published><updated>2006-04-29T19:14:33.776-07:00</updated><title type='text'>Linux y yo</title><content type='html'>Por fin instale en mis computadoras el sistema operativo Linux, para ser mas exactos, la distribución &lt;a href="http://www.ubuntu-es.org/"&gt;Ubuntu&lt;/a&gt;, por tal motivo empezare otro blog, en el cual narrare todas mis aventuras con este sistema, espero y sea de ayuda para muchos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://linux-y-yo.blogspot.com/"&gt;Linux y yo&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/04/linux-y-yo.html' title='Linux y yo'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=114636327376599180&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/114636327376599180/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/114636327376599180'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/114636327376599180'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-114057585663857471</id><published>2006-02-21T18:33:00.000-08:00</published><updated>2006-02-21T18:37:36.650-08:00</updated><title type='text'>Funciones de la librería graphics</title><content type='html'>En la lista de documentos dejo un archivo con algunas funciones utiles de la librería graphics.</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/02/funciones-de-la-librera-graphics.html' title='Funciones de la librería graphics'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=114057585663857471&amp;isPopup=true' title='3 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/114057585663857471/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/114057585663857471'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/114057585663857471'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-114030780066427681</id><published>2006-02-18T16:03:00.000-08:00</published><updated>2006-02-18T16:10:00.663-08:00</updated><title type='text'>Secuencias de escape</title><content type='html'>Hay ciertos símbolos que tienen un uso especial en C, por lo tanto no se pueden imprimir de la misma forma que otro caracter.  Es necesario antes poner una diagonal invertida "\"&lt;br /&gt;&lt;br /&gt;\n     Linea nueva&lt;br /&gt;\b     Back space&lt;br /&gt;\t     Tabulador&lt;br /&gt;\a     Beep&lt;br /&gt;\"     Comilla&lt;br /&gt;\'      Apostrofe&lt;br /&gt;\\     Diagonal invertida&lt;br /&gt;\r     Retorno de carro. Regresa al inicio de la linea sin borrar&lt;br /&gt;\f      Form feed. Avanza página, sólo para impresora&lt;br /&gt;\x     Inserta valor hexadecimal&lt;br /&gt;\o     Inserta valor octal</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/02/secuencias-de-escape.html' title='Secuencias de escape'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=114030780066427681&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/114030780066427681/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/114030780066427681'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/114030780066427681'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-114030705250147332</id><published>2006-02-18T15:50:00.000-08:00</published><updated>2006-02-18T16:02:36.293-08:00</updated><title type='text'>Especificadores de formato</title><content type='html'>Los especificadores de formato se utilizan para escribir el valor de una variable, estos son:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Especificador                       Tipo&lt;/span&gt;&lt;br /&gt;        %d                                                          int&lt;br /&gt;        %f                                                             float&lt;br /&gt;        %c                                                          char&lt;br /&gt;        %ld                                                       long int&lt;br /&gt;        %lf                                                          double&lt;br /&gt;        %s                                                          char[] "cadena"&lt;br /&gt;        %e                                                    float con notación cientifica</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/02/especificadores-de-formato.html' title='Especificadores de formato'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=114030705250147332&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/114030705250147332/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/114030705250147332'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/114030705250147332'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-114005719779716133</id><published>2006-02-15T18:28:00.000-08:00</published><updated>2006-02-15T18:33:17.796-08:00</updated><title type='text'>Librería math.h</title><content type='html'>En la sección de documentos dejo un archivo que describe las funciones de la librería math.h</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/02/librera-mathh.html' title='Librería math.h'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=114005719779716133&amp;isPopup=true' title='3 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/114005719779716133/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/114005719779716133'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/114005719779716133'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-113954322416681693</id><published>2006-02-09T19:33:00.000-08:00</published><updated>2006-02-09T19:47:04.180-08:00</updated><title type='text'>Variables</title><content type='html'>Saludos a todos.&lt;br /&gt;&lt;br /&gt;Empezare por definir lo que es una variable. Una variable es un espacio en memoría para guardar información de un cierto tipo.&lt;br /&gt;&lt;br /&gt;Declaración:&lt;br /&gt;    Tipo Nombre;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;    int edad;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Caracteristicas&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;- Nombre sin espacios.&lt;br /&gt;- Sin caracteres especiales (&amp;, \, *, @, ?, ', ", entre otros).&lt;br /&gt;- No inician con números.&lt;br /&gt;- Máximo 32 caracteres.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Algunos ejemplos&lt;br /&gt;&lt;/span&gt;    int  edad;&lt;br /&gt;    float pi;&lt;br /&gt;    int a, b, c;    //Declaramos 3 variables int&lt;br /&gt;    int base = 10;    //Inicializamos la variable a 10&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/02/variables.html' title='Variables'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=113954322416681693&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/113954322416681693/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/113954322416681693'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/113954322416681693'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-113917507678758023</id><published>2006-02-05T13:30:00.000-08:00</published><updated>2006-02-05T13:49:42.526-08:00</updated><title type='text'>Tipos de datos en C</title><content type='html'>Saludos.&lt;br /&gt;&lt;br /&gt;E aquí mi primera tarea, nos encargaron investigar, o mas bien trancribir, jeje, los tipos de datos que maneja C. Aquí les dejo la tabla.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2712/2196/1600/tipodedatos.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/2712/2196/320/tipodedatos.jpg" alt="" border="0" /&gt;&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/02/tipos-de-datos-en-c_05.html' title='Tipos de datos en C'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=113917507678758023&amp;isPopup=true' title='2 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/113917507678758023/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/113917507678758023'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/113917507678758023'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-21787490.post-113890473880435701</id><published>2006-02-02T10:14:00.000-08:00</published><updated>2006-02-02T10:25:38.813-08:00</updated><title type='text'>Primer proyecto</title><content type='html'>Saludos a todos.&lt;br /&gt;&lt;br /&gt;Ayer fue mi primera clase de programación y ya nos encargaron un proyecto :D, aunque este se entregara hasta final de semestre, cada mes habra una revición.&lt;br /&gt;&lt;br /&gt;Algunos de los proyectos a escojer, eran un tetris, PacMan, agedrez, gato, un paint, un graficador matematico, entre otros. Yo me incline por realizar mi propio PacMan.&lt;br /&gt;&lt;br /&gt;Hasta donde se, utilizaremos Borland Turbo C, así que, imagino que usaremos librerías de Borland, como lo son conio y graphics.&lt;br /&gt;&lt;br /&gt;Bueno, todos los avances en este proyecto estaran publicados en este Blog, espero que sirva de ayuda para otros, y claro, puedan ayudarme.</content><link rel='alternate' type='text/html' href='http://diario-de-un-programador.blogspot.com/2006/02/primer-proyecto.html' title='Primer proyecto'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21787490&amp;postID=113890473880435701&amp;isPopup=true' title='0 comentarios'/><link rel='replies' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/113890473880435701/comments/default' title='Enviar comentarios'/><link rel='self' type='application/atom+xml' href='http://diario-de-un-programador.blogspot.com/feeds/posts/default/113890473880435701'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21787490/posts/default/113890473880435701'/><author><name>Juan Carlos</name><email>noreply@blogger.com</email></author></entry></feed>