domingo, 7 de junio de 2015

Inicio de sesión usando PHP y MySQL

En el séptimo semestre de la carrera de informática mis compañero y yo desarrollamos una aplicación local para alojar libros digitales en PDF, utilizando XAMPP como servidor de php y mysql para almacenar la información.

El proyecto no lo terminamos completamente, sin embargo se puede reutilizar parte del código, por ejemplo la interfaz gráfica, el método de inicio de sesión, o el acceso a la base de datos etc.

El proyecto lo pueden descargar de GitHub https://github.com/jesusferm/dgbooks

Pasos para utilizarlo:
  1. Descargar e iniciar XAMPP
  2. Crear un Base datos con el nombre de digitalbooks en phpMyAdmin y ejecutar el script.sql que viene el proyecto para crear tablas y demás.
  3. Verificar que los parámetros de conexión de a la base de datos sean los correctos en el archivo config.php. Este archivo es el único que se modifica cuando se cambian las contraseñas y con esto se modifica en todo el sitio.
  4. Registrarse con un usuario con la clave 12345678.
  5. Iniciar sesión y listo.
Aún falta anexar nuevas funcionalidades al sitio, pero, con esto se puede comenzar uno nuevo.
 
Espero y les sirva de algo, comenten en caso de dudas.

lunes, 1 de junio de 2015

Compilar archivo Xelatex - Fontspec en TexStudio

Hace poco cree una entrada en la que explico cómo compilar archivos usando fontspec para cambiar tipografías en los documentos en Latex. Pero la manera en la que lo compilaba era desde la terminal, un poco tedioso a mi parecer. FontSpec es para cambiar el tipo de letra usado el documento. Pero, que para compilarlo, se necesita usar Xelatex o Xetex, no funciona con latex o pdflatex normal.

Ahora, les mostraré las configuraciones necesarias para compilarlos desde TexStudio. Incluso funciona si en el documento hay citas bibliográficas. La configuración que se requiere es  la que se muestra en la imagen de arriba.

Ir al menú Opciones -> Configurar TexStudio -> Compilar -> Meta Órdenes y configurar la opción compilar y agregar Xelatex como entorno de compilación.



Lo más importante aquí, es eliminar la compilación de latez, o la que se muestra por default.

Ejemplo:

