El software libre y el aprendizaje

En la actualidad una gran cantidad de procesos asociados al aprendizaje están directamente relacionados con las tecnologías.

Es normal en la actualidad que:

  • Para todas y cada una de las áreas del conocimiento exista software especializado que permita facilitar la pericia en dicha área.
  • Demos uso a mas de un computador diario (Equipo de escritorio en el trabajo, universidad, hogar, laptop, celulares inteligentes)
  • La realización de trabajos, proyectos o investigaciones requieran la utilización de distintas herramientas tecnológicas para su elaboración y presentación.

Es recomendable use el software libre existente para su profesión ó área de especialización, así como en todos los equipos de computación con los que interactue y a los cuales tenga acceso. Esto le traerá múltiples beneficios entre los cuales esta incluido uno muy importante,la capacidad de: “Aprender a aprender”

Entre otras cualidades, el software libre es idóneo para el aprendizaje porque permite el desarrollo de las siguientes facultades:

Creatividad: La cultura de crear por encima de consumir presente en el software libre termina siendo interiorizada por quien lo usa. El software libre minimiza las limitaciones que el proceso creativo pudiera encontrar en el uso de herramientas de software, usted no tendrá que pagar por software para soltar las riendas de su creatividad, no encontrara molestos virus, tampoco su software se desactivara o le estará recordando que usa una copia ilegal del mismo. Sigue leyendo

Entendiendo Yii

Yii – Yes, it is

Un framework es un conjunto de código, librerías y componentes de software probados, optimizados para facilitar y agilizar el desarrollo de aplicaciones, basado en las mejores prácticas de desarrollo, que permitirán trabajar de forma uniforme, organizada y con la mayor cálidad posible. Normalmente cuentan con documentación, una comunidad organizada que constantemente esta trabajando y luchando por su constante desarrollo y mantenimiento. Los frameworks tienen la intención de enfocar el trabajo de programación a las áreas que realmente agregaran un valor al negocio y que supondrán la esencia de la aplicación que se construirá, por ello intenta restarle trabajo a los programadores en áreas mas triviales a estas alturas como la validación de campos, operaciones de consultar, insertar, modificar y eliminar por decir algunos ejemplos.

entendiendo-yii

Yii es un framework de desarrollo de alto rendimiento, muy flexible y versátil, escrito en PHP5 para el desarrollo rápido de aplicaciones web. Yii es software libre liberado bajo una licencia BSD, y tiene la concepción de hacer las cosas de manera sencilla, elegante y rápidas, ayudando con esto a construir aplicaciones eficientes, que fácilmente pueden ser mantenidas y escaladas.

Yii le presenta al programador un código fuente limpio, sencillo y entendible que roza con lo intuitivo de como que hace cada trozo de código y que significa cada elemento.

Yii es una opción idónea para desarrollos de sistemas pequeños hasta para desarrollos de grandes aplicaciones que necesiten garantizar la disponibilidad de la misma.

Yii es un acrónimo de Yes, it is! proveniente de la respuesta que el proyecto Yii le da a los que por primera vez se plantean si adoptar su uso:

Is it fast? … Is it secure? … Is it professional? … Is it right for my next project? … Yes, it is!

¿Es rápido? … ¿Es seguro? … ¿Es profesional? … ¿Es lo que necesito para mi próximo proyecto? … Sí, lo es!

Algunos otros frameworks existentes:

– Symfony (PHP) – symfony.com
– CakePHP (PHP) – cakephp.org
– CodeIgniter (PHP) – codeigniter.com
– Ruby on Rails (Ruby) – rubyonrails.org
– Catalyst (Perl) – catalystframework.org
– Django (Python) – djangoproject.com

Por que escoger Yii

Yii es un framework genérico de programación Web que puede ser utilizado para todo tipo de aplicaciones Web. Gracias a que es liviano de correr y está equipado con soluciones de cacheo sofisticadas, es adecuado desde para desarrollar aplicaciones de gran tráfico como portales, foros, CMS, e-commerce, etc… Hasta para desarrollar aplicaciones de mayor complejidad que necesiten  interconexión y interoperabilidad de sistemas, bases de datos, webservices,  etc…

– Rápido

