Gnu/Linux‎ > ‎

Programación

Conexión entre Python y Postgres

publicado a la‎(s)‎ 8 ago. 2017 7:33 por Juan Jose Ramirez Lama   [ actualizado el 21 ago. 2017 8:16 ]

Primero debemos instalar Postgres

Instalación del driver PostgreSQL para conectarse desde Python

Existen varios drivers Python para PostgreSQL, para diferentes plataformas y versiones de Python. El más popular es psycopg, el cual soporta actualmente todas las versiones de Python desde 2.5 hasta 3.4 sobre plataformas Unix y Windows. Pero en mi caso decidí utilizar el driver pg8000, que está desarrollado íntegramente con Python y es liberado con licencia BSD. Además, es el driver utilizado por el framework Web2Py.

Instalar el driver pg8000 desde el gestor de paquetes pip ejecutando:
sudo pip install pg8000
En el sitio oficial existe una buena guía con ejemplos de conexión a PostgreSQL desde Python.

Creación de un script Python para verificar el acceso mediante HTTP

Para lo siguiente, se asume que se utilizo mi manual para configurar el servidor web.

Ahora creamos un script que verifique el acceso a todos los servicios.
sudo nano /usr/lib/cgi-bin/postgres.py

El siguiente script se conecta al motor de bases de datos PostgreSQL utilizando el usuario "pi" para consultar la versión del motor (ejecutando la consulta select version();):
#!/usr/bin/python
# coding=utf-8

# Imprimir los headers HTTP
print("Content-Type: text/html")
print("")

# Imprimir el contenido de la página
print("<h2>Hola mundo</h2>")
print("<p>Prueba de ejecuci&oacute;n de script Python en modo CGI.</p>")

# Mostrar la versi&oacute;n de Postgres
import pg8000
con = pg8000.connect(user="pi", password="123456", host="localhost", database="postgres")
c = con.cursor()
c.execute("select version()")
v = "".join(c.fetchone())
print("<p>La versi&oacute;n de PostgreSQL es: <b>%s</b></p>" % v.encode("utf-8"))
Recuerda cambiar los datos por los tuyos.
Guardar los cambios y ajustar los permisos adecuadamente
sudo chmod +x /usr/lib/cgi-bin/postgres.py
Verificar el funcionamiento desde línea de comandos:
sudo /usr/lib/cgi-bin/./postgres.py 


Fuente: https://www.linuxito.com/gnu-linux/nivel-medio/655-linux-apache-python-postgresql

Apple Swift en GNU/Linux Debian Jessie

publicado a la‎(s)‎ 31 may. 2016 13:22 por Juan Jose Ramirez Lama

Primero aclarar que lo he hecho con la versión estable de Swift la cual se puede descargar en https://swift.org/download/ ya que la versión inestable o beta no se por que no funcionaba, aunque puede que en el momento de que leas esto ya funcione sin problemas.

Primero abrir una terminal como root
# cd /opt
# mkdir -p /opt/swift/build
# cd /opt/swift/build

Ahora descargamos y descomprimimos los paquetes para programar en Swift, el cual no hay que compilar ya que vienen listos para ejecutar (recuerda cambiar el nombre del paquete por el que descargues).
# wget https://swift.org/builds/swift-2.2-release/ubuntu1404/swift-2.2-RELEASE/swift-2.2-RELEASE-ubuntu14.04.tar.gz
# tar zxvf swift-2.2-RELEASE-ubuntu14.04.tar.gz
# mv swift-2.2-RELEASE-ubuntu14.04 /usr /opt/swift/

Ahora verificamos que en /opt/swift/ este el directorio usr
$ ls /opt/swift

Una vez que confirmamos que este dentro, añadiremos el siguiente parámetros, para que cuando escribamos swift en la terminal, se abra el editor (hacer esto como usuario).
$ export PATH=/opt/swift/usr/bin:"${PATH}"

Ahora actualizamos los repositorios e instalamos las dependencias necesarias.
# apt-get update
apt-get install curl gcc sqlite3 git-core libffi-dev python-setuptools  python-dev python-pip

Listo, ahora solo queda ejecutar swift para que se abra el editor y podamos comenzar a ejecutar código o compilar algún archivo .swift.
$ swift
Welcome to Swift version 2.2 (swift-2.2-RELEASE). Type :help for assistance.
  1> 1 + 1  
