Skip to content

Consejos Para Programar Aplicaciones Gráficas Con Java En Swing

septiembre 28, 2010

Uno de los mayores dolores de cabeza para los que programamos en Java es el desarrollo de aplicaciones con interfaces gráficas hechas en Swing, de hecho la mayoría de nosotros utilizamos algún IDE como NetBeans para facilitarnos esta tarea, no obstante me he encontrado con una serie de consejos para usar Swing, los cuales me han servido bastante y es recomendable tomarlos en cuenta:

  • En la aplicación sólo debe haber un único JFrame, correspondiente a la aplicación principal. Todas las ventanassecundarias deben ser JDialog. Todas las ventanas secundarias deben tener una ventana padre, que es a partir de la cual se despliega. Es decir, todos los JDialog secundarios deben tener como padre al JFrame principal. Si desde un JDialog se va a visualizar otro, este segundo debe tener como padre al primero, y así sucesivamente.
  • Evita en lo posible los JDialog modales, o ten muy en cuenta su jerarquía de padres. El primer JDialog modal no tiene problemas si le pones su padre adecuadamente. Si tienes un JDialog modal visible, no muestres otro JDialog secundario, salvo que también sea modal y sea hijo del anterior. Si pones visibles a la vez dos JDialog modales y no son el uno hijo del otro, tendrásproblemas al intentar escribir en ellos o cerrarlos.
  • Nunca heredes de JFrame o JDialog o JApplet para hacer tus ventanas. Hazlo siempre de un componente que no sea ventana y que no te limite. Si tus ventanas heredan de JPanel, podrás ponerlas siempre que quieras dentro de un JFrame, un JDialog, un JInternalFrame, un JApplet o incluso incrustarlas en otro JPanel. Si tu ventana hereda de JFrame, está condenada a ser un JFrame toda su vida.
  • Reaprovecha las ventanas, no se las dejes al recolector de basura. Si un botón, al apretarlo, visualiza un JDialog, no hagas un new de JDialog cada vez que pulsas el botón. Es mejorhacer sólo un new la primera vez y guardarselo. En las siguientes veces bastará con hacer setVisible(true) y setVisible(false). Para que el recolector de basura libere una ventana, además de lo habitual, hay como minimo que llamar al método dispose() de dicha ventana -cosa que mucha gente no sabe- , para que el sistema de eventos de teclado y ratón eliminentodas las referencias que tienen a ella. De todas formas, incluso así no tengo muy claro que los JDialog se liberen siempre y, desde luego, en versiones anteriores de Java, los JFrame NUNCA se liberaban. La excusa de SUN es que como sólo debía haber un JFrame principal, no tenía sentido liberarlo.
  • Los layouts para situar componentes no son tan complicados, sólo hay que ponerse a ello. No uses el layout null, ya que tu ventana no será redimensionable y puedes tenerproblemas si cambia la fuente de letra, si tu programa se ejecuta en otro sistema operativo, se cambia el look & feel, etc. Una vez que sepas los layouts simples, tenderás a hacer ventanas grandes a base de anidar muchos JPanel que a su vez tienen dentro JPanel que su vez tienen dentro JPanel, todos ellos con un layout simple. Eso hace ventanas muy pesadas y que consumen mucho. Aprende a usar el GridBagLayout para hacer un solo panel con todo. La excepción a esto es que tengas pequeños JPanel reutilizables, como un editor de coordenadas geográficas que pida latitud, norte/sur, longitud, este/oeste, un panel que pida usuario y password, etc.
  • Todos los eventos de ratón y teclado se ejecutan en el mismo hilo que repinta las ventanas. Si en un actionPerformed(), keyPressed(), … tu código tarda mucho o pretendes que se pinte algo en una ventana, simplemente no lo hará hasta que tu código termine. Si tu código en un actionPerformed() va a tardar mucho o tiene que pintar cosas en la ventana, lanza un hilo aparte parahacer esa tarea y termina el actionPerformed() lo antes posible.

JLabel Multilínea en Java

septiembre 28, 2010

Normalmente utilizamos las etiquetas en Java con una sola línea de texto, sin embargo a veces es útil ocupar las etiquetas Java con varías líneas de texto en su interior, es decir por renglones por así decirlo, lo malo es que no es que no existe una forma predefinida de poder hacer esto.

