Archivo de Diciembre 2008

h1

LAMP en Debian 4.0 etch

30 Diciembre 2008


bueno, puesno quice colocar este tema en la entrada anterior por considerarlo de interes solo para algunas personas, por lo general programadores, bien he aquí los pasos para la instalacion de LAMP

1.- configuramos la lista de fuentes para descargar efectivamente los paquetes desde los repositorios:
#nano /etc/apt/sourcers.list
y agregamos la siguinte linea:
deb http://ftp2.fr.debian.org/debian etch main contrib non-free
guardamos y salimos de ahi.
2.- acualizamos la lista de repositorios con el siguiente comando:
#aptitude update
3.- ahoraprocedemos a instalar los programas correspondientes:

Apache y Php5

#apt-get install apache2 php5 libapache2-mod-php5

los siguientes comandos nos permitiran iniciar, detener y reiniciar el servidor apache

#/etc/init.d/apache2 start
#/etc/init.d/apache2 stop
#/etc/init.d/apache2 restart

para comprobar si esta funcionando apache, es solo cosa de ir a la siguiente direccion: http://localhost

MYSQL

#apt-get install mysql-server mysql-client php5-mysql

Lamentablemente se nos creará una cuenta root sin contraseña, por lo que deberemos asignarle una de la siguiente manera:

#mysql -u root
mysql> use mysql
mysql> UPDATE user SET Password=PASSWORD(‘pon-tu-contraseña’) WHERE user=’root’;
mysql> FLUSH PRIVILEGES;
mysql> exit

NOTA: Donde dice pon-tu-contraseña, es obvio que debes reemplazarla por una contraseña que solo tu conozcas.

PHPMYADMIN

# apt-get install phpmyadmin

Y eso sería tenemos, listo nuestro servidor LAMP, a programar se ha dicho.

by AngerRising

h1

Refinando Debian 4.0 (Etch)

29 Diciembre 2008

Mi notebook (un Compaq Presario M2000) estaba funcionando con la distribucion de ubuntu 8.04, no la habia querido cambiar puesto que no me gustó para nada la version 8.10 que instalé en mi PC pues era demaciado pesado e inestable.
El asunto fue que empecé a tener problemas de rendimiento finalmente con ubuntu, el notebook comenzó a andar lento y ya no podia programar tranquilamente, por lo que decidí intalar una nueva distribucion, pense en un principio en gentoo pero la verdad no me la pude en la instalacion, pues me tiraba muchos errores en la instalacion y como queria algo rapido termine bajo el poder de debian 4.0, anteriormente tb lo habia instalado pero durante las clases n o tenia tiempo de andar calentandome ahun mas la cabeza pero ahora le he sacado las panas que comienzan desde la wifi, hasta lo mas insignificante como descomprimir un archivo 7zip

En si me ha gustado mucho debian 4.0 y creo que tendre para rato con el sistema, pues se ve bastante estable, no le pondré efectos de escritorio 3d y todas las parafernalias pues quiero algo simple para mi arcaico notebook.

bueno y para poner manos a la obra empezaré explicando como solucionar la molesta configuracion por defecto de nautilus, donde se abren y abren ventanas y para solucionarlo haremos lo siguiente:

NAUTILUS

1.- Abrimos una carpeta cualquiera.
2.- En la barra superior nos vamos al menu “Editar>Preferencias”.
3.- Nos aparecerá una ventana y pinchamos la pestaña “Comportamiento”.
4.- En la nuva ventana pinchamos en el combobox que dice: “Siempre abrir en una ventana de navegador”.

Drivers de mi WIFI

1.- lo primero es saber que tarjeta wifi tenemos en nuestro laptop o PC por lo que debemos abrir una consola y ejecutar el siguiente comando:
$ lspci | grep Wireless
02:06.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
2.- En mi caso hay que descargar el siguiente driver: http://ipw2200.sourceforge.net/firmware.php
3.- Extraemos el driver de la siguiente manera:
# tar xzvf ipw2200-fw-3.0.tgz
ipw2200-fw-3.0/
ipw2200-fw-3.0/ipw2200-bss.fw
ipw2200-fw-3.0/ipw2200-sniffer.fw
ipw2200-fw-3.0/LICENSE.ipw2200-fw
ipw2200-fw-3.0/ipw2200-ibss.fw
4.- ingresamos al directorio creado y listamos el contenido:
# cd ipw2200-fw-3.0
# ls
ipw2200-bss.fw ipw2200-ibss.fw ipw2200-sniffer.fw LICENSE.ipw2200-fw
5.- se copia el driver en el lugar indicado:
# cp * /usr/lib/hotplug/firmware/
6.- y finalmente se cargan los modulos
# rmmod ipw2200
# rmmod ieee80211
# modprobe ipw2200
# iwconfig

