miércoles, 29 de agosto de 2007

/requiem para los títeres?



Ayer leí esta información, sin pelos en la lengua, de Patricia Slukich en Los Andes online, y me apenó bastante, no habilitan La Casa de los Títeres. Ergo un espacio menos para los grupos artísticos mendocinos, y una de las pocas casas dedicadas a los títeres que hay en Argentina a punto de quedar anulada.
Y no solo dedicada a los títeres sino que a actividades culturales varias.

La noticia me apena por varios motivos, la mayoría de la gente que conocí en Mendoza se dedica al teatro o actividades relacionadas (aqui escribí sobre eso), y pude percibir como lo hacen a conciencia y profesionalismo a pesar de tratarse, en su mayoría, de grupos amateurs. Sin muchas vueltas digo que los grupos y las obras suelen ser bastante buenos.
A la Casa de los Títeres fui dos veces a ver El Pánico, el lugar era envolvente para esa obra.

Y lo que describe esa nota adquiere una dimensión que me knockea, cuando cada vez que chequeo la web del INT (Instituto Nacional del Teatro - filial Mendoza), veo su cartelera y compruebo que la actividad teatral no está actualizada, lo último que data es de enero (cuando estuve).

Espero que la Casa de los Títeres sobreviva a las inclemencias burocráticas, y que estos grupos sigan
al menos manteniendo sus espacios, ya que parece difícil crear nuevos.







/almacenamiento con clase




art Lebedev Studio es un estudio ruso de diseño creado en 1995 con una orientación bastante trendy, dedicado al diseño industrial, diseño gráfico, diseño web e interfaces tecnológicas (vean sus teclados).
En su web hay una muestra muy ilustrativa de sus diseños y de la cabeza de esta gente que apuesta a una manera mas irreverente y no tan empresarial para promocionarse (las presentaciones de sus proyectos no llevan mas de una hoja segun ellos)

Un ejemplo es la descripción del concepto y las relaciones entre las diversas unidades de almacenamiento computacional, hecho con algo vernáculo (para ellos), las Matrioskas. Genial.


vía haha.nu






/mas extraño que la ficción



Mas extraño que la ficción fue una película que vi hace un tiempo donde la realidad y ficción se entremezclan, de las tantas...
Sin entrar en demasiados detalles, la película cuenta la rutinaria vida de un hombre soltero que por ciertos motivos se da cuenta que su vida forma parte de una ficción literaria, y por lo tanto conoce su desenlace. Y por ende y para peor, todo es previsible como lo es su vida, pero de una manera que no esperaba. No es que antes no fuera previsible y no se diera cuenta, pero no hay nada peor que darse cuenta que la rutina no está bajo nuestro control, ya deja de ser la propia.
Lo que todo ser humano aspira es a la libertad de elección, incluso la rutina como su opción.
Este descubrimiento surrealista, que su cotidiano no responde a algo meramente volitivo sino digitado por un escritor, lo lleva por primera vez a intentar salir de su rutina. Paradójicamente debe salir de lo previsible para evitar un final no deseado, o de última, para poder elegir su propia rutina. Y lo mas hiper paradójico es que en esa búsqueda por reestablecer el control de su vida, le es necesario encontrar otras opciones que no están dictadas en ningun libreto.

Interesante juego de espejos y paradojas, y aunque el planteo se diluye con algunos gags y ciertos lugares comunes, vale como planteo cuestionador y para pasar un rato sin demasiadas pretensiones, ni mucho menos buscar explicaciones cinéfilas emparentadas con el existencialismo francés o similares.

Una de las cosas que mas me llamó la atención de la película fueron los efectos especiales, una impresionante información gráfica en 3D animada que aparece al comienzo de la película.
Los efectos visuales fueron desarrollados por mk12 studio (arte infográfico, efecto en los créditos) e Intelligent Creatures (escenas iniciales, demolición del departamento). Imaginense una aplicación que nos diera información 3D en tiempo real sobre lo que hacemos...para data adictos, o para adictos...:p.




vía infosthetics





/otro buscador de código (C++)



