sábado, 16 de agosto de 2014

Instalar Pilas en Debian 7

Hola gente, en esta oportunidad les quería comentar como instalar pilas en la versión 7 de Debian.
A los pasos los saqué de este post el cual indica como instalar pilas en raspberry.

Primero debemos loguearno como root.

apt-get install build-essential
apt-get install git
apt-get install python-dev swig
apt-get install python-setuptools python-qt4
apt-get install python-qt4-gl
apt-get install python-qt4-phonon
apt-get install python-box2d


Ahora instalamos Pilas.

git clone http://github.com/hugoruscitti/pilas
cd pilas
git submodule update -- init
python setup.py install

Ahora nos quedaría poner en la terminal el comando pilas y listo, tendremos corriento la interfaz de pilas en nuestro Debian 7.

Fuente: Tuxapuntes

lunes, 7 de julio de 2014

Montar un repositorio Git en Debian 7

Qué es Git según Wikipedia?

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end. Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux.

Para poder montar un repositorio Git en nuestro Servidor debemos seguir los siguientes pasos:

PASOS A REALIZAR EN EL SERVIDOR
  1. Debemos tener instalado un servidor SSH en la máquina que convertiremos en repositorio, dicho servidor SSH nos permitirá realizar conexiones desde el exterior.

    root@server~$: apt-get install openssh-server
  2. Vamos a crear un usuario para nuestro repositorio de Git, para ello corremos el comando adduser [username] y completamos el formulario.

    root@server~$: adduser gituser  # Escogí el usuario gituser para este ejemplo.
  3. Ahora procedemos a instalar Git:

    root@server~$: apt-get install git-core
  4. Una vez creado el usuario, gituser para el ejemplo, e instalado git-core vamos a crear un directorio con un nombre alusivo a lo que contendrá el repositorio en el home del usuario que creamos. Para -este ejemplo vamos a crear un repositorio para el código de un proyecto llamado tesis.git .
    Los pasos siguientes vamos a realizarlos con el usuario que creamos.

    root@server~$: su gituser  # nos logueamos con el usuario gituser
    password: [el password que escogieron para este user]
    gituser@server~$: mkdir tesis.git  # creamos el directorio tesis.git
    gituser@server~$: cd tesis.git  # ingresamos al directorio tesis.git
  5. Una vez dentro del directorio que creamos para nuestro proyecto, procedemos a inicializarlo.

    gituser@server~$: git init --bare

PASOS A REALIZAR EN EL CLIENTE

  1. Primero para poder realizar los siguientes pasos debemos tener instalado un cliente git, en las distribuciones basadas en Debian basta con ejecutar el siguiente comando:

    root@colmenalabs~$: apt-get install git

  2. Creamos un directorio donde queremos depositar nuestros repositorio en la máquina local, en mi caso voy a crear una carpeta project/mytesis en mi directorio home.

    root@colmenalabs~$: su debianitram
    debianitram@colmenalabs~$: mkdir /home/$USERNAME/projects  # Creamos Directorio Projects
    debianitram@colmenalabs~$: mkdir /home/$USERNAME/projects/mytesis
    debianitram@colmenalabs~$: cd /home/$USERNAME/projects/mytesis # ingresamos al directorio
  3. Una vez creado el directorio "projects/mytesis" y accedido al mismo procedemos a clonar el repositorio que inicializamos en el servidor.

    debianitram@colmenalabs~$: git clone gituser@[dominio_o_ip]:/home/gituser/tesis.git
    # Donde [dominio_o_ip] se corresponde al dominio o ip de nuestro servidor por ejemplo gituser@10.10.10.100:/home/gituser/tesis.git o gituser@midominio:/home/gituser/tesis.git
  4. En mi caso voy abrir el programa Write de la Suite Libre Office y voy a crear un documento para comenzar a redactar mi tesis, podría ser cualquier documento, o el repositorio podría tratarse de cualquier proyecto, en este ejemplo quería hacer algo diferente para lo cual es habitual utilizar un control de versiones (Desarrollo de softwares).
  5. Pasan algunos minutos ... Tal vez varias horas ...
  6. Listo, terminé de escribir la primera parte del proyecto mytesis, ahora hay que enviar todas las modificaciones que hice al servidor.

    debianitram@colmenalabs~$: git commit -am 'Subiendo la primera parte de la redacción del Tesis'debianitram@colmenalabs~$: git push origin master
    password: [Ingresamos el password que asignamos a nuestro usuario gituser en el servidor].