Compresores

7zip

1.- Descargamos el paquete de la siguiente url:
aqui
2.- Descomprimimos el paquete desde consola:
# tar xzvf p7zip_4.61_x86_linux_bin.tar.bz2
3.- Entramos al directorio
# cd p7zip_4.61
4.-Instalamos la aplicacion:
# ./install.sh
- installing /usr/local/bin/7za
- installing /usr/local/bin/7zr
- installing /usr/local/lib/p7zip/7zCon.sfx
- installing /usr/local/bin/7z
- installing /usr/local/man/man1/7z.1
- installing /usr/local/man/man1/7za.1
- installing /usr/local/man/man1/7zr.1
- installing /usr/local/share/doc/p7zip/README
- installing /usr/local/share/doc/p7zip/ChangeLog
- installing HTML help in /usr/local/share/doc/p7zip/DOCS

5.- Ahora a descomprimir el archivo como lo hacemos de costumbre, click derecho y descomprimir

RAR

1.- descargar este packete deb:
aqui
2.- abrimos una consola en modo root y ejecutamos el siguiente comando:
dpkg -i rar_3.7b1-2_i386.deb
3.- listo a descomprimir se ha dicho :)

Codecs

1.- primero agregamos el repositorio correspondiente en /etc/apt/sources.lis
deb http://www.debian-multimedia.org/ etch main
2.- actualizamos la lista de repositorios con el siguiente comando:
#aptitude update
3.- y ahora añadimos los codecs de windows:
#aptitude install w32codecs
4.- con esto ya deberiamos poder escuchar MP3 por lo menos :D


by AngerRising

h1

conexion a base de datos con patrón singleton en PHP

24 Diciembre 2008


Hola, hace mucho que no redactaba un articulo de programación y en esta ocación será referente a la conexión de la base de datos con el patron de diseño singleton.

¿QUE ES SINGLETON?

“El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.
Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.”

fuente: Wikipedia

CONFIGURAR BASE DE DATOS

lo primero que haremos será abrir el navegador web a preferencia y nos vmos a http://localhost/phpmyadmin desde allí crearemosuna base de datos llamada HOLA, ingresamos en ella e ingresamos el siguiente sql:

create table hi ( hihi varchar(50));
insert into hi values (‘mensaje’);

pero si son mas fanaticos de la consola, realizamos los siguientes pasos:

1.- ingresamos a mysql de la siguiente manera:
bastian ~ $ mysql -h localhost -u root -p
Enter password:

2.-ahora que estamos dentro de mysql, creamos la base de datos con el siguiente comando:
mysql> create database hola;
Query OK, 1 row affected (0.04 sec)

3.- ahora revisamos que la base de datos ha sido creada con el siguiente comando:
mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| hola               |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

4.- ahora accesamos a la base de datos que acabamos de crear de la siguiente manera:
mysql> use hola
Database changed

5.- ahora creamos una tabla llamada HI, con un campo llamado HIHI tipo varchar(50).
mysql> create table hi ( hihi varchar(50));
Query OK, 0 rows affected (0.52 sec)

6.- para comprobar que realmente se creó la tabla dentro de la base de datos escribimos lo siquiente:
mysql> show tables;

+----------------+
| Tables_in_hola |
+----------------+
| hi             |
+----------------+
1 row in set (0.00 sec)

7.- y ahora realizamos un insert para que despues podamos realizar la consulta a la base de datos desde el programa.
mysql> insert into hi values (‘mensaje’);
Query OK, 1 row affected (0.0
0 sec)

MANOS A LA OBRA

bueno, ahora que ya tenemos la base lista para poder ejecutar el codigo extraído de cristalab, el cual pasaré a explicar las clases que usaremos:

config.php
<?php
//Datos de configuración de la conexión a la base de datos

//Servidor
$host=’localhost’;

//Usuario
$user=’root’;

//Password
$password=’contraseña’;

//Base de datos a utilizar
$db=’hola’;

?>

el archivo config.php nos guardará la informacionde configuracion necesaria para la conexion con la base de datos, pues  es una buena practica separar la informacion de la base de datos y el codigo.

Conf.class.php
<?php

