Feliz año viejo....!!

Este es mi ultimo post para este año en mi recien nacido blog, que tiene casi dos semanas de parido, pero bien, este día 31 de diciembre es cuando se hace una retrospectiva acerca de este año que paso, pues todo fue como se titula este blog, muchos bajones pero también subidas significativas en mi vida, ha estado plagado de sufrimiento como también de buenos momentos.

Pero lo mejor de comentar es las buenas experiencias, como por ejemplo haber hecho a un buen amigo este año, cuando otro dejo esta vida, ver a mi hija crecer y ponerse cada vez mas hermosa, saber que estoy rodeado de buenas personas y que he aprendido mucho de ellos así como en este preciso momento recibir el saludo de un amigo que tenemos ratos de no vernos y que esta felizmente casado.

No me quejo de la vida pues eso es un sinónimo de no tener webos para hacerle ganas, doy gracias a la vida por mis hermanos y mi papa que son un estereotipo de hombre para mi.

De entre mis metas para el otro año son , ayudar al prójimo mejor cada vez, dejar de ser soberbio por que en realidad debo cambiar esa mala actitud, y que este blog tenga mas visitas jeje.

Esperando que pasen un buen fin de año, y que la mara no se vaya a pasar de drinkss son los mejores deseos de mi parte.

Daniel Alberto Herrera Guadrón

Comentarios (2)

Quiero aprender GNU/Linux ¿donde empiezo?

Muchos de mis cheros al ver los beneficios, satisfacciones personales, también que alli esta el billete en cierta manera y orgasmos que me trae usar GNU/Linux (eso quiero pensar yo), otros se motivan al ver los efectos de beryl o de compiz fusion, a otro muchas otras cosas y gracias a eso les ha entrado la espinita de también disfrutar esas experiencias.

La tipica pregunta antes de iniciarse es ¿que necesito para empezar?

Y mi respuesta es la misma, debes de ser autodidacta y paciente, muy paciente por que no todo se sirve en bandeja de plata en este rollo y debes serlo mas cuando sos un estudiante de informática, en cambio para un usuario final se la puedo valer que no sea paciente pues este tipo de usuario necesita las cosas para ya en cambio el informático debe de investigar mucho para darle buenos resultados a su razón de ser que es el usuario final.

Para que la transición a usar un sistema operativo nuevo no sea tan impactante lo recomendable es empezar a usar software libre desde tu sistema operativo que tenes dominio, que por lo general es windows.

¿De que programas libres u Open source estoy hablando? los de uso habitual, como por ejemplo Firefox, Thunderbird, OpenOffice, Pidgin, etc...
También hay que conocer nuestro hardware y dispositivos conectados a nuestra maquina, quierase o no un linuxero lo va a aprender a conocer.
Y ahora la pregunta del millón ¿con que distribución comienzo?, pues debe ser una fácil de usar y la que sirva a tus necesidades, por ejemplo si eres un usuario final, es decir, no eres un estudiante de informática pero sabes de los beneficios de un sistema operativo libre las posibles opciones seria Mandrake, Mandriva, SuSE o Ubuntu, pero si eres un estudiante de informatica y quieres aprender a configurar un buen servidor las opciones serian Redhat, Fedora o Debian. Hay cantidad de distribuciones como expendios hay en Atiquisaya, todas para un gusto determinado o fin especifico, ya sea como sistema operativo de escritorio o para servidores.


Después de ese ultimo paso todo depende de la persona que cuanto quiere aprender a tener una nueva experiencia.

Comentarios (6)

Reflexionando acerca de la educación en El Salvador

Platicando con algunos tíos y mi padre, comentaban acerca de como ha bajado la calidad de la educación en nuestros días en el país, empezaron comparando la formación de los profesores en la ya extinta escuela de formación pedagógica "La normal"con los actuales, pero el problema no radica tanto en la preparación de los docentes, sino en las mismas reformas educativas en la cual sirven a un modelo neoliberal que consiste en que el niño ya no tenga criterios y sea nada mas como dicen mis cheros de la U "sean nada mas que julones", es decir, una caja de carne sin nada mas dentro, un cadáver social andante, que simplemente deba ser una persona instruida, que nada mas sirva para trabajar en una maquila o en el mejor de los casos Call Center.

