Resistance is Futile

Instalando Scratch en Ubuntu 10.04

Hace poco buscando información sobre lenguajes de programación visuales para la enseñanza de programación, me tope de nuevo con Scratch : un lenguaje de programación que implementa un editor visual para ir componiendo el código, si, si, el código; una característica de este lenguaje es que no es un lenguaje de cajitas, donde cada cajita esconde una gran cantidad de funciones, es un lenguaje que permite componer visualmente el algoritmo a punta de instrucciones que se arrastran y sueltan y que como piezas de rompecabezas se van uniendo para conformar el programa, tal vez es por esta caracteristica que la herramienta es tan diferente a otros lenguajes de programacion.

Scratch en Ubuntu 10.04

Hoy me di a la tarea de hacer la instalación en mi maquina de escritorio con Ubuntu 10.04 :

  • Descargar la ultima versión para Ubuntu, disponible en el sitio web :
    http://info.scratch.mit.edu/Scratch_1.4_Download
  • Para descargar la versión 1.4.0.1 haga lo siguiente
    Abrir una consola y ejecutar el comando :
    wget https://launchpad.net/~scratch/+archive/ppa/+files/scratch_1.4.0.1-0ubuntu5_i386.deb
  • Instalar el paquete desde linea de comando :
    dpkg -i scratch_1.4.0.1-0ubuntu5_i386.deb
  • Ejecutar el programa
    scratch

También podemos ejecutar el programa desde el menu Applications -> Programming -> Scratch


Maraton Regional Latinoamericana ACM / ICPC 2009

Maraton Regional Latinoamericana ACM / ICPC 2009

El pasado 24 de Octubre estuve en Bogota como Coach del equipo while(true) de la Universidad Autonoma de Manizales en la Maraton Regional Latinoamericana ACM / ICPC 2009 despues de haber clasificado en las regionales por el eje cafetero. Esta vez el reto era entre Colombia, Ecuador, Venezuela y aunque solo se resolvieron dos problemas de la maraton se nota que estamos mejorando cada dia, espero estar dentro de un año de nuevo en la latinoamericana haciendo muchos mas problemas.


Maratón Nacional de Programación ACIS / REDIS

acis_logoLa Maraton Nacional de Programacion ACIS / REDIS es una maraton de programacion a nivel nacional que se lleva a cabo en el segundo semestre del año (tipicamente en los meses de septiembre y octubre), esta maraton esta organizada por la Asociacion Colombiana de Ingenieros de Sistemas y la Red de Decanos y Directores de Sistemas y sirve de clasificacion a la Competencia Internacional Inter Universidades de la ACM.

Para competir en esta maraton se deben tener encuenta varios requisitos :

  1. Ser estudiante universitario
  2. Tener una carga académica de medio tiempo o mas.
  3. Haber comenzado la carrera por lo menos en los 3 años anteriores
    (estudiantes de 1 a 6 semestre)
  4. Tener menos de 23 años al momento de la realización de la maratón
  5. No haber participado mas de cinco veces en la maratón
  6. Solo se puede participar por una institucion durante el año
  7. No haber pariticipado en dos maratones mundiales

Para participar se deben crear equipos de tres estudiantes que cumplan los requisitos anteriores, cada equipo tiene un entrenador (Coach) que es el encargado de la inscripcion de los estudiantes en el sistema de registro de la Maraton de ACM y es el representante del grupo ante la organizacion. El Coach generalmente es un docente de la universidad a la cual pertenecen los estudiantes y ademas de registrar los equipos, debe asegurarse que cumplen los requisitos para la participacion, acompañar al equipo en la prueba durante la cual el coach presentara su equipo completo para su registro, los acompañara durante el Calentamiento (Warm Up) y realizara los reclamos despues de finalizar la maraton si existen. Las universidades pueden registrar un maximo de tres equipos, los cuales pueden tener el mismo Coach y enviara a ACIS una carta en la que avala la participacion de los equipos, como tambien se compromete a pagar el costo de la inscripcion a la maraton antes de que esta se realice. Para la realizacion de la maraton la organizacion tiene varias sedes a nivel nacional, los equipos deben registrarse en la sede mas cercana geograficamente, tipicamente las sedes son : Bogota, Bucaramanga, Cali, Cartagena, Medellin y Manizales