class Conf{
private $_domain;
private $_userdb;
private $_passdb;
private $_hostdb;
private $_db;

static $_instance;

private function __construct(){
require ‘config.php’;
$this->_domain=$domain;
$this->_userdb=$user;
$this->_passdb=$password;
$this->_hostdb=$host;
$this->_db=$db;
}

private function __clone(){ }

public static function getInstance(){
if (!(self::$_instance instanceof self)){
self::$_instance=new self();
}
return self::$_instance;
}

public function getUserDB(){
$var=$this->_userdb;
return $var;
}

public function getHostDB(){
$var=$this->_hostdb;
return $var;
}

public function getPassDB(){
$var=$this->_passdb;
return $var;
}

public function getDB(){
$var=$this->_db;
return $var;
}

}

?>

Esta clase es la que nos manejará la conexion con la base de datos utilizando el patron de diseño SINGLETON retornandonos la instancia del objeto por medio de la funcion estatica llamada getInstance(), fijense tambien que hay una funcion llamada __clone(), esta nos devolverá un clon de la instancia de este objeto ya que como sabemos singleton nos prohivirá hacer una copia de este objeto y si por algun modo necesitamos clonarlo ahi tenemos la solucion, solo sirve bajo php5.

Db.class.php
<?php
/* Clase encargada de gestionar las conexiones a la base de datos */
class Db{

private $servidor;
private $usuario;
private $password;
private $base_datos;
private $link;
private $stmt;
private $array;

static $_instance;

/*La función construct es privada para evitar que el objeto pueda ser creado mediante new*/
private function __construct(){
$this->setConexion();
$this->conectar();
}

/*Método para establecer los parámetros de la conexión*/
private function setConexion(){
$conf = Conf::getInstance();
$this->servidor=$conf->getHostDB();
$this->base_datos=$conf->getDB();
$this->usuario=$conf->getUserDB();
$this->password=$conf->getPassDB();
}

/*Evitamos el clonaje del objeto. Patrón Singleton*/
private function __clone(){ }

/*Función encargada de crear, si es necesario, el objeto. Esta es la función que debemos llamar desde fuera de la clase para instanciar el objeto, y así, poder utilizar sus métodos*/
public static function getInstance(){
if (!(self::$_instance instanceof self)){
self::$_instance=new self();
}
return self::$_instance;
}

/*Realiza la conexión a la base de datos.*/
private function conectar(){
$this->link=mysql_connect($this->servidor, $this->usuario, $this->password);
mysql_select_db($this->base_datos,$this->link);
@mysql_query(“SET NAMES ‘utf8′”);
}

/*Método para ejecutar una sentencia sql*/
public function ejecutar($sql){
$this->stmt=mysql_query($sql,$this->link);
return $this->stmt;
}

/*Método para obtener una fila de resultados de la sentencia sql*/
public function obtener_fila($stmt,$fila){
if ($fila==0){
$this->array=mysql_fetch_array($stmt);
}else{
mysql_data_seek($stmt,$fila);
$this->array=mysql_fetch_array($stmt);
}
return $this->array;
}

//Devuelve el último id del insert introducido
public function lastID(){
return mysql_insert_id($this->link);
}

}

?>

la clase Db.class.php nos permitirá realizar query’s a la base de datos por medio de las funciones ejecutar($sql), obtener_fila($stmt,$fila) y lastID() las cuales estan muy bien explicadas en los comentarios dentro dela clase.

ejemplo.php
<?php
/*Incluimos el fichero de la clase Db*/
require ‘Db.class.php’;
/*Incluimos el fichero de la clase Conf*/
require ‘Conf.class.php’;

/*Creamos la instancia del objeto. Ya estamos conectados*/
$bd=Db::getInstance();

/*Creamos una query sencilla*/
$sql=’SELECT * FROM hi’;

/*Ejecutamos la query*/
$stmt=$bd->ejecutar($sql);

/*Realizamos un bucle para ir obteniendo los resultados*/
while ($x=$bd->obtener_fila($stmt,0)){
echo $x['hihi'].’<br />’;
}

?>

y aqui esta la clase de ejemplo, la cual realizará un select a la tabla HOLA y por medio del  while mostraremos las filas del campo HIHI

y seria, espero les sirva asi como me ha servido a mi

by AngerRising

h1

Cambiar formato del reloj de GNOME

15 Diciembre 2008

hoy enchulando mi escritorio vi una imagen donde salia el reloj de Linux en un formato diferente al usual, incluso hasta con colores, por lo que aqui les dejo los pasos y el formato que le deje a mi reloj, espero les guste :D

1.- primero entramos a gconf-editor de la siguiente manera:
1.1.- presionamos la combinacion <<alt>> + <<F2>>
1.2.- escribimos gconf-editor y pulsamos el boton ejecutar