$R0: Int = 2

Abrir bases de datos Access en Ubuntu

publicado a la‎(s)‎ 13 oct. 2015 13:33 por Juan Jose Ramirez Lama

MDB Viewer es una aplicación realmente interesante, que permite abrir bases de datos Access en Ubuntu y ver las tablas, datos, formularios…. que hay en la base de datos.


Para instalar MDB Viewer en Ubuntu, abrimos el terminal (Aplicaciones/Accesorios/Terminal) y escribimos:


# apt-get install mdbtools-gmb


Una vez realizada la instalación, encontraremos MDB Viewer en el menú Aplicaciones/Oficina.


Para abrir una base de datos Access, tan sólo debemos hacer clic sobre Archivo y después sobre Abrir. En la siguiente imagen se muestran las tablas de una base de datos llamada hospitales.mdb, que contiene tres tablas llamadas “Plantilla”,”Salas” y “Hospitales”.


Si seleccionamos una tabla y hacemos clic sobre el botón “Definition”, podremos ver la estructura de la tabla (campos que forman la tabla, tipo de datos de cada campo, claves primarias y tamaño de cada campo).


Si pulsamos sobre el botón “Data”, veremos los datos que hay en la tabla que tengamos seleccionada en ese momento.


Otra de las posibilidades que tenemos es la de exportar los datos de una tabla en un fichero de texto. Para ello haremos clic sobre el botón “Exportar”.


Con MDB Viewer también podremos ver las consultas, formularios, informes, macros y módulos que tengamos en una base de datos Access.


Si lo que queremos es exportar una base de datos Access a MySQL, Oracle, Sybase o Postgre, tendremos que pulsar el último botón, comenzando por la izquierda, que aparece en la barra de herramientas.


Por otro lado disponemos del paquete mdbtools, un conjunto de programas de línea de comandos que brindan más funcionalidad para gestionar bases de datos Access.


  • mdb-tables: muestra las tablas de la base de datos. La salida puede configurarse para mostrar los nombres de las tablas en una fila o una columna , separar las tablas con un separador y mostrar además las tablas de sistema de la base de datos.

  • mdb-schema: permite exportar el esquema de la base de datos entera o un tabla en particular en formatos adecuados para algunos motores de base de datos: AccessSybaseOracle, y Postgresql. Tiene una opción para sanear los nombres (por ejemplo reemplaza espacios por guiones bajos).

  • mdb-sql: un cliente interactivo con un lenguaje SQL minimal y dos comandos útiles, listar y describir tablas.

  • mdb-export: exporta los datos en formato CSV o como sentencias INSERT de SQL (la exportación de gmdb no tiene ésa opción).


Las mdbtools pueden instalarse escribiendo lo siguiente en el terminal:


# apt-get install mdbtools

Como crear un Script

publicado a la‎(s)‎ 13 oct. 2015 7:47 por Juan Jose Ramirez Lama   [ actualizado el 13 oct. 2015 7:54 ]

Un bash script es un pequeño programa escrito en el lenguaje de nuestra consola bash. Es una herramienta muy potente y util que sirve principalmente para automatizar tareas comunes que hacemos de forma manual.

¿Cómo se hacen los bash script?

Lo primero es indicar el lugar donde se encuentra nuestra bash, por defecto se esta en /bin/bash. Esto lo hacemos del siguiente modo #! /bin/bash .#! -> con ésto le decimos a nuestra consola donde se encuentra un determinado programa, en este caso, nuestra propia shell. Tras ésto empezamos con las sentencias.


Podemos usar estructura de control (if, else, while, until ...) y variables al igual que en la mayoria de los lenguajes de programación. Las variables son fuertemente tipadas (una vez definido su tipo no podra cambiarse) y no hay que especificar su tipo (la shell es la encargada de esa labor).


Las instrucciones que podemos emplear son las mismas que empeariamos en nuestra consola, pongo un ejemplo de un script sencillito que nos actualiza el sistema:

#! /bin/bash
sudo aptitude update & sudo aptitude upgrade & sudo aptitude dist-upgrade


Abrimos nuestro editor de texto preferido (por ejemplo gedit) y copiamos ese script, lo guardamos por ejemplo con el nombre de Actualizar.sh