El dia de la maraton el coach debe presentarse con su equipo a las 8am para su registro, la entrega de identificaciones y camisetas que el coach y los miembros del equipo deben traer durante el transcurso de la maraton. Despues del registro de todos los equipos se toma un refrigerio, para pasar al Warm Up durante el cual a los equipos se les asigna el puesto de trabajo donde previamente se han instalado los ambientes de desarrollo (C,C++,Java) y el cliente PC2 software que permite probar las soluciones a los problemas, enviar las soluciones al sistema para ser evaluadas, realizar consultas al jurado durante la prueba. Durante el calentamiento se entregan dos problemas que los equipos deben resolver, para identificar problemas con las herramientas de desarrollo y probar el correcto funcionamiento del software para enviar las soluciones (durante este calentamiento el Coach puede estar presente), al final del calentamiento se pasa a un almuerzo ligero antes de la competencia.

La competencia generalmente comienza a la 1 de la tarde y tiene una duracion de 5 horas, se entregan los enunciados de los problemas los cuales describen el problema que debe ser solucionado, los nombres de los archivos que se deben crear, las entradas suministradas y las salidas (estos enunciados estan en Ingles, por lo cual es importante que los integrantes del equipo tengan buen conocimiento del idioma), cada equipo es responsable de dar solucion a los problemas utilizando los ambientes de desarrollo, libros, codigo impreso y hojas (es recomendable llevar diccionario ingles para los que no manejan el idioma). La estrategia de solucion de los problemas es responsabilidad de cada equipo (se recomienda antes de ir a la maraton realizar simulacros en las universidades).

A medida que los equipos van solucionando un problema, se envia el archivo fuente al PC2el cual evaluara la solucion, verificando el programa con casos de prueba y verificara que la solucion pueda ser compilada, no tenga errores de sintaxis, se ejecute en menos del tiempo exigido y arroje los resultados esperados, despues de esta evaluacion se puede consultar el sistema que indicara si fue satisfactorio o sucedio algun error, si es satisfactorio se colocara un globo del color asignado al problema sobre el computador que tiene asignado el equipo, de esta forma los otros equipos pueden saber quienes y que problemas se han solucionado. Adicionalmente existe una pagina web que puede ser vista por los equipos que reporta el estado de todos los equipos a nivel nacional, con el numero de intentos, el tiempo y los problemas que se han desarrollado. Faltando una hora para terminar la maraton, la pagina no se actualiza mas y se deben esperar los resultados finales, unos dias despues (por lo menos tres dias) para ver las posiciones finales de los equipos. Al finalizar la maraton los equipos pueden de nuevo hablar con el Coach y transmitirles las quejas que se tengan, las cuales deben ser reportadas por el Coach al Jurado Local.

Por cada sede se selecciona una representacion que participara en la maraton nacional la cual funciona de la misma manera y se va clasificando de esta manera hasta llegar a la mundial.

Notas :

  • Los participantes no pueden comunicarse con equipos diferentes al suyo durante la competencia.
  • El Coach debe registrar los equipos antes de la maraton, suministrado el nombre del equipo y los nombres y correos de los integrantes.
  • El Coach no participa en el concurso, es el representante del grupo ante la organizacion.
  • No se pueden ingresar telefonos moviles, memorias, dispositivos de almacenamiento o equipos electronicos cuando se desarrolla la maraton.
  • Los equipos deben tratar de desarrollar programas que den soluciones a los enunciados de los problemas, de la manera mas rapida, teniendo en cuenta que el programa no se puede demorar mas de lo estipulado.
  • Se puede trabajar en lenguaje C,C++ o Java

Mas adelante estaremos hablando de los tipos de problemas que se deben resolver en esta maraton.

Enlaces :


Que es una Maraton de Programacion ?