Se trata de codecogs está en fase beta, de registro gratuito que permite compartir código C++ orientado a la estadística, matemática, ciencas exactas y finanzas. La idea es crear una base de datos con código Open Source. Aunque hay de varias licencias. El sitio está catalogado segun las diferentes áreas, tiene un foro, un buscador, y cualquier usuario registrado puede subir código. Digamos que por ahora es una especie de foro algo mas especializado, ideal para la enseñanza de ciertos algoritmos, vale la pena seguirlo creo.





/depurando con cygwin e ainda mais



Cygwin no me gusta, me veo obligada a usarlo, bajo Eclipse se hace mas llevadero. Algo que no entiendo porqué no venden en el CD de facultad el Cygwin con un entorno mas amigable para trabajar con el. Actualmente venden Cygwin, y un editor, hasta donde supe (EditPad).
Notepad++ como editor es otra opción interesante, admite plugins para varios lenguajes, y es open source.
Eclipse da la opción de crear automáticamente un makefile, o trabajar con uno propio, a piacere (al igual que Code::Blocks).
¿Por qué no mejor un IDE que facilite y enseñe a administrar proyectos como Eclipse?, o simplemente la comodidad de Code::Blocks, ¿por qué la incomodidad de trabajar desde consola?.
Pensé que para familiarse con el concepto de Make, makefile, ese especie de máquinas de estados con dependencias, pues bien, lo exigen como parte de la tarea y listo, ya que hay entornos que nos dan la opción de crear nuestro makefile. Pero no entiendo porqué trabajar de manera tan artesanal, que mas que aprender conlleva pérdidas de tiempo.
Aprendiendo a manejar el ddd de cygwin no aporta demasiado, hacer un make tampoco, la intención de las materias como P3 van por otro lado.

(A propósito en otro post hablaré de la última versión de Eclipse que acabo de instalar)

Paquetes mínimos de Cygwin a instalar para trabajar con C o C++: make, gdb, ddd, gcc, g++ y automáticamente instala el entorno gráfico X, necesario para para depurar con ddd. Lo recomiendo, porque gdb es bastante críptico. Esto último para los que no usen Eclipse o Code::Blocks, ya que estos entornos facilitan mucho más el desarrollo.

Nota: Para los que ejecuten Cygwin en modo de consola, si desean activar el debugger (ddd), deben ejecutar el comando startx previamente (carga el entorno gráfico necesario para ddd), luego ejecutan en la línea de comandos, ddd.
De lo contrario, si no tienen el entorno gráfico, les saldrá un mensaje de error: "Error can't load display"

Hablando de Cygwin, si no entraron a los links, les comento que es una colección de herramientas que proporcionan un comportamiento similar a los sistemas Unix bajo Windows. Básicamente consiste en dos grupos de herramientas:
cygwin1.dll biblioteca encargada de crear una capa que provee la funcionalidad de las API de Linux, y un conjunto de comandos propios de Linux para ser ejecutados bajo Windows.

Algunos paquetes son de dominio público, los que están desarrollados por Cygnus se encuentran bajo la licencia GNU (GPL), no hay que pagar para usarlos, pero si desarrollamos aplicaciones con fines comerciales, debemos pagar por la licencia, ya que es una biblioteca propietaria de Cygwin.

Ese es uno de los motivos por los cuales pienso migrar a MinGW, su licencia es mas permisiva. En cuanto a las dificultades para migrar a Linux con ese compilador, no me preocupan, la experiencia me dice que el de Cygwin no es totalmente fiel.
Cuando para facultad nos encontrábamos desarrollando una tarea bajo Fedora, muchas veces para adelantar usabamos máquinas con Windows y Cygwin, y comprobamos que la portabilidad no era 100% segura, debimos hacer pequeñas modificaciones para que compilara bajo Linux.







/fscanf errático o errática yo



Estoy desarrollando una algoritmo donde debo leer la información contenida en un archivo de texto, y con ella cargar un árbol con una cantidad no determinada de hijos. Justo en el dibujo quedó binario, pero no lo es. Los nodos del árbol tienen como información un nombre y un entero, y el formato del archivo de entrada es de este tipo: (A 1 (B 4 (C 3)) (D 7))
Cada nodo se representa por el par (nombre número).