\documentclass[letterpaper,11pt]{report}
\usepackage{color}
\definecolor{Blue}{rgb}{0.3,0.3,0.9}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX} % To support LaTeX quoting style
\setromanfont{DejaVu Serif}
\begin{document}
Cambiando tipografía de documentos en \LaTeX. Un tutorial aquí
{\color{Blue}{http://linuxgx.blogspot.mx/}}
\end{document}


El ejemplo es para sistemas operativos basados en Linux, la tipografía DejaVu Serif viene por default instalada en distros Linux.

No olviden reconfigurar TexStudio a su modo normal utilizando compilación en entornos Latex o PdfLatex, sino quieren compilar documentos en los que no se use fontspec, de otro modo no compilará.

Fontspec es muy útil, pero no es compatible con los paquetes de configuración de caracteres, por ejemplo los paquetes \usepackage[spanish]{babel}, \usepackage[T1]{fontenc}, \usepackage[utf8]{inputenc}   esto se debe a que, se utiliza al propia codificación de caracteres que provea la tipografía que se seleccione al usar fontspec.

Y eso sería todo.

Fuentes:
https://en.wikibooks.org/wiki/LaTeX/Fonts
http://stackoverflow.com/questions/877597/how-do-you-change-the-document-font-in-latex

Cómo importar claves PGP de paquetes RPM

¿Por qué es necesario comprobar la clave pública de un RPM?
La firma confirma que el paquete fue firmado por una parte autorizada y también confirmar la integridad y el origen de su archivo. Es extremadamente importante verificar la firma de los archivos RPM antes de instalarlos para asegurar que que no han sido alteradas de la fuente original de los paquetes.

Verificando la firma de un paquete
El comando --checksig (o -K) checa todas opciones de los resúmenes y las firmas que figuran en el paquete para asegurar la integridad y origen del del mismo.
Si desea verificar que un paquete no ha sido dañado o alterado, examinar únicamente la suma md5 tecleando el siguiente comando:
rpm -K --nosignature <paquete-rpm>
Al finalizar el comando, debe mostrar un mensaje confirmación que todo está bien, por ejemplo un OK, o Todo está bien. Esto mensaje significa que el archivo no fue corrompido por la descarga. Para ver un mensaje más detallado, reemplace -K por -Kvv en el comando.

Por otro lado, qué tan confiable es el desarrollador que creó el paquete? si
el paquete está firmado con la clave GnuPG del desarrollador, usted sabe que el desarrollador
realmente es quien dice ser.

Un paquete RPM se puede firmar usando Gnu Privacy Guard (o GnuPG), para ayudarle a asegurarse de que su paquete descargado es de confianza. GnuPG es una herramienta para una comunicación segura; es un reemplazo completo y gratuito para el cifrado de PGP, un programa electrónico de privacidad. 

Con GnuPG, puede autenticar la validez de los documentos y encriptar/desencriptar datos desde y hacia otros destinatarios. GnuPG es capaz de descifrar y verificar archivos PGP 5.x también.
 
Durante la instalación de un paquete, GnuPG se instala por defecto. De esa manera usted puede inmediatamente empezar a utilizar GnuPG para verificar cualquier paquete que reciba de CentOS (RHEL/Fedora).  

Antes de hacerlo, debe importar primero la clave pública del paquete. Para importar una clave, se usa el comando siguiente:
rpm -qa gpg-pubkey*
Básicamente, para importar la clave de un paquete, se usa:
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

Y eso es todo, para realizar la comprobación de un paquete a grandes rasgos.

Usos del comando RPM

RPM (Red Hat Package Manager) es un código abierto por defecto y la utilidad más popular de gestión de paquetes para sistemas basados en Red Hat como (RHEL, CentOS y Fedora). La herramienta permite a los administradores de sistemas y usuarios instalar, actualizar, desinstalar, consultar, verificar y gestionar paquetes de software del sistema en los sistemas operativos Unix/Linux.

Hay cinco modos básicos de comando RPM
  1. Instalar: Se utiliza para instalar cualquier paquete RPM. 
  2. Eliminar: Se utiliza para borrar, eliminar o desinstalar cualquier paquete RPM. 
  3. Actualizar: Se utiliza para actualizar el paquete RPM existente. 
  4. Verificar: Se utiliza para consultar sobre los diferentes paquetes RPM. 
  5. Consultas: Se utiliza para la verificación de cualquier paquete RPM.
¿Dónde descargar paquetes rpm?
  1. http://rpmfind.net
  2. http://www.redhat.com
  3. http://freshrpms.net/
  4. http://rpm.pbone.net/
1.- Comprobar la firma de un paquete RPM: siempre es necesario comprobar las firmas de un paquete antes de instalarlo.
sudo rpm --checksig nombre-paquete.rpm
2.- Instalar un paquete con RPM
sudo rpm -ivh nombre-paquete.rpm
donde:
-i = install
-v = mostrar proceso por consola
-h = imprimir marcas de control como el archivo del paquete de desembalar.
3.- Listar las dependencias de un archivo RPM
sudo rpm -qpR nombre-paquete.rpm
4.- Instalar paquete sin dependencias
sudo rpm -ivh --nodeps nombre-paquete.rpm
5.- Cómo verificar si un paquete RPM está instalado
sudo rpm -q NombrePaquete
6.- Listar los paquetes instalados por un paquete
sudo rpm -ql NombrePaquete
7.- Listar paquetes RPM instalados recientemente
sudo rpm -qa --last
8.- Listar todos los paquetes instalados
sudo rpm -qa
9.- Actualizar paquete RPM
sudo rpm -Uvh nombre-paquete.rpm
10.- Eliminar un paquete RPM
sudo rpm -evv nx
11.- Eliminar paquete RPM sin eliminar las dependencias del mismo
sudo rpm -ev --nodeps paquete
12.- Consultar información de un paquete
sudo rpm -qi nombre-paquete
13.- Obtener información de un paquete antes de instalar
sudo rpm -qip nombre-paquete.rpm
14.- Reconstruir paquetes de la bases de datos de RPM
sudo cd /var/lib
sudo rm __db*
sudo rpm --rebuilddb
sudo rpmdb_verify Packages

Comandos útiles para usuarios de Linux

A veces nos entra una paranoia con los posibles intrusos que haya en nuestros SO Linux. A continuación les mostraré unos comandos útiles, cuando entramos en este trance.

1.- uptime
El comando uptime muestra desde cuánto tiempo se está ejecutando el sistema y el número de usuarios se registran actualmente en y también muestra promedio de carga para los intervalos de 1,5 y 15 minutos.
uptime
#Ejemplo de salida:
14:06:47 up  6:08,  2 users,  load average: 0.70, 0.58, 0.44
 2.- Comando W
Muestra los usuarios conectados actualmente y su proceso junto con los promedios de carga. También muestra el nombre de usuario, nombre de tty, host remoto, tiempo de sesión, tiempo de inactividad, JCPU, PCPU, comandos y procesos.
w
#ejemplo de salida del comando
14:10:57 up  6:13,  2 users,  load average: 0.90, 0.60, 0.47
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
 user1      :0        07:59   ?xdm?   1:43m  0.34s gdm-session-worker [pam/gdm-password]
user2      pts/0     12:17    7.00s  0.39s  0.00s w
 3.- Comando users:
Muestra los usuarios que actualmente están registrados. Este comando no tiene otros parámetros distintos de la ayuda y la versión.
users
#ejemplo de salida del comando:
user1 user2
 4.- Comando who
Devuelve nombre de usuario, fecha, hora. Éste comando es similar al comando w
who
#ejemplo de salida del comando who
user1      :0           2015-06-01 07:59 (:0)
user2      pts/0        2015-06-01 12:17 (:0)
 5.- Comando whoami 
EL comando whoami imprime el nombre del usuario actual
whoami
#ejemplo de salida del comando
user1
 6.- Comando ls para lista últimos archivos modificados
ls -ltr
 7.- Comando top
muestra los procesos activos y la cantidad de recursos que consumen.
top
8.- Comando last
Muestra el último acceso al SO
last
9.- Comando kill
Comando que termina un proceso, ejemplo de uso
sudo kill -9 pid-del-proceso
10.- comando ps muestra los procesos en ejecución
ps -fea

Para mi, son los comandos más utilizados para administrar un SO Linux.