viernes, agosto 31, 2007

Blog de la asignatura

Ideas para un blog de la asignatura:
  • trabajar directamente sobre el blog en todo momento (buen ejemplo para practicar la gestión online/offline via gears), tanto en la clase como antes y/o después
  • hacer público y permitir comentarios a todo el mundo? o sólo a los alumnos?
  • alojar en servidor propio o en el de blogspot?
  • post fijos. Algunos post tienen información de validez continuada y se enlazarán desde la página inicial:
    • programa de la asignatura y bibliografía
    • horarios de tutoría
    • fechas de exámenes
    • libros y apuntes en formato electrónico
  • crear varias secciones fijas (tags?) para que se puedan identificar claramente y listar en conjunto con un sólo click:
    • clase. resumen de lo realizado en una sesión
    • lab. resumen de lo
    • avisos. cambios de clase, horarios,...
    • recursos adicionales.
    • ejercicios propuestos. planteamiento de ejercicios para que voluntariamente los resuelvan los alumnos y entreguen la solución a través de los comentarios?

instalación freepascal y lazarus en ubuntu

  • fpc:
    • bajar e instalar fpc_2.1.4-1_i386.deb de http://www.freepascal.org/download
    • desde terminal, tecleando fp se lanza el ide. Puede crearse un launcher para ejecutarlo desde un icono
    • intalación de la documentación. El paquete fpc-2.1.4-doc-pdf.tar.gz tiene documentación en pdf. El paquete fpc-2.1.4-doc-html.tar.gz tiene la documentación en html que puede instalarse para acceder a ella desde el ide. Para ello:
      • bajar y descomprimir
      • coipiarla en la ubicación adecuada: sudo cp -r fpdocs-2.0.4 /usr/share/doc
      • en help-files-elegir fpdoc.html, (que se encuentra en la ubicación en que lo hemos copiado en el paso anterior)
  • lazarus:
    • bajarse los paquetes lazarus_0.9.22-1_i386.deb y fpc-src_2.0.4-1_i386.deb e instalarlos directamente
    • lazarus se ubica en applications-programming-lazarus

Chuleta linux

Ver aquí una selección de trucos y consejos para novatos en linux

Instalar, y mantener programas con Debian (Ubuntu)

  • Instalar un programa apt−get install mysql
  • Buscar si existe el programa apt−cache search mysql
  • Mostrar informacion del prog apt−cache show mysql
  • Actualizar lista de programas apt−get update
Parar y ejecutar programas
  • Borrar el directorio y todo su contenido rm −R midirectorio
  • Copiar todo el directorio con su contenido en el directorio actual cp −R /home/gigi/midirectorio/ ./
Permisos
  • Crear un grupo addgroup internet
  • Crear un usuario gabriel y añadirlo al grupo internet useradd −G internet gabriel passwd gabriel
  • Borrar un usuario deluser gabriel
  • Dar permisos de lectura, escritura y ejecucion a todos al fichero backup_sh chmod 777 backup_sh
  • Cambiar los permisos al directorio completo midirectorio chmod −R 775 midirectorio/