Lo peor del caso es que aparte que ya no se este inculcando en el niño consciencia social, y ni hablar de la calidad académica es malisima, como bien decía un televidente en el programa de televisión de Narciso Castillo que envío un correo electrónico diciendo "es deprimente que niños de quinto o sexto grado apenas puedan leer y escribir" y un claro ejemplo para no ir tan lejos soy yo, me gradué de bachillerato en el Instituto Nacional de Santa Ana, INSA, (del cual me siento orgulloso), siempre fui buen estudiante y tenido simpatía por las matemáticas, no deje materias pero al llegar a la universidad lo mas que me sirvio mi preparacion en bachillerato en todas mis materias de primer año de la universidad fue para dos semanas específicamente en las áreas de física y matemática, de allí en adelante había que hacer un gran esfuerzo por asimilar lo que era totalmente nuevo, y es interesante analizar que las instituciones privadas se han anticipado ante esto y se les da su merito preparan mejor a los muchachos en comparación a las publicas, ni hablar.


Pero siempre haciéndole una observación a la generación anterior, que han hecho al respecto? a parte de repetirnos que su educación fue mejor a la nuestra, hay que recordarles que nosotros somos el reflejo de ellos, no le encontraría sentido decir a la siguiente generación que nosotros somos mejores que ellos, para mi seria una vergüenza, seria de mayor orgullo que la siguiente fuera mejor que la nuestra y eso si seria de orgullo y un reflejo de desarrollo.

Comentarios (5)

Calibrar Gamepad o Joystick en GNU/Linux

Hace unos días tenia ganas de poder utilizar mi gamepad que es un Saytek P880 Dual Analog, para mi sorpresa mi Debian testing me reconoció en caliente el dispositivo de juego, la salida de mi lsusb es la siguiente

Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 003: ID 06a3:0109 Saitek PLC
Bus 001 Device 001: ID 0000:0000

Entonces después de ahorrarme el típico dolor de cabeza de hacer funcionar el gamepad entonces nada mas requería poder calibrarlo así que encontré la herramienta la cual es jscalibrator, nada mas basta instalarlo con apt-get, lo malo es que la interfaz esta hecha con gtk 1.0 por eso se ve algo tosco, aca dejo una captura de pantalla.

Comentarios (0)

Generar paquetes deb a partir de las fuentes


Los paquetes deb son como decir los instaladores ejecutables de windows (*.exe o *.msi) pero estos son para debian, existen también los rpm (Redhat Package Manager),igual estos ultimos se pueden usar en debian, pero el objetivo es crear instaladores nativos para debian, como se generan los paquetes deb?

Pues la respuesta es sencilla a partir del código fuente de la aplicación que queremos convertir.

Lo primero es que debemos tener instalado es el checkinstall, si en dado caso no lo esta, lo instalamos

# apt-get install checkinstall

Debemos descomprimir las fuentes de la aplicación que queremos generar nuestro paquete deb

$ tar -xvf misfuetes.tar.bz2
$ cd misfuentes

Procedemos a compilar las fuentes con el clásico

$ ./configure && make

Muchos dirán y el make install que paso? este se sustituye por el comando checkinstall para generar el paquete deb, se debe ejecutar como root

# checkinstall

Despues hara algunas preguntas como la descripción del paquete deb, el tipo de licencia etc, luego que lo genera lo instala de vez, si en dado caso lo queremos desinstalar usamos apt-get o synaptic y allí aparecerá.

Con el paquete deb generado ya no tendremos que compilar las fuentes cada vez que lo queremos instalar nada mas debemos cumplir las dependencias de dicho paquete.

La forma de instalar es

# dpkg -i mipaquete.deb

Y para cumplir las dependencias

# apt-get install -f

De esta forma dejamos un instalador listo para usarse en cualquier momento.

Comentarios (2)

Instalar Debian desde una memoria USB

Hace unos días me entro la curiosidad si podía instalar debian desde mi memoria usb, entonces me dispuse a googlear para saber como se hacia.

Lo primero es preparar la memoria usb para poder bootear desde ella, se puede formatear usando gparted, la memoria debe de tener sistema de ficheros fat16 y marcar las flags con boot.

