-->
Jan 05

En la vida y al mismo tiempo en los ordenadores las cosas son concurrentes. Una palabra muy poco corriente en el lenguaje no informático, que viene a ser multihabilidad, lo que los ingleses denominan multitask y nosotros multitarea. Consiste en eso en la envidiada por mí capacidad de hacer varias cosas a la vez. Aquí explicaré su uso y evolución en la informática con palabras profanas, para que espero que todo el mundo pueda seguirme.

Resulta que no se me da muy bien hacer dos cosas, menos tres, a la vez y a los ordenadores tampoco. Realmente un ordenador habitual, de esos con un solo procesador (ya no están muy de moda vale. Pero hay que empezar por el principio para entender las cosas), no es capaz de hacer dos cosas a la vez. Nos engaña, ejecutando pequeñas porciones de cada tarea tan deprisa que parece que las hace a la vez, pero no.

concurrencia.png

Este pequeño detalle hace que un sistema operativo, ya sea Linux o Windows, cambie de tarea cuando le da la gana, lo que recibe el nombre de cambio de contexto. Estos cambios de contexto están muy bien planeados y pensados (a lo mejor más en Linux ;) ), nada queda al azar en esto de la informática. Resulta que hay complejas técnicas para decidir en qué orden ir ejecutando los procesos o aplicaciones.

Seguir leyendo »

escrito por Miguel

Dec 26

Alan Perlis once said: “A language that doesn’t affect the way you think about programming, is not worth knowing”.

Leída en este interesante artículo: “Teach Yourself Programming in Ten Years”

escrito por Miguel

Dec 11

Puede que algunos leyerais ya mi anterior artículo “Aprendiendo a programar Python en Linux” e incluso que os sirviera de algo. Pues bien, estos días he desempolvado el Python para programar el algoritmo del Simplex para Investigación Operativa.
Para ello tenía que recordar el poco Python que sé y después encontrar un IDE más completo que PyDev. Digamos que mi relación con Eclipse ha terminado como el rosario de la Aurora.

EL PYTHON PERDIDO

Asi fue como encontré la página “Python 2.5 Quick Reference” de Richard Gruet que me vino genial, ya que recopila para la última versión de Python las funciones, técnicas, sintaxis y demás historias que puedas necesitar para empezar con Python. Así pues el primer paso estaba salvado y con éxito. Además si no sabes programar Python, pero si algún otro lenguaje puedes arriesgarte y no leerte un libro entero.

La segunda misión era algo más complicada. Sabía perfectamente que hay infinidad de IDEs para Python. De todos estos probé nuevos: eric, Komodo IDE, PIDA, SPE y WingIde. Me llevaría bastante tiempo analizarlos a fondo y ni mucho menos los probé como para hacer un review de cada uno.

COMIENZA LA BÚSQUEDA

Seguir leyendo »

escrito por Miguel

Oct 27

El otro día estaba leyendo UbuntuLife (blog que visito casi a diario), cuando me topé con este artículo sobre expect, que voy a complementar con otra herramienta, autoexpect.

EXPECT

Resulta que ya conocía esta herramienta de hace unos años. Expect permite crear scripts que responden a la shell, a la consola de comandos, siendo casi interactivos. Con él podemos hacer un script que se conecte a un ftp y espere a que el ftp le pida datos de usuario y contraseña. El script estará programado para responder cuando se le pregunte, pero no antes.

Antes a la hora de hacer un script para esto, la gente solía recurrir a hacks como:

ftp dirección
sleep 5
echo "mi usuario"
sleep 5
echo "mi password"
...

Esta solución puede fallar (dependiendo de si el ftp está saturado, tu ancho de banda…), además no es eficiente, ni elegante.

AUTOEXPECT

Ahora bien, en su día descubrí que existía una herramienta llamada autoexpect. Esta herramienta es un shell script (no un binario) que permite generar scripts de expect sin tener ni idea de cómo se programan, ¡genial!

Mucha gente desconoce….

Seguir leyendo »

escrito por Miguel

Oct 13

Como muchos habréis notado las actualizaciones brillan por su ausencia. No es que me haya cansado del blog, ni mucho menos. Se debe a que entre el trabajo, la universidad y la poca vida social que intento tener, no tengo casi tiempo para publicar nada. Así que me estoy convirtiendo en un blogger de fin de semana, eso sí, espero que el contenido sea de la misma calidad. Me gusta pensar que me estoy convirtiendo en uno de esos blogs que sacan poco a la luz pero muy bueno.

El artículo de hoy va sobre vim (mi editor de textos favorito, del que ya he hablado alguna vez). En próximas semanas publicaré algún que otro artículo con trucos y consejos sobre cómo usarlo, incluso puede que me anime a hacer un videotutorial (ya que creo que para el que no lo ha usado nunca, puede resultar lioso y llevarle a pensar que no vale la pena manejarlo, lo cual es un gran error).

Alguna vez habréis tenido en vuestras manos dos textos que en un principio eran iguales, pero a uno de los dos se le han hecho pequeños cambios y queréis saber cuáles son. vim tiene un modo bastante desconocido en el cual nos permite ver estas diferencias fácilmente. Este truco me lo enseñó JJ, un colega del trabajo y me dejó muy sorprendido.

Abrimos una terminal en Aplicaciones >> Accesorios >> Terminal (Nunca digo cómo se abren y luego me tachan de extremista). Si no sabéis usarla, deberíais (ya sé que alguno pensará, a mi me gusta MAC OS X porque no tengo que usar terminal. Sí pero tampoco puedes hacer lo que yo sin ella). En Internet hay muchas páginas donde podréis encontrar los listados de comandos más usados y para qué sirven.

Tengo dos ficheros de texto que se llaman uno y dos, que contienen un texto que he escrito. El texto dos ha sido modificado sutílmente. Me dirijo al directorio donde están los textos y hago:

vim -d uno dos

es equivalente

vimdiff uno dos

siendo uno -> El primer fichero de texto
siendo dos -> El segundo fichero de texto

La opción -d viene de diff (Sacar las diferencias). Es parecido a usar el comando diff, pero más visual. Ahora veremos ambos textos en la shell, en dos ventanas verticales marcando las diferencias. Como a mí me gusta más verlo en horizontal hago.

vim uno
dentro de vim doy tecla Esc y luego :splitdiff dos

El resultado es el siguiente:

Este modo puede servir para un montón de cosas y es como todo en Vim, muy configurable. Podéis leer más en la documentación online de Vim (el manual más completo que existe a mi juicio), en la sección diff.

¡Hasta el próximo capítulo!

Technorati Tags:

menefante.gif meneame ico_delicious.gif del.icio

escrito por Miguel