IDEs en Universidades Peruanas

July 24, 2007

Habiendo terminado ya el curso de Fundamentos de Programación en la USAT, me veo obligado a dar mi apreciación sobre los compiladores que solemos utilizar en las Universidades Peruanas.

Por lo general en los primeros ciclos se suele usar el compilador Borland C, más que nada por la ayuda que trae incluida… es de muy alto nivel, a pesar de estar en inglés.

El problema es que usar Borland C tiene un precio. Las librerías <conio.h> no son portables y atan al usuario en una sola plataforma que es MS-DOS y Windows. Lo peor de todo es que Windows Vista ya no es compatible con este arcaico programa (Borland C data de 1993) y por lo tanto todos los programas enseñados que usen las características propias de Borland C no servirán a menos de que sean portados.

Otro problema es que Borland C usa entorno DOS y no se adecua al sistema gráfico que se suele usar en aplicaciones Windows. Esto sumado a su falta de “conocimiento” de la Memoria Extendida, hace que se ejecute lentamente aún en ordenadores muy modernos.

Más adelante en ciclos superiores se dejará Borland C y se usarán otros compiladores, por lo general los de la familia Visual Studio de Microsoft. Aquí es donde se empieza a pagar las consecuencias de haberse acostumbrado a usar un compilador que si bien tiene buenas características, ya es obsoleto por su antiguedad, que es de casi más de 14 años.

En lo personal Visual Studio y Visual Studio.NET son IDEs que pueden facilitarles la programación a los interesados. El único problema es que no es gratuito del todo (Y si lo es tiene limitaciones). Ya que no estoy a favor de la piratería dentro de instituciones educativas… puedo sugerir IDEs libres que por extensión nos permiten disponer de su código fuente para mejorarlos o portarlos a sistemas en los que aún no están soportados. (Portar un Software Libre puede ser un tema de Tesis sencillo de defender).

Antes de mencionar los IDEs libres, hay que mencionar que el compilador libre por excelencia es el GCC del Proyecto GNU. En MS-DOS se llama DJGPP y en Windows se llama MinGW.

Ahora sí… empezemos con los IDEs libres:

Dev C++: Es un sencillo IDE para C y C++. Está escrito en Delphi y destaca en que permite instalar librerías, usando paquetes .devpak que se parecen mucho a los paquetes Debian .deb. Aunque es muy útil y sencillo, está sin actualizar desde el 2005. Quizá su única gran carencia es que no podemos diseñar GUI con esta herramienta. Sin embargo para esta limitación está wxDev C++, una bifurcación de Dev C++ que incluye un diseñador gráfico de ventanas usando wxWidgets. wxDev C++ se desarrolla activamente. Ambos programas son Software Libre, bajo la GNU GPL.

Screenshots:

Dev C++
wxDev C++

Code::Blocks: Es un IDE más profesional que Dev C++. Recuerda bastante a Visual C++. A diferencia del primero, Code::Blocks está escrito en C, por lo que es multiplataforma y funciona tanto en Windows y Linux. Tiene una arquitectura de Plugins y nos permite diseñar GUI mediante su plugin wxSmith, basado en wxWidgets. Es Software Libre, liberado bajo la GNU GPL.

Screenshots:

Code::Blocks

Scite: No es exactamente un IDE, si no un editor de texto que resalta la sintaxis de varios lenguajes. Puede ser útil para tratar con interfaces que no ordenan ni agrupan bloques de código, como las de Borland C. En su campo de aplicación, tiene otros competidores libres como Notepad++.

Screenshots:

Scite

Actualización (24 - 07 - 07): Hablaré de SharpDevelop, un IDE para C# porque se me pidió en los comentarios.

SharpDevelop: Es un IDE libre para usar con C#y VB.NET. Permite conversión de C#a VB.NET y es extensible mediante una arquitectura de Plugins. Solo funciona en Windows. Para los que deseen programar bajo Linux, pueden usar el fork de SharpDevelop que patrocina el Proyecto Mono: MonoDevelop.

Screenshots:

SharpDevelop