Luego debemos de bajarnos el archivo boot.img.gz para preparar la memoria que se pueda arrancar con ella en la siguiente dirección

En ese directorio aparecen otros dos archivos esos se utilizan para hacerlo paso a paso, pero yo aquí explicare la forma sencilla.

Ahora que tenemos el archivo procedemos a preparar la memoria

# gzip -dc boot.img.gz > /dev/sdb1

NOTA: Es importante tener en cuenta que después de ejecutar la instruccion anterior se borraran todos los datos de la memoria, asi que seria prudente hacer copias de respaldo.

La operacion anterior tardara un poco, cuando ya este listo necesitamos una imagen ISO que quepa en la memoria usb, puede ser la imagen de un cd de debian netinstall, stable o testing, etc, ya hecha la eleccion basta nomas con copiar la imagen a la memoria.

Hay que recordar habilitar en la bios que se pueda bootear desde una memoria usb, reinciamos y hacemos nuestra instalacion.

Comentarios (7)

Feliz Navidad 2007

Este 25 de diciembre después de amanecer con un leve dolor de cabeza a causa de la fanfarria de la noche buena, revise mi correo y encontré un mail del sr byte y adjunto una pequeña imagen de "feliz navidad" al estilo informático que le caracteriza, aca lo comparto con ustedes.

Comentarios (0)

Empaquetamiento Básico para Debian

El día de hoy me he apuntado a la lista de Debian hispano y al revisar la lista me encontré con un interesante charla de la argentina Marga Monterola del equipo de mantenedores y desarrolladores del proyecto de Debian que se dio en el irc de la distro irc.debian.org en el canal #debian-devel-es y el tema era Empaquetamiento básico, espero que sea de su agrado y les motive para empezar a hacer algo significativo para la comunidad mundial del proyecto, por mi parte ya he empezado a documentarme.


Comentarios (0)

Servidor FTP con usuarios virtuales


Para montar nuestro servidor ftp sencillo utilizaremos pure-ftpd, el cual es sencillo de configurar y de crear usuarios virtuales, además de ser seguro.

Instalando pure-ftpd

# apt-get install pure-ftpd

Luego de esto debemos parar el demonio

# /etc/init.d/pure-ftpd stop

Creando usuarios

Para empezar a usar pure-ftpd necesitamos crear un usuario local pero de esos bien garra para que no tenga acceso al sistema.

# groupadd ftpgroup

# useradd ftpuser -g ftpgroup -d /dev/null -s /bin/false

El usuario no tiene ni shell ni directorio inicial, para que no pueda acceder al sistema.

Creando usuarios virtuales

El comando que se utiliza para la gestion de usuarios virtuales es pure-pw, asi que procedemos a crear nuestro nuevo usuario virtual

# pure-pw useradd [usuario] -u ftpuser -g ftpgroup -d [directorio/de/trabajo]

Nos pedirá una contraseña y la asignamos, para que los cambios tengan efecto en la "base de datos" de pure-ftpd debemos ejecutar la siguiente instrucción

# pure-pw mkdb

Si queremos ahorrarnos ejecutar siempre la instrucción anterior al hacer un cambio en la base de datos nomas debemos agregar el parámetro -m cuando agreguemos, modifiquemos o eliminemos usuarios.

Ejecutando el servidor

Para que esto se cumpla debemos ejecutar

# pure-ftpd -j -l puredb:/etc/pure-ftpd/pureftpd.pdb &

Pero es tedioso siempre tener que ejecutar esa instrucción para que arranque el servidor entonces es recomendable crear un script con esa linea, darle permisos de ejecucion +x y colocarlo en el directorio /etc/init.d/ asi siempre que iniciemos nuestro ordenador se ejecutara el servidor.

#Actualizacion Miércoles 27 de Febrero 2008

Cuando por casualidad queremos arrancar el servicio de ftp aparece el siguiente error

Unable to start a standalone server: Address already in use

Para resolverlo tenemos que editar el archivo inetd.conf

# nano /etc/inetd.conf

y comentar la linea que dice

ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper

Debe quedar de la siguiente manera

#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper

