Archive for junio, 2010

28th jun 2010

Consejo para quienes organicen el grado de Informática

Sé que ya llego tarde pero…

  1. Eliminar todo el contenido relacionado con Ingeniería del Software.
  2. Mandar a los alumnos tres o cuatro años a trabajar.
  3. Ahora sí, meterse a fondo con metodologías, uml, diseños, planificaciones… Cuando realmente lo valoremos.

Porque mientras estás estudiando y el mundo es rosa, a todos nos parecen una completa pérdida de tiempo. Y ojo, que sé que son fundamentales, pero igual sólo uno de cada veinte estudiantes no piensa que son un montón de dibujitos y chorradas. Es como obligar a leer El Quijote en primero de la ESO.

Bueno, o eso, o enseñar a programar desde primero aplicando al 100% alguna metodología… No sé qué traería más problemas/soluciones.

Posted by Posted by Ender Muab'Dib under Filed under Informática Comments 1 Comment »

26th jun 2010

Quiénes merecen ser llamados PIGS

Explica Vicenç Navarro en su blog por qué PIGS sólo debería hacer referencia a las clases pudientes de esos países, y no a las trabajadoras.

El 30% de renta superior del país (burguesía, pequeña burguesía y clase media de renta alta) tienen un poder económico, político y mediático enorme y no pagan los mismos impuestos que pagan sus homólogos en la mayoría de países de la UE-15. Y como tienen una enorme influencia en los medios (la mayoría de creadores de opinión pertenecen a estas clases), los medios de mayor difusión nunca hablan de ello. Esta situación ocurre en todos los PIGS, en donde las derechas han tenido un enorme poder (y donde las izquierdas gobernantes han sido contaminadas con el pensamiento neoliberal –la ideología de los ricos- tal como lo mostró aquella famosa frase de que “bajar impuestos es de izquierdas”. Y los bajaron, no sólo una, sino diez veces.

Posted by Posted by Ender Muab'Dib under Filed under Huesca, Política, actualidad Comments No Comments »

21st jun 2010

Incremento y decremento

Hoy toca post para informáticos. Como bien sabréis, muchos lenguajes disponen de una forma abreviada de indicar incrementos y decrementos, que son ‘++‘ y ‘--‘. Esto, además de facilitar la vida a los programadores evitándoles escribir a=a+1, es también de utilidad para las optimizaciones que hace el compilador, puesto que en la mayoría de arquitecturas existen instrucciones de incremento y decremento que se ejecutan utilizando menos recursos que una suma convencional.

En algunos lenguajes, como en C y Java, se puede utilizar este operador delante y detrás de las variables, pero tiene un comportamiento distinto. Si el operador está delante, se hace primero la resta y se evalúa el resultado; mientras que si está detrás, primero se devuelve el valor, y después se realiza la resta.

Así, si b=10 y hacemos a=--b, a y b terminarán con valor 9, pero a=b-- terminará con a=10 y b=9.

Bien, recordado esto, en mis apuntes de compiladores se menciona como un código algo lioso a primera vista, la siguiente instrucción c=a---b--. A raíz de ello, he decidido pensar en  situaciones similares a ésta, que son:

c = --a---b;
c = --a-b--;
c = a-----b;
c = a---b--;
c = a---b;

Suponiendo que es ilegal --n--, y obviando la última (hay que acordar cómo se comporta) ¿Alguien se anima a hacer la traza? Es facilita, la hice ayer a mano en lugar de seguir estudiando :P.

Aunque todas salvo la última parezcan correctas y sin ambigüedades, curiosamente hay dos de ellas que ni C ni Java aceptan (con los compiladores GCC 2.8.1, Borlandc 3.0 y JDK 1.6). Son la primera y la tercera, y ocurre lo mismo si en lugar de ‘--‘ utilizamos ‘++‘. ¿Por qué? Pues imagino que por el tipo de análisis que hace el compilador.

Tal y como veo que se comporta (he hecho más pruebas aparte de esos 5 casos), cuando el analizador léxico lee el código carácter a carácter, siempre que encuentra dos ‘-’ seguidos, los considera un único token ‘--‘ y así es como los envía al siguiente nivel.

Después, en el analizador sintáctico/semántico debe de existir algún tipo de precedencia asignada al operador ‘--‘ por encima de la resta y el opuesto, de modo que cuando se encuentra con --a, ó a--, hace directamente una reducción y pasa a considerar la expresión como una constante, a la que ya no tiene sentido volver a aplicar otro ‘--‘.

En el caso “especial” c=a---b, a mi juicio el único que es ambiguo y del que debería quejarse el compilador, se opta por aplicar el operador ‘--‘ a la variable a; siendo equivalente a ejecutar c=a-b y después a--.

También acepta correctamente c=-a--; // c = -a (y decrementar después a).

Otras asignaciones que dan error de compilación, y comentado a lo que debería corresponder:

c = ---a; //c = – (decremento de a)

c = --a--b; //c = (decremento de a) menos (-b)

c = a--b; // c = a menos (-b)

c = a----b; // c = a menos (-b) [y después decrementar a]

Por los errores que da el compilador, en el primer caso creo que intentar aplicar el operador ‘--‘ sobre ‘-‘, y en el tercer caso, evalua ‘a--‘, y después encuentra la b sin operadores entre ellos. En el segundo fallan dos cosas: primero aplica correctamente --a, pero al resultado no se le puede aplicar otra vez ‘--‘; el segundo fallo es que ha consumido el token ‘--‘ y se encuentra, de nuevo, con una b solitaria sin operadores entre la a. En el cuarto tenemos otros dos fallos similares al anterior.

¿Ocurrirá así en todos los compiladores de C, o habrán tenido esto en cuenta en algún caso? ¿O es algo definido directamente en el estándar? He echado un vistazo rápido al ANSI C buscando “decrement”, pero no he leído nada destacable.

Posted by Posted by Ender Muab'Dib under Filed under Informática Comments No Comments »

09th jun 2010

Presentaciones

¿Por qué esa manía de llamar a las presentaciones por el nombre del programa con el que se hacen?

Es horrible comprobar cómo Steve Jobs hace keynotes y la mayoría de gente powerpoints. Yo no voy diciendo que hago beamers. A todo esto se les ha llamado presentaciones de toda la vida. ¿Por qué influye la herramienta para darles el nombre?

Me llama la atención porque con el resto de conceptos/programas no coexisten varios nombres populares al mismo tiempo, sino que se mantiene el que comenzó o se hizo más famoso (como ocurre con cualquier producto comercial: kleenex, nocilla, colacao, walkman…). Así, los documentos de texto son words, las hojas de cálculo son excel,  e Internet fue el explorer aunque ahora ya es el google.

Y el más flagrante: el ordenador es el windows.

(Reflexión/pataleta/lloriqueo pensado leyendo Por qué no uso Prezi).

Posted by Posted by Ender Muab'Dib under Filed under Informática Comments No Comments »

05th jun 2010

Mostrar Buzz en tu blog

Lo mejor de utilizar WordPress es que hay una comunidad muy amplia de usuarios, de modo que tarde o temprano siempre terminan apareciendo plugins para hacer todo tipo de cosas. Uno en el que llevaba pensando hace tiempo era la integración del blog con Buzz.

Después del estrepitoso fracaso de Google Wave, Buzz es la última apuesta de Google por las redes sociales. Es más bien una especie de Twitter, pero sin la absurda limitación de 140 caracteres que impone este servicio.

No sé si está teniendo demasiado éxito, pero me gusta porque me sirve para compartir y publicar enlaces de artículos interesantes que leo y que no dan de sí para una entrada en este blog. Una foto suelta, una viñeta, o una noticia con una simple frase comentándola u opinando. Nada más.

El caso es que para escribir una entrada aquí suelo dedicar un tiempo del que con el final del curso no dispongo, pero para añadir un Buzz no hace falta más de cinco minutos, así que para darle algo de vida a este blog estos días pensé que sería buena idea que se visualizasen aquí mis “buzzeos“.

Para ello, buscando Google Buzz en el repositorio de plugins de WordPress aparecen varios resultados. Instalé tres distintos, y tras probarlos, el que más me convenció fue Google Buzz ER. Me decanté por éste porque no sólo se veía mejor que los otros plug-in’s sino que puedes insertarlo donde quieras simplemente llamando a < ?php GoogleBuzzEr(); ?>. El resto sólo podías agregarlos mediante widgets.

El principal inconveniente de Gooble Buzz ER (y del resto que probé) es que no muestra correctamente: fotos, reshares, actualizaciones del blog, ni los enlaces agregados a la entrada mediante el botón que ofrece Buzz. De esos, los tres primeros apenas me importaban, pero el del enlace sí, porque es como suelo compartir los links con Buzz.

Así que entre ayer y hoy he estado cacharreando con el código y al final he conseguido que se muestren estos links. Si a alguien le interesa, hay que añadir las siguientes líneas.

Primero buscamos function gb_getData(), donde encontraremos un bucle foreach($xml->entry as $data), y allí dentro, por la línea 110, estará $mediaAttr = $media->content->attributes();. Después de esta asignación tenemos que escribir:

$tmp['mediaurl'] = $mediaAttr['url'];
$tmp['mediaAttr'] = $mediaAttr;

Con eso ya hemos obtenido los datos del xml de nuestro perfil de buzz. Ahora vamos a la función que escribe esos datos function gb_printData($data). Allí tenemos cada Buzz representado de la siguiente forma:

<div class='gber_post'>
{$v['content']}
{$v['imgSrcCont']}
/** AQUÍ **/
<span class='gber_time'>{$this->gb_showTime(strtotime($v['updated']))}, </span>
<span class='gber_comment'><a href='{$v['href']}'>comment</a></span>
</div>";

La línea de /** AQUÍ **/ la he incluido yo y es dónde habría que añadir:

<a href='{$v['mediaurl']}'>{$v['mediatitle']}_link</a>

De esta forma se mostrarán correctamente los links incluidos en el Buzz mediante el botón correspondiente. Del resto de problemas sólo he intentado solucionar los reshares y las acualizaciones de sitios agregados como el blog, pero no he sido capaz de encontrar en el xml cómo demonios están enlazados estos datos.

Google Buzz ER está publicado por Ivan Lazarevic bajo licencia GNU, de modo que pongo a disposición de quien quiera la versión actual (1.4) con las modificaciones que he detallado anteriormente. Descargar Google Buzz ER modificado.

Posted by Posted by Ender Muab'Dib under Filed under Informática, Introspección, wordpress Comments No Comments »