Pueden haber más editores, pero estos son algunos de ellos. Pueden ser útiles y servir para los estudiantes que no deseen usar productos Microsoft o que no puedan adquirirlos de la manera legal.

Feliz Programación.

¡¡No al Formato OpenXML!!

July 14, 2007

Ya existe un estándar para los documentos y demás aplicativos ofimáticos. Ese formato estándar es ODF (Open Document Format), que es libre, por el bien de la industria.

No obstante, Microsoft, demostrando que no quiere perder el monopolio de la ofimática y temiendo de que este estándar ODF, que ha pasado todas las pruebas de calidad que exige la ISO, está tratando de imponer su pseudo-abierto formato OpenXML, que de “Open” no tiene nada, ya que está protegido por patentes, que podría usar en cualquier momento si ve que sus competidores le llevan la contraria.

Algunas razones para oponerse al formato pseudo-abierto de Microsoft son:

  • Ya existe el ISO26300, que es el Formato ODF (Open Document Format). Tener dos estándares sería un quebradero de cabeza increíble para todas las organizaciones.
  • No existe ninguna implementación funcional de OpenXML. Microsoft Office 2007, que es la única implementación a la fecha, no cumple con su propia especificación de OpenXML. Por otro lado, si existen implementaciones de ODF funcionales, como en los softwares libres OpenOffice.org, KOffice y Abiword.
  • Hay información perdida en la especificación de OpenXML. Por ejemplo no hay indicaciones de como implementar las funciones autoSpaceLikeWord95 y/o useWord97LineBreakRules. La implementación de estas funciones está en el código de Word 95 y Word 97, que sabemos que Microsoft no va a liberar.
  • Más del 10% de los ejemplos de la especificación OpenXML, no son compatibles con la especificación de XML.
  • No hay garantías de que se pueda implementar este “estándar” sin el peligro de ser demandado por parte de Microsoft, debido a las patentes que rodean a OpenXML.
  • OpenXML incumple varios estándares, como ISO 8601, ISO 639 e ISO/IEC 10118-3, estándares encargados de la fecha y hora, representación de lenguajes y nombres y hashes criptográficos; respectivamente.
  • Hay un bug en OpenXML (Y en todos los formatos de Microsoft) que impide asignar una fecha menor a 1990. Este bug está presente desde Microsoft Office 2000 y nadie se ha dignado en corregirlo.
  • OpenXML fue creado sin consultar a ningún interesado, como la industria, productores, etc. Solo fue diseñado por Microsoft.
  • La especificación de OpenXML es de 6000 páginas, frente a las 300 de ODT, y que están incluso mejor definidas.
  • Solo Microsoft Office 2007 soporta OpenXML. Office 2007 no es libre y tampoco gratuito. Los usuarios que deseen usar este formato… se verán obligados a pagar. Y hay algunos casos en los que eso… ¡Es inaceptable!

¿Te parece que un formato con tantas fallas como OpenXML debe llegar a ser estándar? ¡No lo creo! Si dejamos que este formato sea estándar, las organizaciones no respetarán a la ISO porque se dejó influenciar por una de las empresas más poderosas de turno.

A propósito, mientras ODT (Open Document Format) pasó todas las pruebas de calidad que la ISO le impuso, OpenXML solo pasó unas cuantas usando a ECMA como salvoconducto. ¿Un formato mediocre debe dominar el medio? Pues yo creo que no debería ser así.

¿Te imaginas lo que pasará si la ISO deja de ser respetada? ¡Ya nadie garantizará la estandarización! Las consecuencias podrían ser desastrosas.

Si quieres evitar que OpenXML, el pseudo-estándar de Microsoft, se convierta en el estándar en el que todos nuestros documentos serán mantenidos… firma la petición online contra este formato no apto para ISO.

Recuerda… dile No al Formato OpenXML. ¡Dile sí al formato ODF (Open Document Format)!

Podcasting: Alternativa a la Radio por Internet

July 13, 2007

Muchos de nosotros hemos tenido la apremiante necesidad de dar a conocer a muchos nuestros puntos de vista en referencia a noticias y lo hacemos por lo general en blogs o hablando personalmente con los intersados.