Por ultimo nada mas resta guardar el archivo y reiniciar el servicio ftp.

Comentarios (2)

Instalando y configurando PostgreSQL en Debian GNU/Linux


He aquí que publico una pequeña guía para instalar PostgreSQL en Debian GNU/Linux, por que no lo explico para el sistema operativo de ventanas? pues por la razón de que es un desperdicio tener que explicar una ventana next, next, finish, y por que me da una weba de las brutales.

Antes que nada debemos tener bien configurado nuestro repositorio, yo utilizo los repositorios oficiales (incluyendo el de La Universidad de El Salvador, que tambien es oficial, lo pueden verificar en la lista de mirrors oficiales en www.debian.org)

deb http://debian.ues.edu.sv/debian etch main

Asumiendo que se ha agregado un repositorio oficial y el respectivo apt-get update, procedemos a instalar PostgreSQL yo en este momento tengo la versión 8.2 aunque la verdad no le veo diferencia significativa con respecto a la 8.1, si la hay y no la he notado me sabrán decir.

# apt-get install postgresql-8.2

Luego de instalado debemos crear un primer usuario para empezar a conectarnos con la base de datos, de preferencia es saludable es crear el nuevo usuario con el mismo nombre de tu cuenta del sistema, NO ROOT.

# su postgres
$ createuser dani

No hara la pregunta

¿Será el nuevo rol un superusuario? (s/n)

Por supuesto que la respuesta que debemos dar es si

Luego de esto debemos asignarle contraseña a nuestro nuevo súper usuario
$ psql postgres

y obtenemos un nuevo prompt
postgres=#

y escribimos

postgres=# alter user dani with password 'mi_nuevo_password';

Luego de esto salimos del cliente de postgres con \q

Ahora procedemos a configurar el acceso a desde otras maquinas a mi servidor de base de datos, para ello modificaremos los archivos postgresql.conf y pg_hba.conf

# nano /etc/postgresql/8.2/main/postgresql.conf

Buscamos la linea que esta comentada y que dice

# listen_addresses = 'localhost'

La descomentamos y cambiamos el valor de localhost por "*" que debe quedar así

listen_addresses = '*'

Guardamos y cerramos el archivo, después editamos el archivo pg_hba.conf para dar permisos de acceso a nuestro servidor de base de datos desde otras maquinas, yo lo configurare para que puedan accesar cualquier maquina de mi LAN.

# nano /etc/postgresql/8.2/main/pg_hba.conf

Nos vamos al final del archivo y debe de aparecer algo similar a esto

# TYPE DATABASE USER CIDR-ADDRESS METHOD
#"local" is for Unix domain socket connections only

local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust

Debemos cambiar donde diga trust a password, para tener acceso a las bases de datos a través de un password y agregar una linea al final del archivo para acceso de las maquinas de mi LAN

host all all 192.168.1.1/24 password

Al final todo debe quedar así

# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all password
# IPv4 local connections:
host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 password
host all all 192.168.1.1/24 password

Guardamos el archivo y lo cerramos, por ultimo nos basta nada mas reiniciar el servidor de postgres

# /etc/init.d/postgresql-8.2 restart

Si queremos un cliente gráfico para postgres podemos instalar pgadmin3 o phppgadmin este ultimo es similar a phpmyadmin para MySQL

Me despido muy atentamente.

Comentarios (2)

JPGraph y Periodo de fechas

Cuando queremos generar gráficas, queremos que estas sean en función de periodo de tiempo y lo ideal es que ese periodo se genere una escala automática, es decir, si el periodo es corto la escala debería de estar en horas, minutos o incluso segundos, si la escala es mayor debería ser por días, como también años.

La libreria JPGraph escala las fechas por nosotros pero debemos dejarla para que la procese en formato timestamp, y se hace de la siguiente manera:

require_once("jpgraph/jpgraph.php");
require_once(
"jpgraph/jpgraph_line.php");
require_once(
"jpgraph/jpgraph_date.php");

$data=array();
$xdata=array();

// Generamos un periodo de fecha para convertir