Para poder crear una etiqueta JLabel de multiples líneas tendremos que utilizar la siguiente sintaxis:

[java] JLabel etiqueta= new JLabel(“<html>Primera línea<br>Segunda Línea</html>”Wink; [/java]

Como puedes ver la forma es agregando código HTML a nuestra etiqueta, de manera tal que todo el texto de nuestro JLabel este encerrado en las etiquetas <html></html> y utilizaremos la etiqueta <br> para hacer un salto de renglón al igual que en HTML, de esta manera podemos utilizar líneas múltiples en etiquetas swing, pudiendo agregar cuantas etiquetas <br> como renglones queramos.

Una Introducción a Groovy

septiembre 28, 2010

Muchos se quejan de que Java es complicado, y apoyan lenguajes de programación del tipo Ruby, Python o PHP por ser lenguajes tipo scripting, y necesitando con ellos menos código para lograr su cometido.

Groovy es un lenguaje de programación muy parecido a Java, de hecho podría decirse que está basado en el, ya que un programa en Java es un programa en Groovy también, aquí les dejo una presentación que les dará una introducción más amplia de lo que Groovy es:

Introduccion A Groovy

Vectores o Arrays en Java

septiembre 28, 2010

Los vectores o arrays son de mucha utilidad y existen en muchos lenguajes de programación, sin embargo para los programadores novatos la utilización de vectores les resulta confusa al principio, así que trataré de explicarlo de una manera sencilla y funcional.

Normalmente utilizamos variables para guardar valores en Java, dichas variables tienen un tipo y almacenan un valor el cual puede ir cambiando a lo largo del programa, sin embargo muchas veces es necesario guardar mas de un dato del mismo tipo y relacionados entre sí y lo que hacemos es crear una variable para cada valor.

Por ejemplo supongamos que queremos guardar el nombre de 5 personas, lo primero que se nos ocurre es crear 5 variables de tipo String para guardar esos datos:

[java]
String nombre1=javax.swing.JOptionPane.showInputDialog(“Escribe el nombre 1”Wink;
String nombre2=javax.swing.JOptionPane.showInputDialog(“Escribe el nombre 2”Wink;
String nombre3=javax.swing.JOptionPane.showInputDialog(“Escribe el nombre 3”Wink;
String nombre4=javax.swing.JOptionPane.showInputDialog(“Escribe el nombre 4”Wink;
String nombre5=javax.swing.JOptionPane.showInputDialog(“Escribe el nombre 5”Wink;
[/java]

Lo malo de esto es que se utilizan demasiadas variables, en este caso tan solo fueron 5 por el ejemplo, pero si hubieran sido 20 nombres entonces el programa se vuelve demaciado extenso y dificil de manejar.

Pues los vectores o arrays nos permiten almacenar multiples valores de un mismo tipo en una sola variable, y nos evitan tener que usar multiples variables para multiples datos de un mismo tipo, en eso rádica su utilidad. De manera que el código anterior utilizando vectores quedaría de la siguiente manera:

String [] nombres = new Strint[5];

for (int i=0;  i "menor que" nombres.length ;  i++){
nombres[i] = javax.swing.JOptionPane.showInputDialog("Escribe el  nombre "+i);
}

Mas simple ¿no lo crees?, ahora veamos poco a poco lo que se hizo, un vector se define de la misma manera que una variable, la diferencia es que lleva un par de corchetes despues del tipo de dato, estos también pueden ir despues del nombre de la variable, la definición de un vector puede ser de cualquiera de las siguientes maneras:

tipo_dato [] variable;

tipo_dato variable [];

Sin embargo un vector no se puede utilizar hasta que sea creado, para ello usaremos la palabra reservada “new”, en donde también definiremos el tamaño del vector, es decir el número de datos del mismo tipo que puede almacenar. Esto se hace de la siguiente forma:

variable = new tipo_dato [tamaño];

donde variable es el nombre de la variable previamente definida, tipo_dato es el tipo de dato utilizado para definir la variable, y tamaño es un número entero positivo que simboliza el número de elementos que podrá guardar el vector.

El paso anterior puede hacerse individualmente, o en conjunto con la definición de la variable, por ejemplo el siguiente ejemplo también es valido:

int [] edad =  new int [10];

En donde estamos definiendo una variable vector de tipo entero (int) y al mismo tiempo hacemos la creación del vector con una capacidad de 10 elementos. Despues de esto ya podemos utilizar nuestro vector, pero aún no sabemos como funciona.

Es simple, los vectores se manejan por medio de un indice númerico entero, en donde el indice representa la posicion del vector. ¿Confuso? No te preocupes vamos a verlo con un ejemplo, suponiendo que tomemos el vector “edad” definido arriba podríamos guardar un dato entero en el vector en cualquiera de sus posiciones:

// Guardamos el valor entero "25" en la posición "4" de nuestro vector "edad"

edad [4]  = 25;

// Guardamos el valor entero "334" en la posición "7" de nuestro vector "edad"

edad [7]  = 334;

Como puedes ver se pueden guardar datos en los vectores en posiciones no consecutivas aunque por lo general no lo hagamos así, hay que tener en cuenta que el indice debe estar comprendido entre cero y el tamaño del vector menos 1, es decir que en el caso de nuestro vector edad, el indice puede ser de cero a 9 (ya que 10 – 1 = 9 ) por lo que si ponemos en el indice algo como esto:

edad [10]= 666 ;

Nos dará un error debido a que estamos queriendo accesar a un indice no existente, por ello es que hay que ser cuidadosos a la hora de manejar los indices de un vector.

En el ejemplo de los “nombres” vimos que utilizamos un ciclo para pedir los datos, supongo que ahora ya entenderás porque lo utilizamos, el ciclo inicializa la variable “i” en cero porque el cero es el indice cero es la primera posición de un vector, y condicionamos a que entre al ciclo mientras el indice sea menor que el tamaño del vector, para ello hacemos uso del atributo “length” que es una variable que todos los vectores tienen en donde se guarda el tamaño del vector.

for (int i=0;  i "menor que" nombres.length ;  i++){
//En lugar de utilizar un indice fijo podemos utilizar una variable en este caso "i"
nombres[i] = javax.swing.JOptionPane.showInputDialog("Escribe el  nombre "+i);
}

En realidad “menor que” es el signo “<” pero por alguna razón no me deja mostrarlo en el código así que si quieres probarlo, recuerda sustituirlo.

Esto es lo básico sobre arrays o vectores, es importante destacar que puedes utilizar cualquier tipo de dato para definir un vector, desde los primitivos hasta los tipo objeto, y que no puedes imprimir el valor de un vector directamente ya que esto imprimiría la referencia del objeto, para imprimir un vector hay que imprimir cada uno de sus indices.

¿Alguna duda? No olvides comentarla Wink

¿Que Lenguaje De Programación Elegir?

septiembre 28, 2010

Cuando queremos empezar en serio a programar la primera pregunta que se nos viene a la mente es, ¿que lenguaje es el mejor?, lo malo es que no hay una respuesta absoluta a ese cuestionamiento, la razón es que el elegir un lenguaje de programación depende de distintos factores como lo es el tipo de programas que queremos realizar, la plataforma para la cual queremos que sirvan nuestros programas, incluso siendo poco objetivos también entra el gusto por un lenguaje en especifico o por la compañia detrás del lenguaje.

Uno de los aspectos que hay que tomar en cuenta a la hora de escoger un lenguaje es la plataforma a la que nuestros programas van a ir dedicados, y cuando hablamos de plataforma nos referimos principalmente al sistema operativo. Como sabemos el sistema operativo con mayor mercado es Microsoft Windows, por lo que se podría pensar que deberíamos escoger un lenguaje enfocado a aplicaciones para este sistema operativo, pero esto no es necesariamente así, ya que lo que se busca actualmente es utilizar un lenguaje que den como resultado programas multiplataforma, es decir que funcionen en distintos sistemas operativos, e incluso distintas arquitecturas de hardware.

Otro factor para elegir un lenguaje es el paradigma de programación que este utiliza, generalmente un lenguaje de programación esta atado a un paradigma de programación, pero ¿que entendemos por paradigma? Al hablar de paradigmas de programación se puede entender como una forma de pensar para programar, el uso de la misma palabra genera confusión ya que puede tener varíos conceptos, pero a grandes razgos se entiende como una forma de pensar para programar, pero dicha forma afecta al lenguaje directamente.

Entendamos un poco esto, el paradigma de programación que actualmente es el más utilizado es el llamado “Programación Orientada a Objetos (POO)” y es un modo de ver cualquier aspecto del lenguaje como un objeto del mundo real, ya que es la forma en que normalmente los seres humanos vemos las cosas. Ahora este paradigma es soportado por varios lenguajes de programación como Java y C# por poner un ejemplo, sin embargo existen otros paradigmas como la llamada “Programación Estructurada” que fue muy utilizada anteriormente por lenguajes como C.

El hecho es que no se puede programar de manera estructurada en Java o en C# y no es posible programar orientado a objetos en el lenguaje C, sin embargo existen lenguajes multiparadigma como es el caso de Python, en el cual podemos programar en el paradigma que se desee.

Esos son los aspectos principales a la hora de elegir un lenguaje de programación, sin embargo no son los unicos, por poner un ejemplo tomemos el caso de Java y C# los lenguajes de programación de más popularidad actualmente, mientras que Java es un lenguaje multiplataforma y libre aunque respaldado por Sun, C# es un lenguaje hecho para crear programas para Microsoft Windows unicamente y propietario, es decir solo la empresa Microsoft es aquella que posee los derechos del lenguaje.

Para terminar podriamos decir que actualmente es necesario optar por un lenguaje que soporte el paradigma de la programación orientada a objetos y que cumpla con las expectativas de tus proyectos.

Aquellos lenguajes de programación que son muy populares actualmente son Java y C#, así como Python, PHP y ASP (para programación web).

Por mi parte prefiero programar en Java, aunque C# me parece un interesante lenguaje para aprender, lo que me hace resistirme a el, es que de la mano de Microsoft siempre vienen restricciones, como el ser especificamente para Windows (producto de la misma empresa), y la falta de apertura y estandarización de sus productos.

¿Y tu cual lenguaje escogerias?

Cadena de 100 Enlaces, Participa y gana backlinks

septiembre 28, 2010

Vamos a participar en una cadena de enlaces que sirve más que nada para mejorar el posicionamiento web y así obtener más visitas, ademas de dar a conocer el blog a más personas.

Te animo a que si tienes un blog, participes en esta iniciativa, ya que ayudan mucho a que tu blog se de a conocer por la web, y a mejorar tu posicionamiento, en este caso la cadena solo incluira 100 enlaces, así que apurate a participar. La cadena termina el 24 de octubre, para participar visita la página con la convocatoria

Conoce los blogs que se han apuntado hasta ahora :

:


  1. Gydn! Blog multirubro de ramos generales -> (ver cadena)
  2. Dietas, métodos, Flujo Vaginal en Ya Voy Mamá!! -> (ver cadena)
  3. Nadie007 te enseña las cosas curiosas de la red ->(ver cadena)
  4. La pelicula de Disney High school musical estrena el 24 de Octubre -> (ver cadena)
  5. La nueva estrella de Disney Miley Cyrus participo en Camp Rock -> (ver cadena)
  6. En CMS Joomla gano varios premios internacionales -> (ver cadena)
  7. El Futbol argentino es uno de los mas bonitos del mundo -> (ver cadena)
  8. Las Dietas son necesarias en diferentes etapas de la vida -> (ver cadena)
  9. Ver videos de Avril Lavigne, la princesa del pop -> (ver cadena)
  10. Cotización dolar y euro, economía y finanzas -> (ver cadena)
  11. El misterio del triángulo de las bermudas -> (ver cadena)
  12. Ferticidio’s geeks: un Geek hablando de otros Geeks -> (ver cadena)
  13. Los mejores cuentos y escritos están en ReChalado! -> (ver cadena)
  14. Autoleyendas, automóviles que hacen historia -> (ver cadena)
  15. MiHTPC, la aventura de poner un PC en el salón ->(ver cadena)
  16. You don´t know the power of the Dark Side… -> (ver cadena)
  17. Catrasca un poco de todo y nada de mucho ;) -> (ver cadena)
  18. con e-abaco, instalar y configurar ubuntu es mucho más facil -> (ver cadena)
  19. ViaBinaria blog de Tecnología, gadgets, web 2.0, programas, tutoriales, aplicaciones web. -> (ver cadena)
  20. Raul Quintana web developer -> (ver cadena)
  21. ZonaKaoz: Blog de ocio, humor, deportes, diseño, web 2.0 y un poco geek. El blog perfecto para perder el tiempo en el trabajo. -> (ver cadena)
  22. Todo lo que quieras saber sobre programación, tips, consejos, programas, tutoriales, etc. ->(ver cadena)
  23. GigaBriones, La Informática y Tecnología Nunca Fue Tan Sencilla, Un Blog Para Aprender a ser geek. ->(ver cadena)
  24. Humor Friki, Diversión, Humor Geek, Imagenes, Videos, Chistes, Curiosidades y Más, para frikis o geeks como tú. -> (ver cadena)
  25. Heckennedy Blog & Podcast, hablando de cosas que a ti te interesan ->(ver cadena)
  26. Terabytes Libres: el conocimiento humano le pertenece al mundo-> (ver cadena)
  27. Peliculas online gratis en internet significa que puedes ver peliculas online y gratis-> (ver cadena)
  28. empresa de programación y diseño paginas menorca on -> (ver cadena)
  29. Car hire Menorca -> (ver cadena)
  30. Recetas de dieta, recetas de la dieta de los puntos o dieta weight watchers. Trucos consejos y recetas para esta famosa dieta. Cada receta con completa información nutricional por si prefieres utilizarlas para una dieta hipocalórica tradicional -> (ver cadena)
  31. Car hire Menorca ->(ver cadena)
  32. Mi dieta de los puntos, mi diario de dieta en el que voy comprobando como funciona esta famosa dieta weight watchers -> (ver cadena)
  33. El blog del gourmet gastronomico, todo tipo de delicatessen , productos gourmet, recetas de cocina y restaurantes. Para cuando haya terminado con la dieta. -> (ver cadena)
  34. Todo lo que puedes leer en 5 minutos mas -> (ver cadena)
  35. Sitio de Tuxtla Gutierrez, con fotos, eventos sociales, fotos de escuelas -> (ver cadena)
  36. El mundo del té: su historia, formas de preparación, y recetas de todas las variedades de té e infusiones -> (ver cadena)
  37. La casa del rock donde el rock siempre suena -> (ver cadena)
  38. Buscas Información de juegos?, novedades de tecnología, o los últimos tips de Internet, todo esto y mas lo encuentras en TuPSX, Tu comunidad de juegos, tecnología e Internet -> (ver cadena)
  39. El CMS Joomla es uno de los mas utilizados en todo el mundo -> (ver cadena)
  40. Gran Hermano 2009 comenzará en enero del año proximo -> (ver cadena)
  41. La era de hielo 3 tiene prevista como fecha de estreno en Julio de 2009 -> (ver cadena)
  42. Blogtecnia, todo para tu pendrive en el Directorio Usb -> (ver cadena)
  43. Un lugar para encontrar de todo: El Huequito: aplicaciones informáticas, gadgets, curiosidades, pensamientos, poesía, fotografía, etc -> (ver cadena)
  44. Los mejores videos de Youtube -> (ver cadena)
  45. braulioaquino.blogspot.com está acortando la frontera entre Geek y Nerd, pero recuerda que los blogger también tenemos vida. -> (ver cadena)
  46. En simulacro de trabajo… y en la escuela… ¡Aca mirando como esta el patio¡. Informatica y otras cosas que de las pretendo tener idea… y las cosas que se peguen: Isyscompany: Por que nuestro tiempo libre es productivo -> (ver cadena)
  47. Tu solucion para neopets, Guildpets -> (ver cadena)
  48. Amatta JM, un blog de tecnología, humor, curiosidades, y algo mas… -> (ver cadena)
  49. El Mundo de Uriel, Internet , tecnologia y Diseño: Urielmania -> (ver cadena)
  50. Amebas a la deriva: juegos, famosas, imágenes y fotos -> (ver cadena)
  51. Sin miedo: Internet y Tecnología -> (ver cadena)
  52. MicroZulo: Recursos y herramientas web -> (ver cadena)
  53. Ecanus: Internet, música, opinion y mucho mas…! -> (ver cadena)
  54. Mi ventana: actualidad, frases, y sobre Málaga -> (ver cadena)
  55. BaJaLaTaPa: un rebujito de actualidad, internet, motor, y mucho más. -> (ver cadena)
  56. Tecnología habitual: tecnología que se hace, padece o posee con continuación o por hábito. -> (ver cadena)
  57. Clases de salsa en Málaga para personas no fumadoras -> (ver cadena)
  58. Porque con vida geek la tecnologia es muy sencilla -> (ver cadena)
  59. Motarile, rile, rile. Un poco de todo para no aburrir. -> (ver cadena)
  60. Foxblog – If you never try, You never know just what you worth.Noticias, Tecnología, Internet y vídeos divertidos, de todo un poco -> (ver cadena)
  61. Juegos mmorpg gratis: juegos gratis online -> (ver cadena)
  62. Juegos nuevos y bonitos: Juegos de vestir, colorear, infantiles -> (ver cadena)
  63. Juegos de cocina y pastelería: Juegos de cocinar, pastelería y tartas-> (ver cadena)
  64. Después de Bailando, Cantando y Patinando, Nadando por un Sueño es Acquadance en ShowMatch -> (ver cadena)
  65. Juegos de vestir y moda: Juegos de vestir gratis -> (ver cadena)
  66. Pasado, presente y consejo de sabios´ blog -> (ver cadena)
  67. Juegos de autoescuela y coches: Juegos de coches y conducir -> (ver cadena)
  68. Humor, TV, Música, Informática, Tecnología… Vipoke, 15 años, blogger.-> (ver cadena)
  69. La Educación Física en México por la calidad de la Educación -> (ver cadena)
  70. Tecnología y recursos web -> (ver cadena)
  71. Tutoriales gratis -> (ver cadena)
  72. Videos de futbol y goles, y bloopers deportivos -> (ver cadena)
  73. Chistes y humor: una carcajada de blog -> (ver cadena)
  74. Información geek sobre internet, Locuras Geek, humor geek, vídeos, imágenes, herramientas OnLine, y mucho mas -> (ver cadena)
  75. blog de ayuda informatica -> (ver cadena)
  76. Un lugar donde encontrar todo sobre videojuegos y un Bonus Game -> (ver cadena)
  77. Imagenes para Hi5 -> (ver cadena)
  78. Cuidado con los bancos: explicación de términos bancarios -> (ver cadena)
  79. Tánger, Tetuán, Casablanca, Marruecos: Consejos para viajar a Marrakech -> (ver cadena)
  80. Blog de humor -> (ver cadena)
  81. En el callejon del beso nos vemos, no le digas a tu mamá -> (ver cadena)
  82. Directorio y noticias IT de Argentina -> (ver cadena)
  83. Donde leer acerca de novedades? Donde comentar? Donde en español? -> (ver cadena)
  84. Lo mejor de Youtube -> (ver cadena)
  85. Mi blog: Posicionamiento en Buscadores -> (ver cadena)
  86. El rincón de Bender: Juegos, humor, ocio, cultura, vídeos, música, fotos e imágenes -> (ver cadena)
  87. La cocina de Bender: Recetas de cocina y menus -> (ver cadena)
  88. Juegos, risas, noticias, vídeos, musica, cachondeo y humor -> (ver cadena)
  89. 100-enlaces-son-100-enlaces-xd, en [BACK DOOR] -> (ver cadena)
  90. Juegos de vestir, maquillaje y peinar nuevos -> (ver cadena)
  91. Juegos de vestir, maquillar y peluquería nuevos -> (ver cadena)
  92. Todo lo que busco en Málaga -> (ver cadena)
  93. Blog de mascotas: juegos de perros y gatos -> (ver cadena)
  94. Inter.dot: Blog sobre Relaciones Internacionales, Internet, las nuevas tecnologías y comunicación hecho en Paraná, Argentina -> (ver cadena)
  95. Directorio Web Jam Npo -> (ver cadena)
  96. LaMegaPlaza: centro comercial virtual -> (ver cadena)

Feliz Día Del Programador

septiembre 28, 2010

Hoy es el día del programador, y siendo esta una página de Programación tenia que mencionarlo Razz .

El día del programador se celebra el día 13 de septiembre normalmente y el 12 de septiembre en años bisiestos (este es un año bisiesto).

La razón por la que se festeje este día es debido a que es el día 256 del año, y el número 256 es importante para los programadores debido a que es el número de datos diferentes que caben en un byte.

Cada quien festeja el día como más le apetece, ya sea poniendo un nick muy friki, reuniendote con amigos programadores, jugando tu juego favorito en la PC, o haciendo un programa personal en en lenguaje que quieras, incluso aprendiendo un nuevo lenguaje Wink .

Por cierto si encuentran alguna información sobre programación que deseen compartir no duden en dejar un comentario Wink

¡Felicidades Programadores!