Sin embargo, algunos de nosotros montamos radios por Internet, para tener programación y un espacio para nuestras opiniones. Una solución sencilla, aparentemente, de acuerdo a lo que piensan algunos.

Sin embargo mantener una radio por Internet no es nada fácil, más que nada porque tienes que montar un servidor y tus oyentes sólo pueden oirte si estás en línea. Si quisieras que te oyeran en las noches y tu no puedes transmitir por las noches… no hay nada que hacer.

Es aquí donde surge la importancia del Podcasting. Básicamente el Podcasting es la transmisión de ficheros .mp3 u .ogg através de ficheros RSS, lo que hace posible que un usuario pueda suscribirse a algún Podcast específico y recibir las actualizaciones de ellos, sin la necesidad de que otro esté hablando en directo en ese mismo momento.

Se les puede comparar con los blogs, con la única diferencia de que son hablados. Al igual que los blogs, son de temáticas variadas y suelen ser actualizados.

Si se animan a crear un Podcast, han de saber que necesitarán algun programa que genere .mp3 u .ogg. Audacity puede ser una buena opción y lo mejor de todo es que es libre, por lo que no tendremos problemas con su descarga.

Luego deberemos grabar un fichero de audio con lo que deseemos transmitir. Para asegurarnos de que no estamos ocupando ancho de banda adicional, cuando grabemos el .mp3 debemos usar los siguientes parámetros:

Si sólo es voz: 48k o 56k de Bitrate. Mono.
Si es voz y música: 64k de Bitrate. Stereo.