2.- luego nos vamos recorriendo el árbol del lado izquierdo hasta llegar a la carpeta prefs.
2.1 apps > panel > applets > clock_screen > prefs

3.- En el campo custom_format escribimos lo siguiente
<span size="smaller" color="#c8c8c8">%A %d %B </span><span color="#c8c8c8" ><b>%H:%M</b></span>

4.- En el campo format escribimos custom.

Bueno luego cerramos el editor y listo, quedará nuestro reloj personalizado, el mio quedó con una apariencia mas o menos como esta.

reloj

espero les alla gustadohasta la proxima.

Fuente: rigea

by AngerRising.-

h1

Instalacion de Tomcat5.5 Ubuntu 8.10

8 Diciembre 2008

Bueno, esta vez les traigo como instalar y hacer algunas configuraciones respecto a la instalacion de tomcat5.5 bajo Ubuntu 8.10.

¿QUE ES TOMCAT?

Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems.

Tomcat es un servidor web con soporte de servlets y JSPs. Tomcat no es un servidor de aplicaciones, como JBoss o JOnAS. Incluye el compilador Jasper, que compila JSPs convirtiéndolas en servlets. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache.

Tomcat puede funcionar como servidor web por sí mismo. En sus inicios existió la percepción de que el uso de Tomcat de forma autónoma era sólo recomendable para entornos de desarrollo y entornos con requisitos mínimos de velocidad y gestión de transacciones. Hoy en día ya no existe esa percepción y Tomcat es usado como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad.

Dado que Tomcat fue escrito en Java, funciona en cualquier sistema operativo que disponga de la máquina virtual Java.

Fuente: wikipedia

bueno, ahora procedemos a su instalación

1.- instalamos el JDK6, el Eclipse y tomcat con el siguiente comando
sudo apt-get install eclipse sun-java6-jdk tomcat5.5 tomcat5.5-webapps
2.- ahora instalamos el administrador web de tomcat (es opcional pero yo prefiero tenerlo)
sudo apt-get install tomcat5.5-admin

con eso ya tenemos Tomcat 5.5 en nuestro sistema, ubicado en los siguientes directorios

/etc/tomcat5.5: Los se encuentran los ficheros de configuracion de tomcat, tales como el server.xml que nos permite cambiar el puerto de arranque.

/usr/share/tomcat5.5: Es el directorio principal de tomcat, en la subcarpeta /bin estan los scripts que nos permiten iniciar o detener tomcat deforma manual.

/usr/share/tomcat5.5-webapps: Aqui almacenamos las aplicaciones web desplegados en tomcat o las aplicaciones de ejemplo que trae.

Con los siguientes comandos podemos iniciar o detener el servidor por medio de root

$ sudo /etc/init.d/tomcat5.5 start
* Starting Tomcat servlet engine tomcat5.5                           [ OK ]

$ sudo /etc/init.d/tomcat5.5 stop
* Stopping Tomcat servlet engine tomcat5.5                           [ OK ]

Al instalar el sun-java6-jdk este se ubicará en el siguiente directorio:

/usr/lib/jvm/java-6-sun

y añadimos el directorio a la variable de entorno JAVA_HOME para que nos reconozca el JDK que utilizaremos, quedandonos de la siguiente manera:

$JAVA_HOME = /usr/lib/jvm/java-6-sun

pero para no tener que estar realizando siempre la misma configuracion, lo guardaremos en el archivo llamado catalina.sh de la siguiente manera:

$ gedit /usr/share/tomcat5.5/bin/catalina.sh

y al comienzo del script añadimos ya la ruta a donde esta nuestro JDK:

JAVA_HOME=/usr/lib/jvm/java-6-sun

Y nos despreocupamos. Ahora si intentamos volver a arrancar:

$ ./startup.sh

root@soledad:/usr/share/tomcat5.5/bin# pwd
/usr/share/tomcat5.5/bin
root@soledad:/usr/share/tomcat5.5/bin# ./startup.sh
Using CATALINA_BASE:   /usr/share/tomcat5.5
Using CATALINA_HOME:   /usr/share/tomcat5.5
Using CATALINA_TMPDIR: /usr/share/tomcat5.5/temp
Using JRE_HOME:       /usr/lib/jvm/java-6-sun

bueno, ahora deberia estar funcionando nuestro servidor y para comprobarlo simplemente abrimos un navegador web  y nos vamos a la siguiente direccion:

http://localhost:8180

el puerto puede ser diferente, prueba a cambiambiarlo en el archivo server.xml

Espero les sirva, cualquier problema me gustaria que avisaran para corregirlo ;)

Fuente: aqui
adaptado por AngerRising