Para ejecutarlo podemos hacer lo siguiente, desde la consola nos situamos en el directorio donde guardamos el script y tecleando sh Actualizar.sh lo ejecutamos. Es posible que no tengamos permisos de ejecucion para ese script y lo solucionamos tecleando en consola:

$ chmod +x Actualiza.sh


Si integrar nuestro script en el sistema de forma que podamos llamarle desde cualquier lugar y poniendo solo su nombre, lo movemos a la carpeta /bin
Hecho eso, bastara con poner Actualiza.sh desde cualquier lugar para que se ejecute.


Al igual que en la consola podemos usar tuberias, esto es pasarle la salida de un comando a otro. Para ello usamos este simbolo | un ejemplo:

ls -F | grep "/"

Este comando mostrara en pantalla sólo directorios. ls -F muestra todos los archivos añadiendo al final de cada directorio el caracter espaciador (/). grep toma la salida de ls -F y filtra todos los archivos que contengan el carácter /


Podemos mostrar la salida de un programa por otro medio que no sea el estándar (pantalla) por ejemplo a un archivo. Para ello usamos el caracter > . Por ejemplo:

ls --all > archivoss.txt

Esto creara un archivo llamado archivos.txt conteniendo el resultado de ls --all

Del mismo modo con el caracter Esta es la estructura de control mas basica. Evalúa una condición y ejecuta un código dependiendo de si la condición es verdadera o falsa. La sitaxis es la siguiente:
if [ condición booleana]; then
sentencias
fi


Adicionalmente podemos usar la sentencia else que ejecuta codigo en caso de que la condicion no se cumpla:

if [condicion booleana]; then
sentencias
else
sentencias
fi

Podemos anidar varios else, del siguiente modo:

if [condicion booleana]; then
sentencias
elif [condicion booleana]; then
sentencias
else
sentencias
fi

Un ejemplo que ilustra el uso de este tipo de estructuras de control:

#!/bin/bash
A="hola"
B="buenas"
if [ "$A" = "$B" ]; then
echo Ambos son iguales
elif [ "$A" = "Buenos dias"] then
echo -e "$A vale buenos dias"
else
echo Ambos son distintos
fi


Otro tipo de estructura de control es el while. Este bucle se ejecuta indefinidamente mientras la condicion sea cierta. Esta es la sintaxis:

while [condicion booleana]; do
sentencias
done

Ejemplos:

#!/bin/bash
CONTADOR=0
while [ $CONTADOR -lt 10 ]; do
echo El contador es $CONTADOR
let CONTADOR=CONTADOR+1
done

Para que veais lo sencillo que resulta hacer un script os voy a dejar uno que pide una fecha y muestra un calendario de la fecha:

#!/bin/bash
var1="Introduzca un anio"
var2=$(zenity --entry --text "$var1")
var3=$(zenity --entry --text "Introduzca un mes")
var4=$(zenity --entry --text "Introduzca un dia")
zenity --calendar --year "$var2" --day "$var4" --month "$var3"


HolaMundo.sh

#! /bin/bash
clear
echo “Hola mundo ,este es mi primer script!!!!”

ScriptUno.sh
#! /bin/bash
clear
nombre=”Manolo el del”
apellidos=”Bombo”
echo “Te llamas $nombre $apellidos”

Fecha.sh
#! /bin/bash
clear
fecha=`date | cut -d ” ” -f 1,2,3`
hora=`date | cut -d ” ” -f 4`
echo “Hoy es $fecha y son las $hora”

OtroScript.sh
#! /bin/bash
clear
# IFS es una variable de entorno que determina el delimitador de campos
# (que por defecto vale ” “),en este script queremos
# cambiarlo a “,” para escribir por teclado nombre,apellidos
IFS=”,”
read -p “Introduce el nombre,apellidos : ” nombre apellidos
echo “El nombre es $nombre y los apellidos son $apellidos”


Compilador C/C++ para linux

publicado a la‎(s)‎ 19 abr. 2015 15:21 por Juan Jose Ramirez Lama   [ actualizado el 18 ago. 2017 6:15 ]

Desde una terminal debes teclear lo siguiente para poder compilar en C o C++:
sudo apt-get -y install make build-essential

Para compilar en C:
$ gcc fuente.c -o ejecutable
./ejecutable

Para compilar en C++:
$ g++ fuente.cpp -o ejecutable
./ejecutable