(Datos tomados de: http://www.podcastellano.com/como-hacer-podcast)

Finalmente debemos etiquetar el .mp3 usando sus etiquetas ID3 Tag. Cualquier reproductor, como Winamp tiene esa opción.

Una vez grabado el .mp3 a transmitir, debemos alojarlo en algún lado. Hay servicios gratuitos o siempre queda la opción de montar nuestro propio servidor. Remítanse a Podcastellano.com para más información sobre hosting.

Así podemos crear un Podcast y dar a conocer al mundo nuestras ideas o apreciaciones.

Feliz Podcast y difunde tus ideas con libertad.

Descargar de Stage6.divx.com con Python

July 11, 2007

Como mencionaba en un post anterior, Stage6 es una web que posee videos de alta calidad comprimidos en formato DivX.

Al ser videos de alta calidad, su tamaño crece y ese factor hace que no sea factible verlos on-line. Lo único que nos queda es descargarlos.

Pero no siempre contamos con el plug-in de DivX que nos permite descargarlos o no siempre podemos instalarle cosas a un PC.

Gracias al blog de SigT encontré una forma sencilla de descargar los videos y que después de entenderla, he decidido programarla en Python para que los amantes de Bash o cualquier otra consola puedan poner una lista con sus videos y dejarlos descargar toda la noche.

Decir que hice el Script en el lenguaje Python, más que nada por lo versátil que es trabajando y por ser un lenguaje interpretado. Si alguien desea convertirlo a C o algún otro lenguaje, que lo haga.

El script en Python se llama stage6.py y su contenido es:

#!/usr/bin/python
# -*- coding: utf-8 -*-

# *****************
# Stage6 - Downloader
# 2007 por BrunoProg64
# *****************
# Este programa descarga videos del sitio http://stage6.com
# creado por la empresa DivX
# ******************
# Este programa es Software libre y puede ser copiado, redistribuido y modificado
# de acuerdo a los términos de la licencia GNU GPL 3.0 o superior, publicada por la
#Free Software Foundation. Puede conectarse a su sitio http://www.gnu.org para
# obtener una copia de la licencia.
# *******************

import sys

params = sys.argv

if (len(params)) < = 1:
print "No se han introducido argumentos suficientes"
print "Introdusca una URL de video de stage6.com"
sys.exit(0)

# si llega aquí, se introdujo una línea de comandos. la validamos
# La validación, comprobará si la URL tiene las cadenas "stage6.divx.com"
# si no encuentra la cadena... entonces dará un error y saldrá del programa

test = params[1]

if (test.find("stage6.divx.com") == -1):
print "La URL ingresada no es valida. Asegurese que sea de stage6.divx.com"
exit(0)

num=0
j=0

url_sp = test.split("/")

for i in range(1, len(url_sp)):
l=url_sp[i].isdigit()
if (l == True):
num=num+1
j=i

if num < 0:
print "No hay ID de video. URL no valida"
exit(0)

# Armamos la cadena que devolveremos.
# La URL de descarga es: http://video.stage6.com/[id_video]/.divx

down_url = "http://video.stage6.com/" + url_sp[j] + "/.divx"
print down_url

Como pueden ver, si se da una URL de Stage6.divx.com, solamente devuelve la URL para descarga. Si se introduce una URL no válida, simplemente emitirá un mensaje indicándolo. Cabe destacar que es el primer programa que libero bajo la nueva GNU GPLv3.

Ahora solo es la creatividad de cada uno bajar sus enlaces de stage6.divx.com y hacerse un script en Bash para dejarlos descargando toda la noche.

Feliz descarga y recuerden que necesitan codecs para ver los videos. Usar el códec XviD que incluye Mplayer o que puede ser fácilmente instalado en Windows sería la mejor solución.

Stage6: Alternativa a YouTube

July 7, 2007

Muchos de los usuarios de Internet, cuando no tienen que ver o se han perdido series, más que nada por culpa de los horarios a los que estamos sujetos.

Es aquí donde YouTube puede salvarnos el día permitiéndonos ver series y demás material on-line. Sin embargo YouTube siempre ha padecido un gran problema: La calidad de sus videos.

La gran realidad de YouTube es que sus videos están en formato .flv (Flash) y por eso, son más rápidos de cargar en la red, aunque su calidad deja mucho que desear.

Gracias al blog de Necudeco me entero de la existencia de una alternativa a YouTube: Stage6.

Stage6 es un proyecto de video on-line montado por la empresa DivX. Su principal diferencia contra YouTube, es el uso del códec DivX, lo que permite tener video de alta calidad y alta resolución. (A un costo de descarga mayor, por supuesto).

Otra ventaja frente a YouTube es que no hay límite de tiempo en los videos, vale decir, podemos subir videos que tengan la duración que deseemos. Así se han subido conciertos, películas y demás a este portal.

Y quizá su ventaja más saltante, es que la descarga de los videos no está oculta. Vale decir… instalamos el plugin para poderlos ver online (El plugin solo funciona en Internet Explorer) y hay una opción de descarga. Para usuarios de Mozilla y Linux… hay una solución más sencilla (Vía SigT):

Supongamos que tenemos la siguiente dirección: http://stage6.divx.com/user/arcus/video/1179721/BLOOD-OP3

Esta dirección, es por cierto un enlace a una Opening de la serie de Animación Japonesa Blood+.

Vamos a nuestro navegador y escribimos lo siguiente: http://video.stage6.com/[id_video]/.divx

Remplazemos [id_video] por la serie de números que aparecen en el link anterior. Esos números son el identificador del video.

Cuando visitemos ese enlace, descargaremos un archivo en formato .divx. No se preocupen, es simplemente un .avi con códec DivX o MPEG-4 como coloquialmente se le suele llamar. Mplayer o cualquier otro reproductor de video lo visualisan sin problemas.

Por supuesto… si tenemos ancho de banda, podemos usar mplayer y ver todo on-line, colocando la dirección anterior como argumento de mplayer.

Dicho esto… espero que prueben Stage6. A mi, en lo personal me encantó… creo que me iré despidiendo de YouTube.

Feliz Navegación. Eso sí… preparen algun espacio en sus discos duros que los videos son de mediano tamaño.

Las Nuevas 7 Maravillas: Estafa total

July 6, 2007

Muchos peruanos estuvieron ilusionados con este concurso de las Nuevas 7 Maravillas, ya que permitiría a nuestro país, ser un receptáculo del Turismo Mundial y a la vez ser reconocidos como una de las culturas milenarias más grandes de todas. La realidad no es tan dulce.

Vía Meneame, me entero que la UNESCO ha desaprovado el Proyecto de las Nuevas 7 Maravillas, por ser solamente una consulta por Internet y carecer de la seriedad de todo análisis para determinar maravillas.

La opinión de la UNESCO es respetable, ya que por ejemplo, frente a Machu Picchu, no pueden competir la Torre Eifel ni la Estatua de la Libertad, ya que se hicieron en una época posterior y con adelantos tecnológicos que los desmerecen como maravillas.

Lo más grave es que los votos podían ser gratuitos o mediante previo pago. Los expertos se preguntan a donde irá todo el dinero recaudado… tal parece que las Maravillas serán las cuentas corrientes de estos bribones que jugaron con la ilusión de miles de peruanos y gente de otras nacionalidades alrededor del mundo.

Lo peor de todo es que la UNESCO recién hace este anuncio un día antes de la publicación de los resultados. (La publicación es el Sábado 7 de Julio) y con esto ha colaborado en la gran estafa que fue este concurso. Si no están reconocidas por ningún organismo oficial… ¿Quién se interesará en las Nuevas 7 Maravillas?

Y al no ser oficiales, tampoco habrá ayudas por parte de la UNESCO para la conservación de algunas maravillas que si merecen serlo, como Machu Picchu y el Partenón de Atenas. Lo irónico es que Egipto advirtió hace ya mucho tiempo de que se trataba de un timo… pero nadie le creyó. Una lástima no haber creído esa información.

Es obivo imaginar que el móvil de todo esto es la Industria Turística Internacional, pero eso no les da el derecho de jugar con las ilusiones de millones de personas que votaron e inclusive pagaron. Aquí en el Perú, mi repudio al Ministerio de Turismo que apoyó la campaña y a los medios de comunicación que también no se dieron cuenta del engaño… cuando lo único que hacen es decir cuan malo es Internet. Ahora es Internet quien nos quita la venda de los ojos.

Lamentable… en realidad. Nos engañaron a todos… no solo a los peruanos. ¡A todos los que votaron!

No permitamos que una empresa privada se lucre a costa de nuestros sueños de nuevo. ¡Abrámos los ojos!

Actualización (07-07-07): El Perú quedó 4º en el resultado Final. Vale decir que Machu Picchu es una Maravilla. Sin embargo, eso no le quita el tono lucrativo que tenía este certamen. Aún así… ¡Bien hecho Perú!

Censura pura y dura ¿Hasta cuando?

July 2, 2007

Pensaba que la censura era una cosa del pasado, que actualmente todos tendrían libertad para expresarse. Me di cuenta de que estaba equivocado.

Leo en el blog Aprendiz de Brujo, que el INC (Instituto Nacional de Cultura) ha censurado la exposición de un artista peruano, para ser exactos de Piero Quijano, por presión del Ejército del Perú. La exposición se exhibía en la Casa Museo José Carlos Mariátegui hasta el 21 de Julio. Cabe destacar que la exposición sigue ahí, pero censurada.

La fotografía que más llama la atención de la serie censurada es esta:

Imagen Piero Quijano

Como se puede ver es una denuncia a la creencia de que los costeños somos superiores a nuestros compatriotas de las zonas andinas y también denuncia de las atrocidades que se cometieron durante la época del Terrorismo y en las épocas de los Terratenientes (Ciro Alegría lo explica mejor que nadie en su novela: El Mundo es Ancho y Ajeno).

Mi total repudio a quien siguió ordenes tan serviles del Ejército para poder hacer esto… ¡En plena democracia! ¿Acaso no se había prometido libertad de expresión? Más bien… esto parece el camino a la censura. Como dicen en el blog de origen… Pido la cabeza de Cecilia Bákula.

El Ejército eliminó a Sendero Luminoso y al MRTA, eso no lo dudo y estoy profundamente agradecido por eso. Sin embargo durante la existencia de la Comisión de la Verdad y Reconciliación, los campesinos contaron horrores que hicieron los militares en el afán desesperado de controlar el terrorismo. Se logró controlar, es cierto, pero a costa de muchos excesos y vidas inocentes sacrificadas.

Y ya que tocamos el tema de la censura… hay otras dos clases de censura que me molestan. Las llamo la Censura de Traducción y la Censura de Información.

La Censura de Traducción es una adaptación excesiva de una serie extranjera a un idioma local. En lo personal la he experimentado en series Anime por lo general. (Lo cual no quita de que también exista en otro tipo de producciones)

Básicamente esta censura consiste en hacer un Anime (O cualquier otra serie), más “apta” para públicos infantiles, lo que causa a veces eliminación de capítulos, escenas o degradación del argumento. Aquí en el Perú esto ha sido patente con series como Dragon Ball y Pokemón.

Otro método de censurar estas series es mediante la eliminación de las Openings y Endings originales y sustituirlas por canciones que no se comparan en nada a las originales. Ejemplos claros tenemos Digimon y Shaman King.

Y como siempre… la eliminación de violencia gráfica y/o desnudos o en el peor de los casos su completa adaptación, lo que hace el argumento inviable. Además se suelen cambiar los títulos originales a nombres más cortos, pero en ocasiones inexpresivos. Un ejemplo es la serie Konjiki no Gash Bell (El dorado Gash Bell), que fue reducida a Zatch Bell. (Aunque en el Perú no se ha emitido tal serie… si se hace en Televisión por Cable).

Justamente de esta serie en especial quiero hacer hincapié. He tenido la oportunidad de verla personalmente y me he llevado más que una sorpresa.

Nota del Autor: Lo que sige son spoilers (Es decir, adelantarte el argumento de una serie). Si no quieres enterarte… no leas el texto entre guiones.

——- Inicio del Spoiler ———–

En el episodio 1, los que hayan tenido suerte de verla con subtítulos, se habrán percatado de que Gash Bell (Ese es su nombre real), aparece ante Kiyomaro, totalmente desnudo y con un pescado. En la versión traducida se le pone “ropa interior” para evitar los reclamos de algunos airados padres. Por otro lado, cuando Gash sugiere a Kiyomaro la “Operación Héroe de la Justicia”, la pancarta sale escrita en legible inglés, cuando verdaderamente debería ser Japonés.

En episodios posteriores hay alguna violencia gráfica, válgame decir, sangre. Ocurre una escena en la cual Kiyomaro se interpone ante unos dardos que le desgarran la camisa y lo hacen caer bañado en sangre. En la versión traducida solo cae con la camisa hecha jirones. No hay sangre.

Sin embargo… a pesar de esa censura… tal parece que se les olvidó censurar una parte muy grave. Hay una discusión entre una chica y un tal Brago. Cuando la discusión se pone intensa, ya que Brago desmerece a la chica por su género, ella coge un florero, lo rompe, coge una punta de lo roto y se la coloca en el cuello diciendo que si Brago seguía… se hincaría el cuello y pondría fin a su vida. Brago tuvo que ceder.

Me parece que eso es “más grave” que simple sangre o un desnudo infantil. Por otro lado, conociendo como es la moral Norteamericana, que se escandaliza por el cuerpo y no por la violencia, podría decir que no me extraña en lo absoluto. Lo raro es que si se censura cosas pueriles… ¿Acaso no van a censurar un intento de suicidio?

—— Fin del Spoiler ———-

Con respecto a la segunda, la Censura de Información es la manipulación o eliminación de una noticia que no es agradable a los ojos de algunas personas. Quizá este es el tipo de censura más grave ya que juega con la información… un derecho de todas las personas.

Dejando los spoilers y demás ideas a un lado , me parece que en la sociedad actual la censura es algo inaceptable, porque limita la capacidad de decisión de todos y nos deja sólo con lo que pocos quieren.

Con respecto al tema de la Censura del INC… mi solidaridad con el artista y mi repudio a la acción servil de INC.

¡Basta ya de censura pura y dura! ¡Queremos libertad!