Picapy:Gestiona tus álbumes de Picasa Web desde el escritorio

Buen día queridos lectores, hace poco les comentaba acerca de un par de aplicaciones que uso con bastante frecuencia translate-me y define-me, en esta ocasión quiero compartir con ustedes un programa que nos permite gestionar nuestras imágenes y álbumes de Picasa, se trata de picapy.

Picapy es una aplicación desarrollada por Lorenzo Carbonell, para algunos más conocido como atareao, también creador de translate-me y define-me, que como podemos ver está bastante comprometido con el software de código abierto “posteando” y desarrollando.

Picapy es un gestor de imágenes de Picasa Web, implementado en python y como cuenta Lorenzo nace como consecuencia de la inexistencia de una aplicación desarrollada por google para Picasa Web (Para GNU/Linux se encuentra en beta hace un buen tiempo pero no es lo suficientemente sólido para muchos). De esta manera, picapy nos permite gestionar nuestras imágenes y álbumes sin necesidad de abrir un navegador web y conectarnos en Picasa Web.

Las funciones principales de Picapy son:

  • Ver el contenido de los álbumes de Picasa.
  • Subir Fotos.
  • Crear y gestionar álbumes.
  • Ver la información básica de un álbum.
  • Ver información de las imágenes, copiar y pegar la imágen princial o las miniaturas.

Para instalar Picapy en Ubuntu abrimos una terminal (Menú > Accesorios > Terminal) y escribimos lo siguiente:

Sigue leyendo

Anuncios

¿Qué son los lenguajes dinámicos?

¡Hola, Lectores!

Ustedes pudieron apreciar que yo uso lenguajes como PHP, Python y Ruby. Éstos tienen características especiales, por lo que se les llama “lenguajes dinámicos”. Pero, ¿cuál es la diferencia con un lenguaje estático?, más bien, ¿qué es lo que hace a estos lenguajes dinámicos?

Cada lenguaje de programación tiene sus propias “terminologías”. Vale decir, dependiendo de la manera en que cada lenguaje aborde un problema, crea un idioma para que los desarrolladores se comuniquen. Hay muchos ejemplos, pero no quiero confundirles, así es que les daré sólo uno: los lenguajes interpretados no tienen “tiempo de compilación”, porque el lenguaje no se compila. La idea es que un lenguaje de programación dinámico agregue todas estas características en tiempo de “ejecución”, no en tiempo de “compilación” o de “carga”.

La definición de un lenguaje dinámico es: todo aquel lenguaje que posea características que permitan alterar el curso del lenguaje de manera legítima, a través de la inyección de código o de la ejecución de funcionalidades especiales. Describiré, pues, algunas de las maneras de agregar dinamismo a un lenguaje de programación e intentaré explicarlas con pseudocódigo.

Sigue leyendo

Programación para Newbies VII: Ingredientes – Variables y Tipos de Números

Como les decía anteriormente, ahora vamos a dar una sucinta revisión a los “ingredientes” de un programa en Python. Así como en las recetas de cocina son necesarios distintos ingredientes (te desafío a preparar algo con sólo “un” ingrediente). En Python a estos ingredientes, los llamaremos variables.

>>> 2 + 2
4
>>>

¡Sorpresa! El intérprete de Python puede funcionar como una calculadora. Aprovecho de mostrarte los signos que puedes utilizar:

¡Sigue leyendo sobre los ingredientes de Python!

Programación para Newbies VI: Hola mundo

Bueno, luego de una soberana lata, por fin nos vamos a entrar en la programación. Finalmente entre los muchos lenguajes de programación existentes me pareció que el mejor para comenzar es Python.

¿Por qué Python?

  • Lenguaje de alto nivel interpretado
  • Sintaxis sencilla (prácticamente pseudocódigo)
  • Ampliamente disponible
  • Libre
  • Multiplataforma
  • Orientado a objetos

En fin, como ven las bondades son numerosas…