$data[0]="2007-12-22 01:00:00";
$data[1]="2007-12-23 01:00:00";
$data[2]="2007-12-24 01:00:00";
$data[3]="2007-12-25 01:00:00";
$data[4]="2007-12-26 01:00:00";
$data[5]="2007-12-27 01:00:00";
$data[6]="2007-12-28 01:00:00";
$data[7]="2007-12-29 01:00:00";
$data[8]="2007-12-30 01:00:00";

for ($i;$i<count($data);$i++) {
// Se debe separar la fecha para luego poder convertirla a timestamp
list($ano,$mes,$dia,$hora,$minuto,$segundo,)=split('[-, ,:]',$data[$i]);
// La funcion mktime() requiere por cada elemento de la fecha especifica para poder convertirla
$xdata[$i]=mktime($hora,$minuto,$segundo,$mes,$dia,$ano);
}


// Luego basta crear la escala de datos
$mayor=max($data);
$minimo=min($data);

// Teniendo las fechas ya formateadas, ya nos sirve de insumo para la grafica
$graph = new Graph(650,350);
$graph
->SetMargin(40,40,30,130);
$graph->SetScale('datlin',$minimo,$mayor);
$graph->title->Set("Grafica");

$graph->xaxis->SetLabelAngle(90);

$line = new LinePlot($data,$xdata);

$line->SetFillColor('lightblue@0.5');
$graph->Add($line);
$graph->Stroke();

El resultado se puede ver parecido a este ejemplo que tengo en mi aplicación




Comentarios (3)

Graficando con PHP

Cada vez la programación web se esta volviendo casi como programar una aplicación de escritorio y en muchos casos necesitamos de herramientas estadísticas como lo son los gráficos, así que en php podemos hacer uso de la librería jpgraph el cual se puede obtener mediante la siguiente dirección

Que necesito para usar la librería?

Nada mas tener habilitada la extensión GD de php para poder usar esta librería.

En windows:
Editar el archivo php.ini y configurar la linea

extension_dir="./"

debe de quedar
extension_dir="C:/ruta/php/extensions"

y descomentar la linea

;php_gd.dll
o si es el caso
;php_gd2.dll

Se debe quitar ";" guardamos el archivo y reiniciamos apache o IIS si es el caso.

En el caso de Debian:

# apt-get install phpx-gd

donde x es la version de php ya sea "4" o "5", por ultimo reiniciar apache

# /etc/init.d/apache2 restart

Como instalo la librería?

Nada mas se debe descomprimir en la ruta donde las queremos usar.

El uso es sumamente fácil un ejemplo para generar un código de barra seria:

imagen.php

include ("ruta/de/libreria/jpgraph.php");
include (
"
ruta/de/libreria/jpgraph_bar.php");

// Datos para el grafico de barra
$databar=array(12,7,16,5,7,14,9,3);

// Nueva grafica
$graph = new Graph(300,200,'auto');

// Aplicando sombra
$graph->SetShadow();

// Usando "text" X-escala
$graph->SetScale("textlin");

// Aplicando titulo a la grafica
$graph->title->Set("Grafica de barra con escala de texto");

// Aplicando fuente
$graph->title->SetFont(FF_FONT1,FS_BOLD);

// Generando las barras
$b1 = new BarPlot($databar);
$b1->SetLegend("Leyenda");


// Agregando las barras al grafico
$graph->Add($b1);

// Finalmente devuelve un tipo de imagen
$graph->Stroke();

El resultado se vería así


El archivo imagen.php se agrega en un src de la etiqueta img de html para ubicar la imagen en cualquier parte del documento html.

Comentarios (0)

Yo y mi nueva aventura

Como todo buen anfitrión tengo que dar la bienvenido a mi muy buen lector, la razón de este blog es aportar y compartir conocimiento sobre mis experiencias del sube y baja de las delicias de la vida en mi caso es la informática, para ello es imprescindible fomentar y difundir el software libre en mi querido país El Salvador al igual como en Centro y Latino América.

Expondré y explicare temas acerca de Software libre, GNU/Linux, programación, temas de actualidad y curiosidades que acontecen en mi vida, con un poco de humor con el cual me gusta explicar las cosas que me llaman la atención.

Y por ultimo agradecer a los amigos de la blogosfera por alentarme a crear este blog.

atte.-

Daniel Alberto Herrera

Comentarios (3)