Aumentar Memoria en PHP

publicado a la‎(s)‎ 27 feb. 2015 19:42 por Juan Jose Ramirez Lama   [ actualizado el 18 ago. 2017 7:14 ]

Si alguna vez te aparece un aviso de que la memoria de PHP es demasiado baja, puedes aumentarla siguiendo los siguientes pasos:


Abrimos una terminal y tecleamos:

sudo nano /etc/php/7.0/apache2/php.ini

buscamos la línea que diga:

memory_limit = 16M


Luego en esa casilla le cambiamos el valor de 16M (valor por defecto) por uno mas adecuado por ejemplo 64M en mi caso pero otros le dan hasta 128M.


Quedando así por ejemplo:

memory_limit = 128M

Guardamos y cerramos el archivo y Listo, ya no nos dará mas problemas de memoria.

Manual Instalacion MatLab 7 (R14)

publicado a la‎(s)‎ 27 feb. 2015 19:09 por Juan Jose Ramirez Lama   [ actualizado el 13 oct. 2015 8:58 ]

La Instalación es muy sencilla, cuando revise los documentos dije "Ahora como lo instalo, no entiendo nada (estaban en ingles)" y googleando pille unas guías y la instalación fue mucho mas fácil de lo que imaginaba, aquí les explico como lo instale:


Una vez descargados los 3 CD's, lo primero es crear la carpeta donde deseamos instalar la aplicación:


$ mkdir /ruta_deseada/MatLab #(no es necesario escribir explícitamente MatLab)


Montamos el CD1:


# mount -t iso9660 -o loop nombre_cd1.iso /mnt/ #yo utilizo /mnt/ para montar mis iso's


Copiamos el archivo license.dat a la carpeta donde vamos a instalar MatLab (en el caso del ejemplo es /ruta_deseada/MatLab/)


entramos a la carpeta que hemos creado:


$ cd /ruta_deseada/MatLab/


luego instalamos el programa:


$ sh /mnt/install


En ese momento se iniciará la instalación de Matlab 7.