Listo! Ahora tenemos un repositorio para el control de versiones de nuestros proyectos. Para más información acerca de los comando de git puden observar en esta página. Mas info

viernes, 4 de julio de 2014

Generar Archivo .doc desde html con php

Hola,

Si necesitamos generar un archivo .doc basado en una web html, podemos hacerlo agregando unas lineas al inicio del archivo php.
*** Es importante que estas lineas se agreguen en las primeras lineas del .php

<?php
        header("Content-type: application/vnd.ms-word");
        header("Content-Disposition: attachment; Filename=ConAtecedentes.doc");
?>

De este modo, cuando se abra la web en cuestión,  generará un archivo .doc para descargar, con el contenido html que tenga esa web.

miércoles, 2 de julio de 2014

Backup Base de Datos PostgreSQL

Para realizar un backup a una base de datos PostgreSQL necesitamos realizar los siguientes pasos:
  • Primero y antes que nada deberíamos de tener instalado el servidor de base de datos de PostgreSQL, y una base de datos con sus respectivas tablas y datos en ellas.
  • Segundo: loguearnos con el usuario de nuestro motor de base de datos, para ello ejecutamos el siguiente comando.
    debianitram@colmenalabs:~$ su postgres
    Password: [Ingresan la password del usuario postgres]NOTA: Si no saben la contraseña del usuario postgres pueden loguearse como root y luego ejecutar el siguiente comando: passwd postgres y completen el formulario.
  • El paso siguiente es realizar el buckup propiamente dicho de una base de datos, en el ejemplo la base de datos es llamada saise.
    postgres@colmenalabs:~$ pg_dump saise > /tmp/backup_saise.sql
Con los pasos que se mencionaron arriba ya tendríamos un backup de la base de datos saise, para el caso del ejemplo, situada en el directorio /tmp.

Los pasos de restauración de la base de datos son los siguientes:
  • Primero debemos repetir los dos primeros pasos que se mencionaron arriba.
  • Una vez logueados ingresamos a la Terminal Interactiva de PostgreSQL con el siguiente comando:
    postgres@colmenalabs:~$ psql
  • Siguiendo con el ejemplo vamos a realizar los siguientes pasos: Suponiendo que la base de datos está creada la vamos a eliminar con el comando DROP DATABASE [nombre_de_la_base];
    postgres=# DROP DATABASE saise;
  • Ahora creamos nuevamente la base de datos:
    postgres=# CREATE DATABASE saise;
  • Finalmente salimos de la Terminal Interactiva tecleando \q y presionamos [Enter]

Ahora siguiendo logueado con el usuario postgres volcamos el backup a la nueva base de datos:
  • postgres@colmenalabs:~$ psql saise < /tmp/backup_saise.sql


NOTA:

  • Los pasos anteriores fueron realizados en el Sistema Operativo GNU/Linux -> Debian 7.
  • Los pasos para instalar el motor de base de datos PostgreSQL son los siguientes:
    debianitram@colmenalabs:~$ su # Nos logueamos como usuario root
    Password:
    root@colmenalabs:~$ apt-get install postgresql-9.1

domingo, 29 de junio de 2014

Excluir directorio a modsecurity para apache2 en Debian Wheezy

Hola,

Si alguna vez necesitamos excluir algún directorio de la protección de modsecurity, tenemos que agregar unas lineas en el archivo de configuración:

# nano /etc/modsecurity/modsecurity.conf

Lineas a agregar:
< LocationMatch /webmail/ >
< IfModule mod_security2.c >
SecRuleEngine Off
< /IfModule >
< /LocationMatch >
donde webmail deberán modificarlo por el que deseen.

por ultimo hay que reiniciar el apache para que tome el cambio:

# service apache2 restart

Saludos,

Emmanuel

Solucion a los Mail Delivery System en ISPConfig

Error:

Final-Recipient: rfc822; mail@dominio.com
Original-Recipient: rfc822;mail@dominio.com
Action: failed
Status: 5.1.1
Diagnostic-Code: X-Postfix; unknown user: "mail"

Hay que editar:

# nano /etc/postfix/main.cf

Y modificar esta linea:

mydestination = midominio.com, localhost, localhost.localdomain

por:

mydestination = localhost, localhost.localdomain

Es decir, dejar solo localhost y localhost.localdomain.

Por ultimo, reiniciar postfix:

# /etc/init.d/postfix restart

