miércoles, 1 de julio de 2015

Permitir conexión a puertos en fedora 21




En algunas ocasiones es necesario permitir que todas las pc's de una red se conecten a otra pc utilizando Fedora. En fedora no es tan simple como desactivar el firewall y listo. Pero sí es sencillo agregar un puerto público o abrir un puerto, de hecho es muy fácil.


Por ejemplo, para poner como servidor de base de datos una pc con fedora, es necesario abrir el puerto  para que puedan acceder los usuarios. Ahora, para hacer eso es necesario abrir el programa de CortaFuego como se muestra en la primera imagen.

Una vez abierta el programa les mostrará la siguiente ventana:

Antes de desconfigurar algo, por favor tengan cuidado de no mover puertos que sean necesarios para el sistema.

Las opciones básicas de los puertos permitidos son durante ejecución y permanente.

Para añadir un puerto, primero seleccionar el entorno, por ejemplo, para el server fedora, workstation, publico etc., Una vez seleccionado el entorno, ahora clic en el botón añadir, ingresar el puerto:


Y con eso se ha establecido un puerto de manera publica o con acceso a otros, recordad que necesitan selccionar si es TCP o UDP, o cualquier otro tipo.

Añadir proyecto a XAMPP

Para añadir un nuevo proyecto a XAMPP es relativamente sencillo, solo hay que añadir nuestro proyecto de php a la ruta htdocs de la carpeta en XAMPP,
  1. En Fedora la ruta por defecto es /opt/lampp/htdocs/
Yo recomiendo que en su proyecto siempre tengan una página index.php así cuando tecleen la url en la barra de dirección, sea la primera página que xampp localice para abrir.

En la tema de http://linuxgx.blogspot.mx/2015/06/inicio-de-sesion-php-con-mysql.html en blog, se muestra un ejemplo de proyecto de sesiones en php, sencillo, ojo, no es el que se muestra en la imagen. Si quieren el que se muestra en la imagen visiten mi sitio de github.

Para agregar el ejemplo de sesiones a XAMPP hacer lo siguiente:
1.- Obviamente tener instalado XAMPP
2.- Descargar el ejemplo y descomprimirlo.
3.- Copiar la carpeta descomprimida que se llama sesionesphp y pegarla en la ruta /opt/lampp/htdocs/

sudo /opt/lampp/lampp start
4.- Ir al navegador y escribir la dirección http://localhost/phpmyadmin/ ya que antes de poder utilizar el proyecto de sesiones necesitan crear una base de datos en mysql, para que los datos de usuarios se almacenen ahí.

 Clic en la opción Nueva
 Escribir el nombre de la base de datos y luego clic en el botón crear.
 Seleccionar la BD recien creada que se llama linuxitos
 Ir a la pestaña sql, abrir el archivo linuxitos.sql que viene dentro de la carpeta se sesionesphp copiar el contenido a partir de la línea que dice use linuxisto; y pegarlo en el cuadro de texto como se muestra en la imagen de arriba, finalmente clic en el botón continuar. Deberá mostrarle un mensaje de éxito.

5.- Ir al navegador y escribir la barra de dirección http://localhost/sesionesphp/ automáticamente les abrirá la siguiente ventana:
6.- No se les olvide arrancar el servidor XAMPP en Fedora  es:

7.- Si por alguna razón no les funciona, revisar el link de los errores comunes para solucionarlo http://linuxgx.blogspot.mx/2015/06/errores-comunes-de-xampp-en-fedora.html.

Y si aún no han instalado XAMPP, entonces les recomiendo revisar http://linuxgx.blogspot.mx/2015/06/instalacion-de-xampp-en-fedora-21-y-22.html

domingo, 21 de junio de 2015

Insertar PDF como portada de documentos LaTeX

Posiblemente el problema más común al comenzar a utilizar Latex para nuestros trabajos, es la dificultad de crear portadas más o menos decentes, si bien es cierto, se pueden crear portadas mucho más estilizadas con desde Latex, pero es más complicado.

Yo realizo mis portadas con el programa Inkscape, que es un programa de manipulación de gráficos vectoriales, nada del otro mundo, es simple, sencillo y solo utilizando las formas típicas de figuras geométricas se pueden obtener resultados como este:
¿Cuál es el punto de esto entonces?
Pues bien, una vez que he creado la portada en Inkscape, la guardo como PDF, sí, como archivo pdf normal, y la inserto como portada de mi documento en Latex.

Con esto me quito la tediosa tarea de utilizar los comandos de Latex, para ubicar el texto o imágenes en un lugar específico en la portada.
Las ventajas de esto son:
  1. Un diseño rápido y elegante
  2. Permite el uso de imágenes y de posicionamiento de las misma más fácil.
  3. Al exportar el archivo en formato de PDF, cuando la portada se combina con el documento en Latex, se puede seleccionar el texto de la portada sin ningún problema
  4. Y lo mejor es que nadie notará que tu portada no fue hecha en Latex directamente.
Desventajas:
  1. Si hubiera un error en la portada, necesitas modificar el archivo pdf de la portada por separado.
  2. A veces Acrobat Reader no lee PDF incrustados se soluciona instalando evince, es mucho más eficaz para leer archivos.