Continuamos con la instalación de forma gráfica. El instalador nos pedirá introducir el CD2 y más tarde el CD3 para completar la instalación. (debemos montar y desmontar las iso's como ya sabemos)


Ahora, copiamos el archivo license.lic en la carpeta que hemos utilizado /ruta_deseada/MatLab/etc/

Editamos el fichero para sustituir en la primera línea del archivo "your_host_name" por el nombre de tu máquina. Guardamos y cerramos el archivo.


Para finalizar, desde un terminal como root, ejecutamos el script que se encuentra en el directorio de instalación de Matlab. Este script se llama install_matlab

# sh /ruta_deseada/MatLab/install_matlab

Aceptamos todas las pasos dejando las opciones por defecto y ya tenemos completamente instalado Matlab 7.


Ahora, desde un terminal, para ejecutar el programa basta con teclear

matlab

Solucion a algunos errores:


Si no llegases a tener los archivos mencionados puedes descargarlos aqui, pero son para la versión presentada aquí.

Manual Matlab

CODELITE, IDE para C/C++

publicado a la‎(s)‎ 27 feb. 2015 19:03 por Juan Jose Ramirez Lama   [ actualizado el 13 oct. 2015 8:57 ]

Desde que Anjuta IDE (1.2.x) dejo de ser soportado por ubuntu (desde la versión 6.10) me he tenido que remediar a utilizar la terminar para compilar, ya que la version 2 de Anjuta nunca logre hacer que compilara, pero en fin.


Ahora descubro este nuevo programa opensource, es un editor de codigo para programar en C/C++. CodeLite esta distribuido con licencia GPL. Para Ubuntu podemos descargar un paquete .deb desde el sitio principal. Existen tambien unos VideoTutoriales que nos adentran en el uso del programa.

Tambien es Hardy esta en los repositorios y es tan sencillo instalarlo como escribir en la terminal:

# aptitude install codelite

Diagramas UML

publicado a la‎(s)‎ 27 feb. 2015 19:02 por Juan Jose Ramirez Lama   [ actualizado el 13 oct. 2015 8:58 ]

Existen una gran Variedad de programas para Gnu/Linux para realizar representaciones aqui enlisto las que mas conozco:

UML (wikipedia)


DIA:

es una aplicación gráfica de propósito general para la creación de diagramas, desarrollada como parte del proyecto GNOME. Está concebido de forma modular, con diferentes paquetes de formas para diferentes necesidades. 

Dia está diseñado como un sustituto de la aplicación comercial Visio de Microsoft. Se puede utilizar para dibujar diferentes tipos de diagramas. Actualmente se incluyen diagramas entidad-relación, diagramas UMLdiagramas de flujo, diagramas de redes, diagramas de circuitos eléctricos, etc. Nuevas formas pueden ser fácilmente agregadas, dibujándolas con un subconjunto de SVG e incluyéndolas en un archivo XML.

El formato para leer y almacenar gráficos es XML (comprimido con gzip, para ahorrar espacio). Puede producir salida en los formatos EPS, SVG y PNG.

También conviene recordar que Dia, gracias al paquete dia2code, puede generar el esqueleto del código a escribir, si utilizáramos con tal fin un UML.

# apt-get install dia

WEB

KIVIO:

Es una aplicación informática para generar diagramas y organigramas, incluida dentro de la suite ofimática para KDE KOffice. Tiene un interfaz de usuario similar a Microsoft Visio y está completamente integrada a KOffice, pudiéndose por ejemplo utilizarse embebida en KWord.

# apt-get install kivio

UMBRELLO:

Umbrello es una herramienta libre para crear y editar diagramas UML, que ayuda en el proceso del desarrollo de software. Fue desarrollada por Paul Hensgen, y está diseñado principalmente para KDE, aunque funciona en otros entornos de escritorio.

Umbrello maneja gran parte de los diagramas estándar UML pudiendo crearlos, además de manualmente, importándolos a partir de código en C++JavaPythonIDLPascal/DelphiAda, o también Perl (haciendo uso de una aplicación externa). Así mismo, permite crear un diagrama y generar el código automáticamente en los lenguajes antes citados, entre otros. El formato de fichero que utiliza está basado en XMI.

También permite la distribución de los modelos exportándolos en los formatos DocBook y XHTML, lo que facilita los proyectos colaborativos donde los desarrolladores no tienen acceso directo a Umbrello o donde los modelos van a ser publicados vía web.

Umbrello se distribuye en el módulo kdesdk de KDE.

Diagramas soportados

En la actualidad, Umbrello permite la creación de los siguientes tipos de diagramas:

Organización de diagramas

Si el usuario lo desea, puede agrupar varios diagramas relacionados en un solo fichero XMI. Estos esta
rán organizados en diferentes vistas (lógica, de casos de uso, de componentes, etc.), que a su vez pueden contener diagramas o carpetas con las que clasificar aún más estos.

La creación de un tipo de diagrama está restringida a un tipo de vista determinado, por ejemplo, un diagrama de clases podría aparecer en la vista lógica pero no en la de despliegue. Dentro de una vista, los diagramas pueden ser movidos entre carpetas libremente.

Lenguaje con exportación soportada

# apt-get install umbrello

Java JDK 9 (repositorio)

publicado a la‎(s)‎ 27 feb. 2015 19:01 por Juan Jose Ramirez Lama   [ actualizado el 3 abr. 2016 14:43 ]

Como ya sabrán, Java de Oracle, ya no esta en los repositorios oficiales de ubuntu, pero eso no quiere decir que no sea posible instalarlo, para hacerlo, solo sigue los siguientes pasos, y como es costumbre, necesitaras una terminal.

REPOSITORIOS:
Gracias a la comunidad, se ha creado un repositorio el cual nos facilitara aun mas la vida para instalar Oracle JDK8:

Si teniamos una versión anterior de JDK9 hay que desintalarla:
# apt-get remove oracle-jdk9-installer
Instalamos los repositorios:
    Ubuntu/Mint
# add-apt-repository ppa:webupd8team/java
    Debian

# echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list

# echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list

# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886


Luego Instalamos los paquetes
# apt-get update
# mkdir -p /usr/lib/mozilla/plugins
# apt-get install oracle-jdk9-installer oracle-java9-set-default
Para comprobar que todo esta correcto, solo deben hacer en la terminal los siguientes comandos.
$ java -version 
$ javac -version
Esto, deberia responder algo como java version "1.9.0_45" y javac 1.9.0 

Con esto ya esta todo listo.

Espero les sea útil.

1-10 of 17