Saludos,

Emmanuel

martes, 3 de junio de 2014

Agregar Botón a un SQLFORM.grid - web2py

Vamos a ver como agregar un botón extra a un grid.

En esta función declaro el botón editar
def editar_expediente(row):
    btn = A(I(_class='icon-thumbs-up'),
                ' Editar',
                _href=URL(c='default', f='editar_expediente', args=[row.id]),
                _class='btn')
    return btn 
 Aquí tenemos una función llamada 'test' donde construye un formulario con SQLFORM.grid de la tabla 'expediente'.

def test():
    grid = SQLFORM.grid(db.expediente,
        editable=False,)
        links=[lambda r: editar_expediente(r)],)
    return dict(grid=grid)

Con: editable=False, oculto el botón editar.
Con: links=[lambda r: editar_expediente(r)] hago la llamada a un nuevo botón que lo declaro en la función llamada 'editar_expediente'

Ocultar Campos de un SQLFORM.grid web2py

Para ocultar campos en un new, es decir, cuando agregamos un registro en un grid:

def test():
    if 'new' in request.args:
        db.tabla.campo.default = 'texto'
        db.tabla.campo.writable = False
        db.tabla.campo.readable = False
    grid = SQLFORM.grid(db.tabla)
    return dict(grid=grid)
 En este ejemplo, el campo toma por defecto el valor 'texto' y lo oculta en el grid.
El campo default, es opcional, en el caso que queramos que el campo lleve algún valor.

Lo mismo si queremos ocultar un campo en el edit, es decir a la hora de editar un registro del grid:

def test():
    if 'edit' in request.args:
        db.tabla.campo.default = 'texto'
        db.tabla.campo.writable = False
        db.tabla.campo.readable = False
    grid = SQLFORM.grid(db.tabla)
    return dict(grid=grid)

Y en la vista:

 def test():
    if 'view' in request.args:
        db.tabla.campo.default = 'texto'
        db.tabla.campo.writable = False
        db.tabla.campo.readable = False
    grid = SQLFORM.grid(db.tabla)
    return dict(grid=grid)

lunes, 5 de mayo de 2014

Iniciar web2py como un Servicio en Windows 7

En varias oportunidades vamos a necesitar implementar una aplicación desarrollada con web2py en Windows 7.
La forma de hacer que web2py inicie como un servicio, es la siguiente:

Descargamos una aplicación llamada nssm, de la siguiente web:

http://www.nssm.cc/

Una vez descargado lo descomprimimos en c:/nssm.

Abrimos una consola cmd, ingresamos al directorio "C:\nssm\win32" y escribimos el siguiente comando: "nssm install"


Una vez ingresado ese comando, nos va a aparecer la siguiente pantalla, que en mi caso rellené con los siguientes datos:


Path: va la dirección donde tengamos instalado python.
Options: Va la direccion donde tengamos web2py. Los argumentos (-a "") son para que web2py encienda sin necesidad de ingresar una contraseña para la interface administrativa.
Service name: va el nombre que elijamos para el servicio.

Y si en un caso queremos eliminar un servicio que hayan agregado:

sc delete "nombre del servicio"
Saludos,

Emmanuel

martes, 29 de abril de 2014

Migrar de Sqlite a PostgreSQL para web2py

Abre la consola de python y navega hasta la carpeta de web2py


Inicia web2py en modo consola:

# python web2py.py -S nombre_de_tu_app -M –P

Exporta los datos a csv:

# db.export_to_csv_file(open('nombre_de_tu_app_export.csv', 'wb'))

Salir de la consola con: exit()

Prepara tu aplicación para una nueva base de datos.
Ingresa al directorio de tu app y hace un backup de la carpeta databases

# cp -r databases databases_bak


Crea una nueva carpeta:

# rm -r databases

# mkdir databases


Cambia la cadena de conexión de DAL
:

Anterior:
# db = DAL('sqlite://storage.sqlite',pool_size=1,check_reserved=['all'])

Nueva:
db = DAL('postgres://usuario:contraseña@localhost/base_de_datos')

Inicia web2py en modo consola:

# python web2py.py -S nombre_de_tu_app -M –P


Importa los datos CSV:

# db.import_from_csv_file(open('
nombre_de_tu_app_export.csv', 'rb'))

Hacemos un commit:

# db.commit()


Salimos de modo consola:

exit()

Y listo, ya tendremos los datos funcionando en PostgreSQL.