Yii sólo carga las características que usted necesita. Tiene excelente y poderoso soporte de caché. Esta explícitamente diseñado para trabajar eficientemente con AJAX.

Yii es mucho más rápido, ya que utiliza la técnica de carga diferida ampliamente, es decir se carga, interpreta o procesa contra demanda únicamente lo que se solicita,  Por ejemplo, no se incluye un archivo de clase hasta que la clase se utiliza por primera vez, y no se crea un objeto hasta que el objeto se accede por primera vez. Otros frameworks sufren mucho el impacto del rendimiento, ya que permiten una funcionalidad (por ejemplo, conexión DB, sesión de usuario, etc…) independientemente de que se usen o no durante una petición.

– Seguro

La seguridad es un estándar en Yii. Éste incluye la validación de entradas, filtrado de salidas, prevención de inyección SQL y Cross-site scripting.

Yii está equipado con medidas de seguridad para ayudar a proteger sus aplicaciones web de ataques como inyección SQL, cross-site scripting (XSS), cross-site request forgery (CSRF), y de  manipulación de cookies (Cookie Tampering).

– Profesional

Yii le ayuda a desarrollar un código limpio y reutilizable. Sigue el patrón MVC, lo que garantiza una clara separación de la lógica del negocio y la presentación. Fomenta la sinergia en equipos de desarrollo y promueve activamente métodos ágiles de trabajo que son ideales para combinar con metodologías como SCRUM o XP

Sigue leyendo

La Libertad no admite grises – El Software Libre y el Estado

En el año 2006, se dio a lugar un debate entre el software privativo y el software libre en la asamblea nacional, como parte de la discusión necesaria para el entonces proyecto de “Ley  de Tecnologías de Información” conocida en ese entonces como la “Ley de InfoGobierno”.

Una excelente reseña del evento la realizo Luigino Bracci, en su blog a través de tres (3) posts:

  1. Realizado primero foro de Software Libre vs. Software Privativo en la Asamblea Nacional venezolana
  2. Segundo artículo sobre el Foro de Software Libre vs. Software Privativo en el Parlamento venezolano
  3. Tercer artículo sobre el foro en la AN: La defensa de Hernández-Novich al Software Libre

Aún hay muchas personas que se preguntan por que Venezuela y otros países del mundo están migrando sus plataformas tecnológicas al software libre. Tal vez una de las mejores explicaciones de la necesidad de los gobiernos de usar software libre la encuentran en la ponencia realizada por Ernesto Hernandez-Novich titulada La Libertad no admite grises que se encuentra a continuación:

..:: Descargar presentación usada en el vídeo ::..

Nota Curiosa

  • La gran mayoría de los aplausos provenían de los integrantes de la comunidad del Software Libre que estábamos presentes, pero inclusive la bancada de asistentes que llevo Microsoft al foro terminaron aplaudiendo en muchas oportunidades esta ponencia.

Como nota curiosa sobre esta ponencia Ernesto Hernandez-Novich, su autor me comento lo siguiente:

  • Nota que las láminas las hice “en el momento” y con una herramienta muy diferente a la que uso actualmente, así que son muy simples. Ese detalle poca gente lo vió.
  • Yo pedí intervenir de último, porque mientras los demás hacían sus presentaciones, yo preparaba mis láminas incluyendo todos los argumentos en favor del software libre, combinando las refutaciones a aquellos argumentos falaces del resto de los ponentes.

Explicación somera de Tweets de Tecnología

Es muy común para los que usamos twitter pensar:

¿Los tweets enviados simplemente pasan a la historia?

¿Quién los leerá pasado un tiempo? y ¿Como harán para llegar a ellos?

¿Alguien podrá encontrar esos 140 caracteres transcendentales que enviamos en algún momento?

A la fecha de este artículo mi cuenta @leninmhs tiene solo 650 tweets enviados (140*650 = cerca de 91.000 caracteres aproximadamente), siquiera yo puedo encontrar alguno que me interese como referencia de un tema técnico,  para dárselos a un conocido, o para volverlo a transitar. La propuesta que traigo es sencilla, seleccioné los tweets orientados a tecnologías libres (privativas solo para criticarlas) sobre los que he escrito, de esta forma pueden encontrarlos a partir de un punto de referencia o de partida, buscando fácilmente desde San Google.