maraton_programacionUna maraton o campeonato de programacion es un evento donde compiten grupos conformados por dos o tres programadores, que deben dar solucion computacional a una serie de problemas en el menor tiempo, utilizando el conocimiento del lenguaje de programacion y estrategias que permitan resolver el problema rapidamente.

Estas maratones se realizan principalmente en los programas de Informatica y Sistemas de las universidades y sirven para medir la capacidad que tienen los estudiantes de dar soluciones rapidas a problemas de diferente complejida que permiten a los estudiantes practicar sus conocimientos en algoritmia, tecnicas de programacion, uso de estructuras de datos y realizar un analisis practico y rapido de soluciones computacionales que no deben tomar mucho tiempo en solucionar el problema.

Claro esta que existen diferentes tipos de maratones :

  • Maratones orientadas al desarrollo de aplicaciones computacionales completas que resuelvan un problema, donde se mide la destreza para crear soluciones rapidamente, pero no se mide la eficiencia final de la aplicacion si no su funcionamiento.
  • Maratones orientadas a la solucion de un problema pequeño con cierto grado de complejidad la cual debe solucionar el problema en un tiempo determinado lo que permite medir el funcionamiento y la eficiencia en velocidad de la solucion.

Actualmente en Colombia se realizan dos maratones nacionales la Maratón Nacional de Programación ACIS / REDIS 2009 y la Maratón de Programación de aplicaciones móviles e inalámbricas de Cintel, de las cuales estaremos hablando en proximamente en el blog.

Enlaces :


Resin : Servidor de Aplicaciones Java que soporta PHP

resin_logoExiste en el mercado un sin numero de servidores de aplicaciones basados en Java, cada gran empresa tiene el suyo propio y la comunidad del software libre también cuenta con varios, van desde grandes, pequeños, portables, monolíticos. Entre la lista podemos encontrar el JBoss, el Oracle Containers for Java, el WebObjects de Apple, el Sun Java System Application Server, el Tomcat de Apache, el GlassFish AS y el WebSphere AS.

En esta misma lista se puede encontrar el Resin de la empresa Caucho Technology (nombres muy peculiares), pero que hace de diferente a este servidor de los demás ? Al igual que sus competidores incluye soporte para características como JSP/servlets, XML/XSL y EJB/CMP; Resin es un servidor de aplicaciones de solo 10MB de tamaño, con un excelente desempeño, con una configuración sencilla y fácil de ejecutar y administrar (cosa que otros servidores de aplicación tienen), pero la diferencia radica en que es capas de ejecutar PHP, si, si, si, asi como suena; gracias a Quercus una implementacion del lenguaje PHP5 desarrollada totalmente en Java que permite a este servidor ejecutar aplicaciones web implementadas en este lenguaje tan popular en el desarrollo de aplicaciones web, tanto asi que este pequeño servidor es capas de alojar aplicaciones tan populares como WordPress y MediaWiki.

Quercus (otro proyecto de la empresa Caucho Technology) implementa en 100% Java el lenguaje PHP en su version 5, dando soporte a las caracteristicas orientadas a objetos agregadas al lenguaje, como tambien implementa gran cantidad de funciones propias del lenguaje y extensiones, ademas de permitir la comunicacion directa con librerias desarrolladas en Java y la posibilidad de implementar nuevas funciones utilizando clases Java. Este producto es usado en el servidor de aplicaciones Resin para dar soporte a aplicaciones PHP, esta caracteristica tambien ha sido utilizada en otros servidores de aplicacion como el JBoss, el WebSphere AS y el GlassFish para dar soporte directo a las aplicaciones PHP sin necesidad de instalar software adicional como un servidor Apache y la implementacion nativa de PHP para cada plataforma.

Resin es un interesante servidor de Aplicaciones Java que soporta PHP a traves de Quercus permitiendo ejecutar aplicaciones web basadas en Java y PHP en un solo servidor con gran velocidad gracias a que el codigo es compilado para la maquina virtual de Java (JVM) permitiendo un excelente desempeño y portabilidad.

Enlaces :


Page 1 of 212
Powered by WordPress | Designed by Elegant Themes