Por fin… manos a la obra!

Programación para Newbies V: Lenguajes, Java y palabras finales

Y continuamos con la tercera y última parte sobre lenguajes de programación.

Java

Duke ThinkingEste lenguaje también de alto nivel desarrollado por James Gosling en Sun Microsystems, apareció paralelamente con Python, a principios de los años 90. Basado en gran parte en la sintaxis de C/C++. Este lenguaje tiene una particularidad que considero interesante. Este debe ser compilado en bytecode (aunque también puede compilarse a código máquina), ¿qué ventaja tiene esto?. Si bien, en teoría, un programa escrito en C podría compilarse (traducirse) con un compilador ya sea de GNU/Linux o Windows, en la práctica vemos que ésto no es así, lamentablemente el código debe ser modificado de manera importante (me gustaría explicarles por qué, pero está fuera de mi conocimiento). La gracia de Java es que el lenguaje es completamente estándar. Bueno, hasta ahora tenemos el mismo problema que con C, lo que pasa es que el bytecode, vendría siendo algo así como una “traducción a medias”, es decir, que no es código máquina, pero está mucho más cerca de serlo. Pero como este es el único lenguaje que el equipo entiende, de alguna forma igual tenemos que arreglarnos de alguna forma para que la traducción/interpretación lo haga. Para logra este fin, el código debe ser interpretado en su ejecución y se utiliza una aplicación especial conocida como Máquina Virtual Java (JVM). Duke PlugDe esta forma, para ejecutar el mismo código de Java, sólo necesito la máquina virtual del sistema operativo correspondiente y voilà. Claramente esto presenta un inconveniente (lo suficientemente grande para que rechace siempre que pueda utilizar Java), el rendimiento, para ejecutar una aplicación necesitamos estar ejecutando la JVM cosa que no consume pocos recursos (aunque diría que con la tecnología actual no debería ser tan importante la diferencia). Por otro lado, presenta una ventaja sumamente importante, la portabilidad, es decir, la posibilidad de desarrollar el programa para distintos sistemas operativos/plataformas.

Sigue leyendo para leer sobre unas últimas palabras sobre los lenguajes…

Programación para Newbies IV: Más sobre los Lenguajes

Seguimos entonces con los lenguajes…

Bajo v/s Alto Nivel

Ahora, lo curioso (o por lo menos interesante) es que realmente el computador no entiende mejor Ensamblador que Fortran o C (bueno, realmente los computadores son conocidos precisamente porque no entienden nada, de ahí que la programación tiene que ser tan precisa), recuerda: sólo código máquina. Para poder traducir los comandos de un lenguaje de medioalto nivel es necesario otro programa especial conocido como compilador. Su trabajo se puede analogar al de traducir un texto de español a inglés.

stock.xchng | arte ram
stock.xchng | arte ram

Tan cierto como en la traducción entre lenguajes humanos, traducir un libro para niños al inglés es muchísimo más fácil y rápido que traducir un paper, dado que éste último tiene vocabulario más técnico y estructuras más complejas. Por lo tanto, es esperable que la traducción de ensamblador a código máquina es más fácil que la de C, y ésta a su vez, que la de FORTRAN a binario.
Como te puedes dar cuenta, vemos que cada uno tiene sus pros y sus contras. En la esquina oeste de shorts azules, tenemos al de alto nivel que es más fácil de aprender, de modificar y de entender, pero también requiere ser compilado, su traducción a lenguaje máquina puede no ser la más adecuado y su control sobre el hardware de la máquina no es demasiado. Por otra parte, en la esquina este de calzoncillos verdes, tenemos al campeón de peso pesado, lenguaje de bajo nivel, que por un lado permite un control importante sobre la máquina y si bien, requiere ser traducido (en general) por un ensamblador, es más rápido, en contraparte es difícil de aprender, utilizar y lo más importante difícil de modificar.

Más y más lenguajes… sigue leyendo la cuarta parte!