01-08-12 Cuando tengan que limpiar #html usen #Perl así: s/<(?:[^>'”]*|([‘”]).*?\1)*> faltaría limpiar &nbsp; cc @NelsonFx @iamemhn
Una expresión regular que quita o limpia etiquetas HTML de la cadena o bloque de texto que nos interesa, adicional se elimino el muy usado aun &nbsp; mediante otra expresión de sustitución. Muy útil y importante tener a la mano el siguiente código:
#!/usr/bin/perl -w

my $html = '
<html dir="ltr" lang="es">
<head><meta charset="UTF-8" /></head>
<body style="font-family: small-caps;">
<br/><b> HTML A TEXTO  / HTML TO TEXT   </b><br/>
<br/><b> limpiar cadena de texto de html  / clean html text string  </b><br/>
<br/><div style="border-radius:5px;box-shadow:2px #DFDFDF;"><b> quitar etiquetas html / remove html tags </b></div><br/>
<img src="img/perl-regex-html.jpg" /><br/>
<br/><div><b><font color="red">&nbsp;Lenin Hernandez&nbsp;</font></b></div>
<etiquetafalsa><b>Twitter: @leninmhs </b></etiquetafalsa><br/>
<b>Lenguaje de Programación: &nbsp;&nbsp;</b>Perl<br/>
<b>Sistema Operativo:&nbsp;&nbsp;&nbsp;</b> todos en los que se interprete Perl.
</body>
</html>';
$html=~ s/<(?:[^>'"]*|(['"]).*?\1)*>//gs; #regex que limpia el html
$html=~ s/&nbsp;//g; #regex que limpia el &nbsp;
print $html;
Listado de Entornos de Desarrollo (IDE) para programar en Python, en lo particular he usado y me gusta Komodo Edit. Muy ligero y practico comparado con NetBeans ó Eclipse (escritos ambos en Java de ahí el consumo exagerado de recursos…)
Conocemos manejadores de contenidos muchos en PHP, en Perl hay, en Python también hay, pero en Python y haciendo uso del Framework de Desarrollo por excelencia en Python Django es como mucho pedir para los que lo usan, pero si los hay.
16-06-12 @diadebian mi opción es la “D” me toca hoy terminar unos pdfs usando #Reportlab de #Python
La librería ReportLab es excelente para generar PDF en el lenguaje Python. Si usan alguna distro basada en Debian pueden comenzar a usarla con:
#aptitude install python-reportlab
Después de tenerla instalada, a programar en python y leer la documentación de reportlab. El pdf que programe hacia mucho uso de tablas, se inserto imagen y algún otro detalle. Quedo así:
reportlab-python-table-sqlite

reportlab-python-table-sqlite

Alta Disponibilidad en PostgreSQL

En el marco de la I Jornada de Computación Aplicada Utilizando Herramientas de Software Libre se realizo ponencia de Alta Disponibilidad en PostgreSQL a estudiantes de la carrera de ingeniería de la Universidad Nacional Experimental Romulo Gallegos (UNERG) en San Juan de los Morros, Estado Guarico.

Descargar presentación: alta-disponibilidad-postgres

Sigue leyendo

Tora con PostgreSQL y MySQL en Debian Squeeze

Tora es una excelente herramienta gráfica para interactuar con nuestras bases de datos, tirar consultas sql, analizar data y demás que nos da ventajas a nosotros los administradores y programadores que algunas otras herramientas gráficas no nos dan o no soportan. Muy buena para las personas que comienzan a trabajar con bases de datos en sistemas operativos libres como Debian. Para trabajar con Tora y lograr el soporte de PostgreSQL y hasta el de MySQL para los que aun la siguen usando en Debian y sus derivados es muy sencillo, Tora usa librerías QT por lo cual hay que instalar el Driver para cada caso para que logre hablar con PostgreSQL o MySQL,  actualmente Tora usa QT4 por ende hay que instalar libqt4-sql-psqllibqt4-sql-mysql según requieran, de lo contrario les dará este error: “not available connection provider” apenas abran el Tora recién instalado.

Sigue leyendo