Gestión de ficheros y directorios
  • Crea un listado con la ubicacion de todos los ficheros que contienen una palabra find midirectorio −type f | xargs fgrep "microchof" /dev/null > resultado.txt
  • Encuentra todos los ficheros que se llamen de una forma determinada find . −name "*.bak" −print find . −name "*Thumbs.db*" −print
  • Encuentra todos los ficheros que se llamen de una forma determinada y los borra find . −name "*.bak" −print −exec rm {} \; find . −name "*Thumbs.db*" −print −exec rm {} \;
  • Sustituir un texto por otro en un fichero tr texto_origen texto_final <>
  • Buscar un fichero locate nombre_fichero
  • busca y muestra los nombres de todos los archivos en el árbol de directorios /usr/src hasta los situados tres directorios debajo de /usr/src , que terminen con ".rpm" y cuyos tamaños sean mayores a 100 kbytes. find /usr/src -maxdepth 3 -name '*.rpm' -size +100k
  • busca todas las líneas que contengan la cadena de texto "Mariner" en el archivo rime10.txt, y les agrega el número de línea. Si hubiésemos usado la opción -i la lista sería más larga. (encontraría, por ejemplo, "MARINER" y "mariner", e incluso "mariners". Si quisiéramos encontrar una palabra exacta, usaríamos la opción -w: grep -n -e Mariner docs/rime10.txt
  • busca todos los archivos que contengan la cadena main y terminen en .c: grep -l 'main' *.c
  • busca recursivamente (bajando por los subdirectorios) desde /home, la cadena hola grep -r 'hola' /home
Otros
  • Buscar los procesos de MySql ps −ef|grep mysql
  • Ver los procesos: ps ax
  • Matar un proceso kill -9 numero_proceso
  • Pequeño programa para redimensionar todas las imagenes JPG
    • #!/bin/bash
    • for i in *.jpg; do
    • convert −resize 100 $i small_100_$i
    • convert −resize 800 $i small_800_$i
    • done

miércoles, agosto 29, 2007

API de YouTube

YouTube migrated its API from REST/XML-RPC to Google Data so you can use the same package for accessing different Google services. The new API
provides read-only access to user profiles, videos uploaded or
bookmarked by a user, subscriptions, video comments, related videos,
playlists, search results. And because the default output is Atom
feeds, you can use the API to subscribe to a lot interesting data. Here
are some examples of feeds that help you track a user's activity:

http://gdata.youtube.com/feeds/users/username/uploads - videos uploaded by username

http://gdata.youtube.com/feeds/users/username/favorites - videos bookmarked by username

http://gdata.youtube.com/feeds/users/username/playlists - playlists created by username

http://gdata.youtube.com/feeds/users/username/subscriptions - username's subscriptions

Some useful parameters:

?max-results=50: the maximum number of items from a feed (by default, a feed includes only 20 items)

?alt=rss
or ?alt=json: change the output format to RSS feeds or to JavaScript
code (JSON) that can be easily used from web applications.

These feeds can also be used in applications like Miro to export your videos from YouTube.

GWT (Google Web Toolkit) para programar Google Gears

GWT permite generar JavaScript a partir de código Java y es una buena forma de atacar el API de Google Gears.

We're very pleased to tell you that the Google Web Toolkit (GWT) is no longer in beta as of today's release of GWT 1.4.
These days, whether you're building mashups, gadgets,
or full-blown applications, it's a no-brainer: the browser is the
delivery platform of choice. However, users expect more from the
up-and-coming generation of web applications than the simple
click-and-wait of yesterweb. And if you're a web developer, you know
that this requires AJAX, the cluster of technologies including JavaScript and dynamic HTML that can make browsers do backflips.
But the stark reality of AJAX applications is that, although they can
deliver sexy features and great usability, they are unusually hard to
engineer.
We've learned a lot from our experiences building web applications, and
we're happy to share the tools we've created. Google Web Toolkit is an
open source project that helps Java developers harness the richness of
AJAX in a cross-platform, web-friendly environment. The magic trick is
that GWT cross-compiles Java source code into standalone JavaScript
that you can include in any web page.

Naturally, GWT is also a great way to easily take advantage of the
latest-and-greatest Google APIs and browser enhancements, such as Google Gears.


Powered by ScribeFire.

lunes, agosto 27, 2007

Propuesta cambios en asignatura "Fundamentos de informática": Ubuntu, FreePascal y Lazarus

¿Por qué considero necesario introducir cambios en la asignatura?
  • Porque los alumnos utilizan ordenadores desde hace años y parte de lo que necesitan aprender sobre informática en un primer curso difiere de lo que necesitaban aprender hace 10 años (MS-DOS, gestión de archivos,...)
  • Porque cada vez es más heterogéneo el alumnado. Hoy en día "todos" tienen ordenador en casa, pero no todos tienen windows. La cantidad de alumnos con ordenadores mac y linux crece y va a crecer mucho más.
  • Para paliar en parte la percepción que tienen muchos alumnos de que
    la utilidad de la asignatura termina cuando la aprueban y que jamás
    vuelvan a utilizar el compilador para programar nada, ni por necesidad
    ni por voluntad propia, porque nunca se les ocurrirá usar uno de 'esos
    feos programas sin ventanas que aprendimos a hacer en primero"

¿Qué cambios propongo?
  • Programar en el laboratorio usando linux (Ubuntu) y enseñar en una sesión sus fundamentos para gestión de aplicaciones y archivos
  • Pasarse a FreePascal como entorno de programación
  • Usar Lazarus en la última práctica para generar una aplicación visual, con el interfaz de ventanas de las "verdaderas" aplicaciones que ellos utilizan
  • Mantener y extender el uso de la web. El alojar los programas en un servidor y gestionar grupos, alumnos y apuntes con eKASI es algo que hacemos todos los profesores de la asignatura hoy en día, pero se pueden hacer más cosas...
¿Por qué propongo estos 4 cambios?
  • Ubuntu (distribución de linux ya instalada en los centros de cálculo).
    • Porque ya no hace falta explicar los fundamentos de windows
    • Porque ya no tiene sentido explicar los fundamentos de DOS
    • Porque sí hace falta y además tiene sentido explicar los fundamentos de linux
    • Porque es gratis y de libre distribución
    • Porque cada vez en más ocasiones se van a encontrar con linux en otras asignaturas y empresas
  • FreePascal (sustituto de turbopascal)
    • Porque es gratis y de libre distribución
    • Porque tiene un entorno 'prácticamente idéntico' al de turbopascal
    • Porque puede instalarse en windows, linux y mac.
  • Lazarus (sustituto de Delphi pero de libre distribución)
    • Porque es gratis y de libre distribución
    • Porque sólo supone añadir elementos gráficos al núcleo de programación que han podido aprender gracias a freepascal
    • Porque pueden generar una aplicación gráfica con ventanas, formularios, botones, imágenes,... que se parece a las que realmente usan. Pueden percibirlo como un entorno útil para hacer aplicaciones a lo largo de su carrera académica y/o profesional
    • Porque las aplicaciones generadas pueden compilarse para windows, linux y mac.
  • Extensión uso web. Porque casi todos los alumnos usan internet a diario y todos pueden hacerlo. Muchas gestiones y labores de organización y comunicación que hacíamos antes en papel son más eficaces vía web. El acceso a esa información vía web, es además mucho más directa, natural y atractiva para nuestros alumnos.
    • Conjunto mínimo de servicios que todos los profesores gestionemos vía web y de una forma homogénea. Ejemplos.
      • lo que ya hacemos en eKASI (grupos de laboratorio, programas de laboratorio, notas, apuntes para alumnos, transparencias,...)
      • uso de Firefox como navegador. Porque es gratis y de libre distribución. Porque tiene funcionalidades y capacidades de extensión y seguridad que no tiene iexplorer. Porque viene instalado con Ubuntu. Porque iexplorer ya lo conocen.
    • Otras iniciativas (que pueden ser asumidas de forma individual por los profesores interesados) a experimentar para luego compartir con todos los resultados y estudiar su generalización. Ejemplos:
      • blog de la clase. Resumen de lo explicado cada día, enlaces a otros recursos, posibilidad de recoger los comentarios de los alumnos, correcciones o puntualizaciones a cuestiones que han quedado 'abiertas' en clase, propuestas de ejercicios,...
      • wikis
      • repositorio de programas, errores comunes,...
      • ...

viernes, agosto 24, 2007

Sobre físicos teóricos y experimentales

En "Historias de la ciencia". Brillante descripción de las diferencias entre físicos 'teóricos' y 'experimentales'.
http://www.historiasdelaciencia.com/?p=289