¿Cómo se realiza esto?
Lo primero que hago, es compilar mi documento completo de Latex para tomar las medidas que tiene el documento y utilizar las misma en la portada a realizar con Inkscape.
Para obtener las medidas del documento generad por Latex, basta con dar clic derecho en la opción propiedades y mostrará la información siguiente:
Una vez que se tiene el tamaño del papel, se ajusta ese mismo tamaño y medida en el documento en Inkscape. De hecho pueden utilizar, photoshop, corel-draw, libreoffice, draw, word, etc, el punto es que se debe utilizar la misma media y tamaño para que el pdf se ajuste completamente al ser incrustado en el documento Latex.

El siguiente paso es incrustarlo en el archivo Latex:
Los siguientes comandos son para incrustar el archivo pdf creado externamente como portada:
\begingroup
\begin{titlepage}
    \newgeometry{left=0cm,top=0cm,bottom=0cm, right=0cm}
    \AddToShipoutPicture*{\put(0,0){\includegraphics[scale=1]{portada.pdf}}} % pdf de fondo de portada
    \noindent
    \vspace{125mm}
\end{titlepage}
\endgroup
Como podrán ver, en la parte que dice, portada.pdf es el archivo creado por separado, dependiendo de la ubicación del archivo, así es como deben indicar la ruta.

El paquete necesario para que esto funcione es:
\usepackage{wallpaper}

Y con eso solucionan el problema de crear portadas para documentos en Latex. El archivo completo lo pueden descargar de aquí.

viernes, 19 de junio de 2015

Agregar texto al final de un archivo existente desde Java

EL siguiente programa en java añade texto al final de un archivo de texto.
El proyecto completo lo pueden descargar desde aquí

O el código principal es:
public void agregarTextoAlfinal(String nombreArch){
        int i;
        try {
            FileWriter fstream = new FileWriter(nombreArch, true);
            BufferedWriter out = new BufferedWriter(fstream);
            for(i=0;i<10;i++){
                out.write("Visita http://linuxgx.blogspot.mx/ "+i+"\n");
            }
            out.close();
        } catch (IOException ex) {
            System.out.println("Error: "+ex.getMessage());
        }
 }
Para crear previamente el archivo pueden usar este método:
public void crearArchivo(String archivo){
        FileWriter fwArchTemp;
        try {
            fwArchTemp = new FileWriter(archivo);
            BufferedWriter bwArchTemp;
            bwArchTemp = new BufferedWriter(fwArchTemp);
            try (PrintWriter wrArchTemp = new PrintWriter(bwArchTemp)) {
                wrArchTemp.print("Visita http://linuxgx.blogspot.mx/\n");
                wrArchTemp.close(); /*Cerrando archivo de escritura*/
            }
            bwArchTemp.close(); /*Cerrando apertura de archivo*/
            fwArchTemp.close();
        } catch (IOException ex) {
            System.err.println("Error: "+ex.getMessage());
        }
}
Bueno, espero que les sirva de algo.

jueves, 18 de junio de 2015

Inicio de sesión PHP con MySQL

En las últimas versiones de PHP la validación de sesiones ha cambiado, muchos método han sido deprecados, en fin, aquí les presento un ejemplo de inicio de sesión de utilizando PHP y MySQL. Este mini proyecto tiene las siguiente características:
  1. Interfaz gráfica de inicio simple
  2. Validación de usuario contra Base de datos en MySQL
  3. Versión de PHP utilizada 5.5
  4. Versión de MySQL 14.14 Distribución 5.6.25 para linux x86_64
  5. Permite registro de usuarios
  6. Valida usuarios antes de registrarlos
  7. El nombre de usuario es la clave primaria
  8. No cifra la contraseña de usuario
  9. No valida los campos antes de enviarlos
  10. Valida el acceso a páginas que requieren logeo antes de acceder a ellas
  11. Uso del método POST y GET en algunas páginas
  12. Usa archivo de configuración externa para la base de datos




Como ven las interfaces son realmente sencillas, a continuación describo cada archivo de este proyecto:

  1. Archivo linuxitos.sql: contiene la estructura de la base de datos en MySQL utilizada por el proyecto.
  2. Archivo bienvenido.php: contiene la información que se presenta al usuario cuando se haya logeado de manera correcta.
  3. Archivo cerrarsesion.php: enlace que sirve para cerrar la sesión actual del usuario, este link solo se presenta cuando el usuario se haya logeado correctamente.
  4. Archivo config.php: contiene la definición de variables globales para acceder a la base de datos, es decir, si requieren cambiar el nombre de base de datos, nombre de usuario o contraseña, basta con modificar este archivo y se modificará en todo el sitio.
  5. Archivo guardarregistro.php: es una página intermediaria para guardar un nuevo registro en caso de que un usuario nuevo requiere registrarse.
  6. Archivo index.php: página de inicio que se presenta cuando se accede al sitio, es decir, es la página de login.
  7. Archivo registrarse.php: página que contiene el formulario de llenado para registrar un nuevo usuario a la base de datos.
  8. Archivo validar.php: página que valida a un usuario que intenta logearse, en este página se verifica si el usuario está dado de alto o no en la base de datos.

Link del proyecto para descargar: Proyecto sesionesphp

Bueno gracias por visitar, espero que les sirva el proyecto como base para lo que quieran hacer.