Nota: no importa lo que haya entre dos paréntesis iguales )) puede haber cualquier cosa, si la entrada fuera (A 1 (B 4 (C 3)au) (D 7)111), el resultado sería el mismo.

Es obvio que la lectura es una función recursiva, y decidí hacerla empleando fscanf (o man fscanf para mas información) porque me permite chequear expresiones.


Al principio buscaba por fscanf(f,"%[()]",&c) donde c es un char. La idea era buscar por el carácter que sea "(" o ")" y leerlo, luego chequear cual fue leído.
El pseudocódigo, después postearé la solución, sería algo asi:


if c == "("
{
leo numero y nombre
creo nodo
llamo con hijo (nodo)
llamo con hermano del padre de nodo
asigno padre al hijo.
}


El problema con
fscanf(f,"%[()]",&c) es que para leer un carácter segun entiendo no saltea blancos, tabuladores, nueva línea, etc, y si bien identificaba bien los caracteres, la lectura de los datos posteriores (nombre y número) era errática. Por ejemplo a veces incluía el "(" al nombre, o sea quedaría algo asi como (B, y en otras no. No era en todos los casos.

La forma que encontré para solucionarlo fue usar lo siguiente:

char* lin; fscanf(f,"%[^()]",lin); (1)
fscanf(f,"%c",&c); (2) // leo el paréntesis que corresponda
fscanf(f,"%20s%d",nom,nro); // leo los datos del nodo

Lo que hace (1) es leer, saltando blanco, tabuladores, etc, todo hasta que encuentre alguno de los caracteres "(" o ")", esos no los lee. Para leer
los uso (2).
El string lee hasta el primer blanco, nueva línea o tabulador.

La estructura elegida para el árbol es la siguiente (las listas entre hermanos son doblemente encadenadas, algunos requerimientos asi lo imponen) :

Aclaro que omití el puntero al padre de cada nodo por motivos de claridad, pero basta ver cuales son los hijos de cada nodo para notar a qué nodo padre apuntan.

Traducido a C:

struct Arbol
{
int numero;
int cantHijos;
char* nombre;
struct Arbol* hijos;
struct Arbol *herSig,*herAnt;
struct Arbol* padre;
};


Disculpen los dibujos, pero espero sean claros, y como siempre cualquier sugerencia o mejora es bienvenida. Tampoco se si esta será mi solución definitiva.









martes, 21 de agosto de 2007

/unplugged, asi ando por la vida




He estado en off por vueltas personales, mas ocupacionales (facultad, proyectos laborales que deseo concluir). Me ha costado ordenar la información, pero mientras me encuentro desarrollando el proyecto (aqui la prueba, zurda ¿vieron?)...




pensaba ¿porqué aqui Firebird no es popular?, diría que en el Río de la Plata, aunque tiene algo mas de usuarios en Argentina que aqui, y sin duda la meca en Latinoamerica es Brasil, donde se hacen encuentros de usuarios.
MySQL es rioplatense, parece que aqui rules...la única ventaja que le veo y que puede explicarlo en parte, es que tiene una comunidad de usuarios mas extensa.
Esta argumentación me sabe a poco, porque existen buenos sitios de Firebird, comunidades de usuarios también, y quien trabaja en desarrollo busca, es un googleador profesional, por lo tanto, no se hasta que punto es motivo.
Pero en prestaciones MySQL no es mejor que Firebird, incluso Firebird se ha adelantado en algunas de las features. Y no solo eso, Firebird sí es absolutamente gratuito, MySQL obliga a pagar una licencia.
Esto amerita un post mas extenso, con una explicación algo mas fundamentada que este simple titular.

También me encuentro trabajando con GLScene en Delphi, la contra, Delphi no me deja desarrollar los diseños de patrones como quisiera, esto es 'gracias' a su característica RAD, por lo que es una implementación para Delphi y punto.
Aun así estoy intentando respetar ciertos patrones de diseño, para que el traslado a otro lenguaje, C# (estoy pensando) sea menos traumático.
Quiero aprovechar las ventajas de un diseño que respete en los posible las diferentes capas, Presentación, Lógica, Persistencia.

Otro de mis problemas, ¿como hago para afinar el contraste de un bitmap con GLScene?, y a esto sumarle imágenes en formato DICOM....bueno, post a futuro con ejemplos incluidos.

Otra cosa, versionado, no me anda el componente JediVCS que se integra al IDE de Delphi 7 veré de probar otros como TortoiseCVS.

Al fin tengo mi propia biblioteca que permite realizar cálculos geométricos en BMP, cálculo de angulos, proyecciones de puntos sobre rectas, distancia entre 2 puntos, etc, veré si creo los componentes en Delphi o subo los fuentes.
(Otra tarea, pasarlo a C# y Java)

Mi Todo List asusta, pero motiva también.

Bueno, varias cosas por hacer, y por escribir aqui, porque la idea es compartirlo y que me corrijan.
Para descansar los dejo con música, linda, fancy.


So Flute - St Germain








/Ubuntu 7.04



Hace un mes recibí mis CDs de Ubuntu, podría descargarlos desde la web, pero preferí recibir el sobre con los mismos. Es solo un sobre, viene sin manual, pero el hecho de recibir los CDs en mi casa como regalo, me da ese placer que siento leyendo un libro que compré en vez de leer el PDF.

Ya había probado el anterior, la versión 6.10 en una máquina virtual usando VMWare, y para mi sorpresa me reconoció todo el hardware, incluso adsl, y por si fuera poco tiene una interfaz muy estética para mi gusto.

Me decidí por Ubuntu porque me parece for dummies..que es lo que soy, y esto no es en detrimento de Ubuntu, al contrario, sino porque no conozco demasiado el mundo Linux, y esta es una buena oportunidad de conocerlo a fondo desde una distro que me guía de la mano, filosofía Top-bottom. Y por si fuera poco tiene muchas comunidades, y además en español como Ubuntu-es. Asi de simple.

Mi única duda es si instalo Kubuntu, basado en KDE, o Ubuntu basado en Gnome.

Cuando tenga concluidas ciertas tareas de facultad, lo instalaré, no sea cosa que me quede inutilizada la computadora, y el atraso me cueste.

Como toda persona que hace el pasaje Windows->Linux me interesa saber ese mapeo que me informe de aplicaciones para Linux equivalentes a las existentes en Windows. Una de mis inquietudes, entorno de desarrollos, porque la programación Linux es otra de mis deudas pendientes.

Encontré dos links con esa información, seguramente hay más:
http://alts.homelinux.net/ (referidas segun categorías)
http://www.linuxalt.com/


vía LugMen (usuarios Linux de Mendoza)

/tv on demand




Hace un tiempo había hablado de Joost, y la verdad no me entusiasmó en lo mas mínimo, no tanto por el hecho de que el contenido era solo en inglés, sino mas bien por lo pobre, en mi opinión, del mismo. Me recordaba a la programación tonta, futil que veo en películas americanas cuando quieren crear una atmósfera de chatura, vacío o tedio. Y como tantos de estos experimentos, me gusta mas la idea detrás del emprendimiento que su forma actual. Pero como pienso que de la experiencia y la prueba, siempre algo decanta, creí que valía la pena divulgarlo.

neave.tv, a diferencia de Joost, es un sitio web, el proyecto experimental de Paul Neave. Este sitio si me pareció mucho mas interesante por el concepto que maneja, tiene 100 videos (sin copyright) donde podemos verlos uno tras otro al mejor estilo televisión. Y ademas podemos buscar videos dentro de las categorías disponibles: cortos, tecnología, subversivo, música y weird (extraño).
La interfaz es bastante simple de manejar, 0 misterio.
Los videos provienen de una recopilación de lo que anda por la web, Blip.tv, YouTube y Google Video.
Mas que concepto de red social, es tele on demand.

Requerimientos: una computadora con un procesador de por lo menos 1GHz, y banda ancha.

Recomendacion, ver el sito de Paul Neave.


vía morecoffeeplease



domingo, 12 de agosto de 2007

/(des)motivación




"si nunca intentas nada nuevo, te perderás muchas de las decepciones mas grandes de la vida"


el evangelio segun despair.com, cuanto mas bajas las expectativas, mayores serán las posibilidades de éxito.





/desarrollo de aplicaciones para celulares




Intento ingresar en el desarrollo para celulares, y de a poco busco y pruebo algunas cosas. Navegando encontré un sitio bastante interesante dotMobi, sitio web para programadores de celulares, gratuito.
Tiene un emulador de celulares para la pc y unas cuantas utilidades online como un emulador de navegación para celulares, un test que indica los errores de nuestra web, y una sección dedicada al diseño a partir de plantillas, de las cuales podemos modificar unas cuantas cosas, agregar aplicaciones al sitio, modificar headers, colores, textos, etc.
Y por supuesto, cuenta con un foro para desarrolladores, un apartado de herramientas para desarrollo, artículos y sugerencias varias.

Entre tantas encuentro MyMobileWeb (español) para el desarrollo de aplicaciones moviles, open source desarrollado por Telefónica Investigación y Desarrollo (TID) en el contexto de la comunidad open source Morfeo (liderada por TID). En la web de Morfeo están descritos los diferentes tipos de arquitectura para el desarrollo de aplicaciones, explicando las 'capas' que las componen y los componentes de cada una. Bastante claro y entendible.

Transcribo aqui lo principal de MyMobileWeb:


"MyMobileWeb es una plataforma software para desarrollar aplicaciones y portales web móviles de bajo coste. Se trata de un producto modular, basado en estándares, que ofrece una solución completa al problema de la movilidad. Permite el Desarrollo Rápido de Aplicaciones (RAD) y Servicios Multicanal y Multidispositivo en un tiempo muy breve y con un coste muy bajo."

"desarrollado completamente sobre tecnologías y estándares abiertos (independencia frente a terceros), e incluso algunas tecnologías estructuradas en torno a otras comunidades de software libre."

breve info técnica

"El modelo de canal se apoya en los principios de Arquitecturas Orientadas a Servicios (SOA). Las aplicaciones exportan servicios de negocio accesibles a través de diversos canales: portal/canal web tradicional y portal/canal de movilidad. Los servicios son independientes del canal a través del cual son accedidos"

"Existe un DriverHTTP encargado de recibir peticiones HTTP provenientes de distintos clientes (dispositivos móviles, PCs de escritorio, etc.). Cuando el DriverHTTP detecta que la petición proviene de un dispositivo móvil delega dicha petición en el Adaptador de Canal de Movilidad. Este adaptador se encarga de llamar a Operaciones de Aplicación que se apoyan en Servicios de Negocio (backend) para llevar a cabo las solicitudes de los usuarios. El Adaptador de Canal de Movilidad se encarga de resolver los aspectos de presentación y adaptación (frontend) para el entorno móvil."


Entre otras de las sorpresas interesantes es que ya existe un plugin para agilizar al desarrollo en Eclipse, el cual permite crear proyectos, configurarlos, crear elementos (por ej CSS) y gestionar el código. El plugin puede descargarse aqui, y su manual correspondiente aqui.









/mdzol.com (nuevo diario mendocino)




El nuevo diario Mdzol.com sólo viene en versión online segun entiendo, y como tal aprovecha las herramientas de la web para hacerlo mas interactivo, dinámico.
El contenido del diario es muy variado, mas bien liviano, desparejo, le falta madurez, no he visto análisis o columnas rigurosos, al menos hasta ahora.
Su parte de espectáculos es incompleta, solo por mencionar algo.
Pero vamos a darle crédito, es un formato con intenciones de ser novedoso, tiene pocos días de vida, y la forma se hace andando.

Quizás lo que lo hace diferente respecto a otros diarios online, y mendocinos en particular, es el uso de las herramientas de internet.


Cada nota tiene abierto un espacio para el comentario de lectores (al estilo blogs), donde a veces participa el autor de la misma.

Un elemento que al menos a mi en ocasiones suele llevarme a cierta lectura son los comentarios sobre la misma, es un detalle que suma, creo.

Las notas además pueden compartirse agregándolas a sitios como Technorati, Del.isio.us, Google bookmarks, y otros.
Buscan la interacción, invita a los lectores a subir videos y enviar noticias.

Otra cosa que me llamó la atención es la inclusión de videos de Youtube para ilustrar una noticia, está bueno.
Un ejemplo de esto es una nota sobre una escultura de arte conceptual del artista brasileño Ricardo Basbaum, aqui además podemos ver la entrevista.

Siguiendo su estilo web oriented, cuenta con un apartado donde sugiere lo mas novedoso que anda en por la web, como por ejemplo el optical ilusion.

Lo que enconté mas novedoso es publicar anuncios del diario en blogs o sitios, provee el código html para hacerlo
. Esto último no es algo que me interese demasiado, pero puede tener utilidades varias, a algunos les interesará divulgarlo, otros publicarlo para criticar, o como en mi caso mencionarlo porque nunca lo vi antes :p

Tiene un display agradable y muy práctico que distribuye muy bien la diversidad de topics que contiene, lo que hace ágil su lectura a diferencia de otros diarios online.

En resumen, por ahora me gusta mas el ánimo y el espíritu detrás de esta idea que el contenido propiamente dicho. Rescato la actitud saludable de la intervención de alguno de los autores/editores en los comentarios de las notas, donde si bien no vi ningun planteo novedoso, celebro la retroalimentación que genera y la responsabilidad que conlleva.

Ejemplo del uso de internet, artículo mas bien descriptivo sobre la inseguridad en Mendoza, informe Google Earth mediante




Aqui publico un aviso, solo a modo de ejemplo (a veces funciona..)









viernes, 10 de agosto de 2007

/paz y amor



dos, la primera canadiense



vía haha.nu

la segunda from Rusia with love

(me gustó mas la primera)





/almacenamiento 'infinito'



Encontré estas dos opciones gratuitas, y para cualquier tipo de archivo :

Files upload

  • Límite de carga: ilimiatdo
  • Max. 300 MB por archivo via HTTP, permiten archivos divididos
  • Max. 1 Gb por archivo via FTP permiten archivos divididos
  • Límite de descarga: ilimitado
  • Ayuda para reanudar descargas
  • La duracion de los archivos es hasta 3 meses después de la ultima descarga catálogo de archivos, y los top 25

Cuenta con un ranking de archivos y un catálogo (esto último no me sirvió de mucho...no vi demasiadas cosas interesantes)


in.solit.us
A diferencia de los demás ofrece espacio y ancho de banda ilimitados, y gratis como dije. Es necesario crear una cuenta de usuario para disponer de todas sus funcionalidades.

Características
Nube de tags, suscripción a contenidos por RSS y la posibilidad de compartir archivos entre grupos y a través de enlaces privados de descarga.

Podemos navegar para ver los archivos almacenados segun categoría, usuario o tag, contactarse con otros usuarios, etc.

Para subir archivos tiene una interfaz web y además vía WebDAV.

Podemos disponer de una página personal pública, con su correspondiente feed rss, donde los usuarios podrán ver nuestros archivos públicos..

Los usuarios disponen de feeds para seguir los diez últimos archivos públicos subidos.

Se puede navegar por las etiquetas de modo que se puede acceder a los archivos públicos sin necesidad de registro.


(Está en fase beta, y su autor lo desarrolló usando un Powermac G5 y un Macbook Pro, en Ruby on Rails y con TextMate)





/Code::Blocks (IDE para C/C++)




He estado programando en C++ con Eclipse, en otro post comentaré acerca de esto. Lo estoy haciendo con cygwin, pero tengo intenciones de cambiar a MinGW, hecho que también comentaré.

Vía Fede por MSN me comenta de Code::Blocks, que tiene características mas interesantes de las que esperaba...a diferencia de Dev-C++ el debugger funciona, y como producto continúa desarrollándose. (Ideal para estudiantes de P3)

Aunque la última versión estable en el sitio data del 2005, recomiendan descargar la versión llamada 'nightly'
que está en permanente desarrollo y con mejoras, cuyo link está en el foro (el origen del nombre se debe a que desarrollan durante la noche).

Navegando por el foro, encontré el sitio de las descargas, ordenadas en forma cronológica acorde a su release. Específicamente en la sección 'Archivos' se encuentran las últimas versiones para los diversos sistemas operativos. Adelanté algo, es multiplataforma.

Descripción

  • Code::Blocks Studio es un nuevo IDE Open Source (GPL2) para C/C++. Está programado en GNU C++ y wxWidgets.
  • Es multiplataforma (actualmente corre en windows, linux, *nix)
  • No necesita de lenguajes interpretados ni bibliotecas propietarias.
  • Viene en dos modalidades: Standalone, o con MinGW integrado.
  • Soporta Devpack (opcional)
  • Extensible por medio de plugins (SDK disponible para su descarga)
  • CB es una aplicación multihilos, en Windows lo hace usando el puerto MinGW, más específicamente mingwm10.dll
  • Para que CB use las funcionalidades que ofrece wxWidgets hay que descargar wxmsw28u_gcc_cb.dll.

Complilador
  • Extensible a través de plug-ins
  • Soporte Multicompilador :
  1. gcc (MingW/cygwin/Linux GCC)
  2. Intel
  3. MSVC++
  4. Digital Mars
  5. Borland C++ 5.5
  6. Watcom
  • Templates de proyectos predefinidas
  • Compila directamente o con makefiles
  • Soporta personalizacion de templates
  • Soporta workspaces
  • Importa projectos y workspaces de MSVC
  • Importa projectos de Dev-C++
  • Soporte integrado para debugger (GDB)
  • Uso de formato XML para archivos de proyectos

CB y las GUI

Hay varias formas de crear una interfaz de usuario
  • Windows API (funciona solo en Windows)
  • MS-MFC (sólo para Windows)
  • o bibliotecas de terceros como las QT, wxWidgets, TK, CB usa wxWidgets, la cual es multiplataforma.

Instalación
elegir:
  1. CB nightly
  2. mingwm10.dll
  3. wxmsw28u_gcc_cb.dll

Finalmente
unzip CB nightly en alguna carpeta.
unzip ambas dll's, es necesario que se encuentren en el PATH, lo mas fácil es hacer un unzip de ambas en el mismo directorio donde fue descompactado CB nightly (donde está codeblocks.exe)


NOTA: Aunque viene con un plugin para programar usando wxWidgets, debemos instalarlo por separado, y por si acaso aclaro, que la dll mencionada anteriormente hace a las funcionalidades de CB únicamente.

Programar con wxWidgets es una de las cosas que mas me movió a probar este IDE. Veré si lo pruebo mas a fondo, me gustaría saber si puede ser una alternativa open source a Visual C++ para la producción propiamente dicha.







miércoles, 8 de agosto de 2007

/Cobos segun un diario local



La diaria es el diario que mas me gusta, aqui en una versión reducida en PDF, del diario, no de los artículos que se incluyen, puede leerse una disección con las limitaciones que impone el formato, lo suficientemente descriptiva sobre Julio Cobos (hacer un poco de scroll down).

(Julio Cobos, actual gobernador de Mendoza, candidato a vicepresidente para las próximas elecciones en Argentina, y yo soy una cuyana adoptiva)






viernes, 3 de agosto de 2007

/"remeros del desierto" (mendocinos)




De las tantas paradojas, el título hace alusión al de este artículo acerca de la medalla de oro obtenida por Argentina en remo en los recientes Juegos Panamericanos de Río. Lo mas curioso es que el equipo de remo es mendocino, un lugar al borde de la cordillera de clima seco, y donde la poca agua que hay en abundancia es artificial.
Hay una foto de los remeros en un lago artificial, no especifica, asumo que se refiera al lago frente al Club de Regatas de Mendoza que atraviesa el Parque San Martin.

Dos cosas, como tengo mi corazón en Mendoza, me alegra. Y la otra es una reflexión de la que me di cuenta leyendo ese artículo. Mendoza se caracteriza por ser una provincia seca, donde el agua se aprovecha al máximo, por ejemplo mediante sus acequias. Tiene parques artificiales (como el San Martin) o lagos artificiales, sin embargo no desdibuja su esencia. Es la dosis de agua necesaria que no altera lo característico de esa ciudad.
Probablemente sea uno de los motivos por los cuales en pleno enero, no sentí la ausencia de la costa, lo auténtico compensa.


Off topic: no se si pertenecen al Club de Regatas, pero al margen aclaro que me quedé sorprendida por las instalaciones, y curiosamente estuve recorriendo la parte donde preparan/reparan las canoas.



/tarea de Arquitectura de Sistemas



Dejo una tarea que realizamos junto al Tata para la materia de Arquitectura de Sistemas, materia que consistía en ese entonces sobre circuitos lógicos, álgebra de boole, una introducción a la arquitectura de computadores, concepto de interrupciones, conocer assembler con el fin de programar a bajo nivel los componentes de la arquitectura 8086 (por medio de interrupciones, eventualmente recurrencia, etc), y una introducción a la arquitectura RISC y conceptos del lenguaje SPARC.

La tarea que realizamos fue una de las mejores que hice, tenía menos conciencia pero mas tiempo para dedicarle a facultad, y además porque en esta tarea se amalgaman una serie de conceptos: programación en assembler, manejo de la memoria de video y el manejo de interrupciones.

Objetivo de la tarea: implementar en ambiente DOS un controlador de un dispositivo de entrada/salida como es el mouse, y representar en la pantalla mediante un puntero los posibles movimientos que este hace, así como informar las coordenadas de dicho puntero cuando se presiona el botón izquierdo del mouse.

El trabajo fue realizado en ensamblador 8086, y está basado en la interrupción generada por el puerto serial COM1 o COM2.

Breve explicación:
El problema se divide en tres grandes tareas:

  • Recepción de datos
  • Procesamiento y detección de errores
  • Visualización en pantalla de información relativa al ratón

Un autómata finito muestra las diferentes instancias del problema, este diagrama nos sirvió a los efectos de construir el pseudocódigo de nuestro algoritmo principal.
(En la documentación se explica la semántica de cada estado)

Para abordar esta tarea debimos conocer algo más de lo que nos dieron sobre la UART (Universal Asynchronous receiver/transmitter), dispositivo de E/S que encapsula las funciones de transmisión y recepción empleadas en la comunicación en serie asíncrona
  • En serie porque los bits que representan un valor se transmiten uno a uno
  • Asíncrona porque se puede recibir/transmitir en cualquier momento
Si bien en la documentación hay una plantilla con mas especificaciones sobre el funcionamiento de la UART, sus registros, la forma en que recibe o envía señales, etc, a nosotros al menos no nos fue suficiente, y debimos googlear. De todos modos, la incluyo a modo de referencia rápida.

documentacion.rar
  • maquinas de estados.doc (descripción del problema, abordaje, rutinas)
  • uart.pdf (mini manual sobre UART)
  • arqoblig.pdf (letra del problema)
  • notas.txt (parámetros de la UART, notas generales)
fuentes.rar (contiene los fuentes en assembler del problema, el propósito de cada uno de los mismos está explicado en el archivo correspondiente)
  • macro.asm
  • setpic.asm
  • setuart.asm
  • vars.asm
  • rrssii.asm
  • const.asm
  • mouse.asm
utiliarios.rar (archivos necesarios para compliar, linkeditar, generar .com, etc)
  • compilo.bat
  • tasm.exe
  • td.exe
  • dosxnt.exe
  • tlink.exe

tasm
: "Turbo Assembler", ensamblador que genera un código objeto (.obj)
tlink: "Turbo Link", programa que linkedita el código objeto con otras rutinas ya compiladas, generando el programa ejecutable (.exe).
td: "Turbo Debbuger", programa que permite visualizar la ejecución de un programa, inspeccionando el valor de los registros en cada instancia del mismo en forma visual.
dosxnt: para trabajar en terminales Windows NT.

"Para ejecutar el Turbo Assembler en modo de compatibilidad con el código escrito para el Microsoft Macro Assembler, se le debe poner como parámetros:
tasm /jmasm archivo.asm
Como se debe generar un archivo ejecutable de dos .COM, al ejecutar el linker se le pasan los parámetros /t, o sea: tlink /t archivo.obj, luego de esto se habrá generado el archivo.com"

(Sobre el uso de los utilitarios está mas explicado en la letra de la tarea)

Paralelamente, no relacionado con la tarea pero sí con programación assembler, también hay un código que hicimos para preparar el examen y aprender a implementar recurrencia, implementamos el conocido problema de las Torres de Hanoi. (archivo: Hanoi.asm)

Lo pueden descargar desde la sección Fuckultad o aqui: