miércoles, noviembre 29, 2006

.........

Me lleva la chingada y después de mirar que hay de comer. Tengo que comer y mejor hago lo que tengo que hacer..

Héroes del Silencio - Flor de Loto

Nunca fue tan breve una despedida
nunca me creí que fuera definitiva
nunca quise tanto a nadie en mi vida
nunca a un ser extraño le llamé mi familia

Nunca tuve fe en mi filosofía
nunca tuve yo ni gurú no guía
nunca desprecié una causa perdida
nunca negaré que son mis favoritas

Esta es mi flor de loto
y yo era su sombra
esta es mi flor de loto
mi mundo no se aclarará
tanto vagar para no conservar
nunca nada

Nunca una llama permanece encendida
nunca aguanté su calor
nunca más, nunca más de un día
nunca desprecié ser un alma invadida
hasta que vi frente a mí por quién yo moriría

Esta es mi flor de loto
y yo era su sombra
esta es mi flor de loto
mi mundo no se aclarará
tanto vagar para no conservar
nunca nada

Querrás tu rectificar
las líneas de mis manos
¿quién esparcirá al azar los posos del café?
¿Y qué decía la bola de cristal
cuando echó a rodar?
¿Qué más puedo necesitar?
Tengo algo que perder
¡no puedo perder!

Flor de loto
flor de loto
flor de loto
fácil es buscar
fácil no encontrar

Querrás tu rectificar
las líneas de mis manos
¿quién esparcirá al azar los posos del café?
¿Y qué decía la bola de cristal
cuando echó a rodar?
¿Qué más puedo necesitar?
Tengo algo que perder
¡no puedo perder!

martes, noviembre 21, 2006

Me siento cansado =\

Hace un par de semanas me habia sentido mal, las razones no lo sé, pero se me habia hecho constumbre marearme seguido y un dolor en el estomago un poco fuerte. Definitivamente no sé bien lo que pase, es bastante raro y más por que hace un año tenía suficientes animos para hacer absolutamente lo que se me viniera en gana, ir a la escuela, ir a curso de GNU/Linux, dormir poco, etc. No sé bien pero podrían ser los años XD..

Por el momento me he estado tomando un medicamento llamado DOLO-NEUROBION FORTE para supuestamente disminuir los dolores constantes de cabeza, que resultaba ya molestoso aguantarlo diariamente..

Y aquii se termina mi historia, ha llegado mi hermana para imprimir y bueno ><, es lo que hay...

Saludos!!

martes, noviembre 14, 2006

Aprendan C++ como Beto xD

Nada, solo para presumirles que tienen que aprender c++ como el sobrinito de hilda :D..



Saludos!! =P

viernes, noviembre 03, 2006

Detectar problemas de hardware con GNU/Linux

Desde ayer en la mañana me di la tarea de empezar a buscar si mi hardware tiene algún tipo de problema, las razones que me llevaron a esto es por que al momento de compilar con emerge me saltaban errores con paquetes que sin motivo aparente a veces compilaban e instalaban y otras no, estos errores terminan con un aviso diciendo que posiblemente se debía ha problemas de hardware o del Sistema Operativo. En fín, me puse a investigar y aqui les traigo como un resumen de lo que he hecho (a lo largo de mi aprendizaje con GNU/Linux), al último pongo las referencías correspondientes..


Problemas de Discos:

Generalmente este errores llevan consigo respuetas lentas por parte del sistema, generalmente al mover grandes cantidades de archivos ó en sistemas con algún tipo de escritorio gráfico (desktop) como puede ser KDE o GNOME..

Lo primero a verifícar es que los discos correspondiente tengan activado el DMA (Acceso Directo a Memoria), para ello existe una herramienta bastante útil llamada hdparm (dejo a un lado la forma de instalación), para mirar si esta deshabilitado el soporte a DMA y algunas otras cuestiones hacemos:

UnderHouse linux # hdparm /dev/hda

/dev/hda:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 16383/255/63, sectors = 156368016, start = 0


Como vemos, yo tengo soporte DMA en la línea "using_dma = 1 (on)" en caso de obtener un "using_dma = 0 (off)" podemos activarlo con un simple:

UnderHouse linux # hdparm -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)


Otra cuestión importante a verificar es que nuestro disco no tenga sectores dañados o corruptos, para ello usaremos fsck y sus variantes fsck.sistema_de_archivos, por ejemplo fsck.ext3. Yo alguna vez correji errores que no me permitian inicar el sistema y en su caso usé:

UnderHouse linux # fdisk -l

Disco /dev/hda: 80.0 GB, 80060424192 bytes
255 cabezas, 63 sectores/pista, 9733 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hda1 1 5542 44516083+ 83 Linux
/dev/hda2 8969 9733 6144862+ 83 Linux
/dev/hda3 5543 8968 27519345 f W95 Ext'd (LBA)
/dev/hda5 5543 5611 554211 82 Linux swap / Solaris
/dev/hda6 5612 8968 26965071 83 Linux

Las entradas de la tabla de particiones no están en el orden del disco

Disco /dev/hdb: 30.6 GB, 30616363008 bytes
255 cabezas, 63 sectores/pista, 3722 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hdb1 * 819 3722 23326380 83 Linux
/dev/hdb2 1 818 6570553+ 83 Linux


fsck.ext3 -a /dev/hda6


Problemas de CPU:

Para detectar problemas de CPU (unidad central de proceso) es necesario darle un tarea que gaste al 100% el CPU para poder estar seguros que su rendimiento es el correcto, en este caso buscando en la documentación de de gentoo me encontre con un script que he modificado un poco, quedando asi:

#!/bin/bash

ver=`uname -r | cut -d '.' -f 2`

while [ "foo" = "foo" ]
do

# Paso adicional para los kernels ver. 2.4
if [ $ver -eq '4' ]
then
make dep
fi

make clean
make -j2 bzImage
if [ $? -ne 0 ]
then
echo -e "Error, asegurece de tener las fuentes del kernel o de estar en e
l directorio:\n/usr/src/linux"
exit 1
fi
done


Basta con darle permisos de ejecución y ejecutarlo:

chmod u+x testCpu.sh
./testCpu.sh


Como verán, solo se trata de un simple ciclo de la compilación del kernel, proceso que es más que suficiente para cargar el cpu repeditamente =D, este script lo deje desde mañana aproximadamente unas 5 hrs, que recompilo el kernel unas 60 veces xD y sin ningún problema..

Screenshots:





Para quienes les interese hay un programa en la referencias para armar en ensamblador con el cuál podemos hacer un poco más agresivo la carga del CPU y sacar nuestras propias conclusiones con algún tipo de programa que monitoree el uso del CPU, la temperatura, etc..

Problemas de Memoria:

Memoria de Intercambio (Swap):

Para la swap no hay otra más que reparticionar por si hay algún problema al respecto, en este caso:

swapoff /dev/hda5 # particion correspondite a la swap
mkswap /dev/hda5
swapon /dev/hda5


Si quieres asegurarse que la swap ha sido desactivada y activada puede usar después de cada paso el uso de: df -ha

Memorian RAM:

Para ello utilizares el uso de Memtest86 o Memtest86+ ( http://www.memtest86.com/ ), este programa lo he utilizado ayer en la noche antes de acostarme y me ha detectado algunos erroes de Bits Perdidos, en total unos 304 xD, en gentoo basta con instalarlo y configurar el gestor de inicio (en mi caso GRUB) y ejecutarlo desde el menu al momento de reiniciar la pc.

#Para Memtest86+
- For grub:
> title=Memtest86Plus
> root (hd0,5)
> kernel /boot/memtest86plus/memtest.bin
- For lilo:
> image = /boot/memtest86plus/memtest.bin
> label = Memtest86Plus


#Para Memtest86
- For grub:
> title=Memtest86
> root (hd0,5)
> kernel /boot/memtest86/memtest.bin
- For lilo:
> image = /boot/memtest86/memtest.bin
> label = Memtest86


Un screenshot sacado de google xD:


Asi que lo más seguro es que sea problemas con la memoria RAM y falta ver si es la de 512 MB o la de 256MB..

Espero que sea de utilidad lo poco que he escrito, saludos!!

Referencias:
http://www.gentoo.org/doc/es/articles/hardware-stability-p1.xml#badmem
http://www.google.com.mx/linux

jueves, noviembre 02, 2006

La maldición 2


Dirección y guión: Takashi Shimizu.
País:
Japón.
Año: 2003.
Duración: 95 min.
Género: Terror.
Interpretación: Noriko Sakai (Kyoko Harase), Chiharu Niyama (Tomoka Miura), Kei Horie, Yui Ichikawa, Shingo Katsurayama.
Producción: Taka Ichise.
Música: Shiro Sato.
Fotografía:
Tokusho Kikumura.
Montaje: Nobuyuki Takahashi.
Dirección artística: Tokiwa Toshiharu.
Estreno en Japón: 23 Agosto 2003.
Estreno en España: 3 Septiembre 2004.


Una película que al menos en méxico la acaban de poner en cartelera (especificamente en Cinepolis xD). La historia es un poco confusa al principio pero al menos en esta segunda parte ha quedado muy clara, se trata de una tipa que a lo largo de su niñez ayudaba a su madre a sacar espiritus malvados de las personas y para tal efecto su madre hacia tragarse los espiritus a su hija, ya de grande la tipa se casa y su marido la termina matandola por un supuesto tipo que la chava queria o anhelaba xD, el caso es que desde ahi empieza toda la drama.

XD Se disfruta más estando con alguna persona que pegue gritos en el asiento xD (nótese que yo hiba con mi hermana xD) y las constantes apariciones de un niño morado y una mujer muy despeinada y cabello demasiado largo xD, a veces es absurdo que mi hermana gritaba solamente con ver a estos personajes, simples tomas de camara sin el más minimo escurrimiento de sangre. Además como estamos en fechas de muertos XD, los del cine traian a dos personas vestidos de fantasmas xD, mi hermana le pegaba casi un paro cardiaco cuando los veía rondar por la sala jajajajaja..

Bueno en fín, ojala este pronto hackerss online y les pueda pasar unos pdfs sobre la materia que estoy cursando en este semestre sobre Base de Datos, bastantes buenos :D..

Muy recomendable ver las dos partes de la película xD..

Saludos!!

miércoles, octubre 18, 2006

Bonito detalle =)

Hoy en la mañana en la uni ( no recuerdo que clases, la verdad =| ) estabamos esperando a que la siguiente clase empezará y llego madona, como siempre saludas y bueno, nos dio un bonito detalle xD nos regalo unas tarjetitas con un dibujo descriptivo de nosotros xD, aqui se los dejo:


Por cierto, hiba a ir al centro de conveciones a ver a Ricky Martin ( de gustos a gustos xD), esperamos lo haya podido tocar, besar, ver y demás cosas xDDDDDD..

Cambiando de ideas, hoy tuve una pesadilla horrible =(( (con la única fobía que tengo), según mi sueño andaba por mi cama una araña enorme =( (tarantula) y me pasaba por todo el cuerpo =S con sus patas peludas y yo sólo con una cobija y tapado de pies a cabeza =\, ojala que no pase de un sueño y listo, ya busque por todo el cuarto ( con un miedo de encontrarmela =$ ) y no encontre nada :D...

Un saludos ps!

domingo, octubre 15, 2006

Noticias Atrasadas xD

JAjaj después de mucho tiempo me decido a escribir algo..

Hay pocas cosas que decir, una es que hace como un mes fue mi cumpleaños y les doy gracías a todos aquellos que me felicitaron y en especial a mis amigos de la uni =P ( Madona, Reyna, Hilda, Sadiga digo Karina, David, Arturo, Antonio, Benjamin, y a todos los demás, perdón por no poner su nombre). A la sonsa :D por el único regalo realmente especial :D. No me extiendo mucho y mejor les paso una entrada del blog de Madona en su space (que por cierto, andaba medio pacheca cuando escribia xD )..

Space Madona ( acontecieminto con detalles y fotos xDDDDDDDDD )

Por otra parte hemos tenido una semana de examenes y mañana todavía hay uno más de Fisica ><"".. También le he movido un poco al Amsn para darle un toque y algunas funcionales extras a las por default. Screenshot:

Free Image Hosting at www.ImageShack.us

Plugins:

- Amsn Plus! ( similar a Msn Plus)
- Music (para mostrar y enviar canciones a travez de xmms, amarok, etc)

Skins:

- Emerald

Consultar para descargar plugins y skins: Web Amsn

También tengo cel. nuevo XD, es este: Mirar



Hackerss.com sigue caído =\ xD, ojala pronto se ponga online.

Yo sigo mirando algunas cosas de ActionScript, Java, Flash, Linux, etc, pronto espero escribir más tutos/guías/howtos/manuales o como se le llamen xD..

En fin, han pasados muchas cosas más pero no tengo todo el día para escribirlas XDD...

Si me quieren contactar mi núm. es: Preguntenle a mi representante :$ =""

Bueno es todo..

Saludos!!

miércoles, septiembre 20, 2006

1 año de USERS Linux GRATIS

Vaya ironías XD, hoy andaba por el cine y compre la revista de USERS Linux, tomamos un café con mi hermana, yo pedí un helado de café xD ( la verdad no recuerdo como se llama ), mientras le daba una revisadita a la revista. Llego la hora de entrar al cine, compranos un combo y un hotdog (sin comer, aunque seá el hotdog de platico sabe bueno) y entramos a ver la de la dama en el agua (algo media mafufa, pero en fín xD)..

Llegué a casa y navegaba por las páginas que comúnmente visito y da la casualidad que USERS Linux da como regalo sus publicaciones del primer año en formato PDF bajo licencía CC...

Para descargar: http://www.tectimes.com/magazines/LINUX/lnx025/cdonline/menu.htm

Bueno ahi se las dejo y que les seá de provecho, yo deseando que salga bien en el examen de Matemáticas IV XDDDDDDD =PPPPPPPPP..

miércoles, septiembre 13, 2006

Día 256, día del programador =P

Leyendo en Cofradía digital me encontre con que hoy es día del programador xD: http://es.wikipedia.org/wiki/Dia_del_Programador

Así que ps, felicidades a todos los programadores :D y de paso les dejo un pequeño programa usando POO ( que realmente no hace mucho xDDDDD)..

stringclass.h

//Evita la inclusion multiple del archivo de encabezado


#ifndef STRINGCLASS_H
#define STRINGCLASS_H

class Cadena{
protected:

char *texto;
unsigned int tamano;

public:

Cadena();
Cadena(int _tamano);
Cadena(char *_texto);
~Cadena();

char *Asignar(char *_texto);

char * operator = (char *_texto);
char * operator +=(char *_texto);

char *Texto();

void imprimir();

unsigned int tam();
};

#endif

stringclass.cpp


#include<stdio.h>
#include<stdlib.h>

#include "stringclass.h"

Cadena::Cadena(){
texto = NULL;
tamano = 0;
}

char *Cadena::Asignar(char *_texto){
tamano=0;
int j;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto=(char *)realloc(texto,tamano+1);
for (j=0; j<tamano ;j++)
texto[j]=_texto[j];
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;

}

Cadena::Cadena(int _tamano){
tamano=_tamano;
texto = (char *)malloc(tamano+1);
}

Cadena::Cadena ( char *_texto){
int j=0;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto = (char*)malloc(tamano);
for ( j=0; j<tamano; j++){
texto[j]=_texto[j];
}
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;

}
}

char *Cadena::Texto(){
if(texto)
return texto;
return "";
}

unsigned int Cadena::tam(){
return tamano;
}

void Cadena::imprimir(){
printf("El texto es: %s\n",texto);
}

Cadena::~Cadena(){
if(texto)
free(texto);
}

char *Cadena::operator =(char *_texto){
int j;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
if (tamano){
texto=(char *)realloc(texto,tamano+1);
for ( j=0 ; j<tamano; j++)
texto[j]=_texto[j];
texto[j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;

}

char *Cadena::operator += (char *_texto){
int tam=0;
int j;
tamano=0;
while (_texto[tamano]!=0)
tamano++;
while (texto[tam]!=0)
tam++;
if ( (tamano) && (tam)){
texto=(char *)realloc(texto,tam+tamano+1);
for ( j=0; _texto[j]!='\0' ;j++)
texto[tam+j]=_texto[j];
texto[tam+j]='\0';
}
else if(_texto){
free(texto);
texto=NULL;
return "";
}
return texto;
}


stringmain.cpp


#include<stdio.h>
#include<stdlib.h>

#include "stringclass.h"

int main(){
system("clear");

//Crea objetos

Cadena str1;
Cadena str2(10);
Cadena str4;

//Asigna valores

str2.Asignar("Jorge");
str1.Asignar("Hola como estas?");
str4 = "Buenos dias";
str4 += " Hola";

// Imprime valores

str2.imprimir();
str1.imprimir();
str4.imprimir();

//Usando método tam de la clase Cadena

printf("El tamanio de srtr2 es %d \n",str2.tam());

//Usando método Texto de la clase Cadena

printf("El texto de srtr2 es %c ",str2.Texto());

getchar();

return 0;

}

Para compilar: g++ stringclass.cpp stringmain.cpp -o stringclass

Yo por el momento ya empezaron las clases después de un rato de estar en paro xD, lo único relevante es la matería de estructura de datos, en la cuál, nos va a costar un poco ya que manejaremos java (si java, que casí ni nos enseñaron). Además nos traen dando vueltas por lo referente a lo horarios ><", espero cuando menos no salir más allá de las 14:00 Hrs.. ><""

t.|A|. xD

Saludos!!

viernes, septiembre 01, 2006

[ Política] Hablemos del informe y del sr. Lopez xD

Último informe del presidente de México

Qué paso? Nada que no supieramos, a falta de 7 min para que el FOX estuviera presente en el Palacio, los diputados y senadores interrumpieron la sesión y tomaron la tribuna.

Lo chistoso de todo esto fue la inclinación de los diputados y senadores del PRD hacía el movimiento que actualmente está llevando AMLO (el "peje"), consignas como el clásico voto por voto o Obrador! Obrador!. Es realemnte lamentable que en una sesión constitucionalmente clásica existan personas que trabajan por méxico realizando estos absurdos teatritos hacia el exterior. Que aquí eso ya erá lo de menos que esperabamos, pero en fín, el Presidente llego y cómo no pudo leer su informe, pues simplemente se presento y entrego su informe como estípulan las leyes méxicanas.

A las 21:00 Hrs el presidente mando un mensaje bajo cadena nacional, diciendo babosada y media, que para lo único que es cierto es que el país macroeconomicamente no esta mal. Lo que me parecio fastidioso es recalgar una y otra vez la Democracía existente, que posiblemnte no esta del todo estructurada como debería de ser, pero de que existe, existe, quién me lo niega?. Total, el ejemplo claro esta la toma de la tribuna jejeje XDDD, que vaya que eso no se lo hicieron a Salinas.

Sobre el cerco que se mantuvo sobre San Lázaro a fuera del Palacio es el simple resultado de la violencia que se ha dejado ver por los seguidores de la coalición por el bien de todos..

Lo que me gustaría ver es cuando aquellos personajes del PRD tengán que tratar con el presidente electo por el TRIFE ( que posiblemente seá Calderon), tarde o temprano tendrán que abandonar esta postura de apollo unanime al movimiento de AMLO, tarde o temprano tendrán que ponerse a trabajar, acordar tratos, leyes y vaya lo que su trabajo les compete..

Ahora pongamos un pogo de díalogo sobre el sr. Andres Manuel Lopez Obrador (si esta mal su nombre, disculpen xD), en su asamblea permamente (?) ó como se le puede llamar, subrayo el hecho de crear un gobierno representante del pueblo, ha pues que se oye muy chido, pero muchos se pregunta de donde obtendrá este gobierno para trabajar, cobrará impuestos?, de donde sacaran presupuesto para solventar a los estados?. De las instituciones? de esas institucionas que el mismo ha llamado incopetentes e inservibles?.

Para lo único bueno que ha dejado el sr. AMLO desde una vista subjetiva es el acercamiento de la sociedad sobre políticia, si!, si!, es una especie de interes para muchos, por tratar de comprende un poco más sobre lo que pasa en el país, por tratar de investigar, leer, oir o escuchar, ya seá en la televisión, radio, peridicos, internet respectivamente sobre todo lo que pasa actualmente en la vida política de méxico. Poner a la curiosidad de la sociedad sobre nuestros gobernantes, sobre nuestra historia política, sobre la democracía, sobre las fuerzas políticas existentes en nuestro país, etc...
De todo lo descripto anteriormente, ha dejarme llevar por sus actos disfrazados con legalidad ó ha creerme un país méxicano sin pobreza por el simple hecho de que si toma poder cómo presidente vamos a vivir en una especie de Pejelandía, esta muy pero muy retirado :D (afortunadamente), que tampoco mencionar que la inversión es la solución de todos los males pero cuando menos es una parte importante. De eso a que todo suceda en un sexenio futuro ó pasado es realmente patético. Todo absolutamente todo lleva su tiempo y dedicación..

Bueno creo algunos ya se han de haber aburrido de mis palabras xD, posiblemte acertadas algunas y otras tirandole a risa. Se ha terminado el momento de inspiración sobre política y mejor me voy a dormir que mañana hay curso en la Facultad de Mateáticas =P..

Saludos!!

lunes, agosto 28, 2006

HACKED ANIMATION STUDIOS By elvispresley

xDDD

En Hackerss.com ha aparecido el sr. ElvisPresley para ofrecernos animaciones de los usuarios del portal. Hasta ahora van 2 capítulos..
Sin más que decir les dejo el link a las animaciones y el tema en el foro correspondiente :P

Capítulo 1

Capítulo 2

Foro: HACKED ANIMATION STUDIOS

jueves, agosto 24, 2006

[Script PHP] Converter BBCODE/HTML

Hace un par de días me canse XD de estar editando los pequeños howtos, que aconstumbro escribirlos con todo y etiquetas BBCODE para los foros xD..

Así que me di la tarea de escribir un script que me ayudara o cuando menos minimizara esta tarea un poco. Y aquí esta (tiene detallitos, pero ya menciones cuál era mi objetivo =):



<html>
<head><title>Convert HTML/BBCODE</title></head>
<body>
<?php
if (!empty($HTTP_POST_FILES["archivo"]["tmp_name"]) && !empty($_POST['opc']) ){
if ( $HTTP_POST_FILES['archivo']['size'] <= 100000){
$archivo_name=$HTTP_POST_FILES['archivo']['name'];
$dirTmp=$HTTP_POST_FILES['archivo']['tmp_name'];
$extensiones = explode(".",$archivo_name);
$e = count($extensiones)-1;
if($extensiones[$e] == "txt"){
$opc=$_POST['opc'];
$etiquetas = array
("html" => array( "<span style='font-weight:bold;'>","</span>","<pre><nowiki>",
"</pre></nowiki>","<span style='font-style:italic;'>","</span>",
"<span style='font-size:18px;'>","</span>","<a href=","</a>",
"<img src="," />","<blockquote>","</blockquote>",
"<span style='font-size:16px;'>","</span>"),
"bbcode" => array("[b]","[/b]","[code]","[/code]","[i]","[/i]","[size=18]","[/size]",
"[URL=","[/URL]","[IMG]","[/IMG]","[quote]","[/quote]","[size=16]","[/size]"));
$open=fopen($dirTmp,"r");
$text=fread($open,filesize($dirTmp));
$texto=$text;
for( $x=0; $x<=count($etiquetas["html"]); $x++){
if ($opc == 2)
$text=str_ireplace($etiquetas["bbcode"][$x],$etiquetas["html"][$x],$text);
if ($opc == 1)
$text=str_ireplace($etiquetas["html"][$x],$etiquetas["bbcode"][$x],$text);
}

fclose($open);
?>
<form>
<a href="<?php $PHP_SELF ?>">Regresar</a>
<br><b>Texto Original</b><br>
<textarea name=texto rows=21 cols=100><?php echo $texto ?></textarea>
<br><br>
<b>Texto Modificado</b><br>
<textarea name=texto rows=21 cols=100><?php echo $text ?></textarea>
</form>
<?php
}else{
echo "Sólo se permiten archivos con extensión .txt" ;
echo "<br><a href='$PHP_SELF'>Regresar</a>";
}
}else{
echo "El archivo debe ser menor de 100 Kb" ;
echo "<br><a href='$PHP_SELF'>Regresar</a>";
}
}else{
?>
<FORM METHOD="POST" ACTION="<?php $PHP_SELF ?>" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="archivo">
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar">
<br><br><b>Convertir a:</b>
BBCODE: <input type="radio" name="opc" value="1">
HTML: <input type="radio" name="opc" value="2">
<br><br><b>Asegurate que eligas la ruta del archivo y la opción correcta</b>
</FORM>
<?
}
?>
</body>
</html>
Para poder probarlo localmente (que es como lo utilizo) hay que modificar la configuración de PHP en el archivo php.ini de la siguiente manera y agregar los permisos correspondientes. Todo esto para poder subir archivos a un servidor:

Archivo: /etc/php/apache2-php5/php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = /tmp

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Asignando permisos al directorio temporal para subir achivos:

##Permisos a /tmp para el usuario y grupo apache

# chown apache:apache /tmp

Saludos!!

sábado, agosto 19, 2006

[Howto] Soporte a escaners en GNU/Linux (Multifuncional Epson Stylus CX1500)

[Howto] Soporte a escaners en GNU/Linux (Multifuncional Epson Stylus CX1500)

Andaba como si nada navegando por google hasta que me tope con esto: http://stargeizer.blogspot.com/2006/01/epson-cx-1500-bajo-linux.html , enseguida me di la tarea de investigar si el soporte ya estaba mejor que antes, lo cuál habia un soporte clasificado como bueno y no completo, pero que funciona a las mil maravillas :D

Bueno voy a tratar de orientar a los usuarios a poder dar soporte a sus escanners así como yo lo he realizado con la multifuncional Epson Stylus CX1500 (escaner, impresora y copiadora)..

La parte del soporte para la impresora la dejo a un lado ya que no es objetivo del tema, simplemente decir que esta soportada por el paquete guteprint..


http://www.linuxprinting.org/show_printer.cgi?recnum=Epson-Stylus_CX1500

Para dar soporte a la mayoria de escaners necesitamos sane (http://www.sane-project.org/) que es una API.

Como sabes si mi escaner es soportado?

Dirígete a: http://www.sane-project.org/sane-mfgs.html
También esta la versión cvs http://www.sane-project.org/lists/sane-mfgs-cvs.html

Antes de instalar Sane

Si una vez que aseguramos que el dispositivo esta soportado, vamos a verifícar si el escaner es detectado por el kernel. En mi caso es un dispositivo conectdo por USB y el kernel no lota como impresora (será por es impresora también).

Para resumir, si tu impresora se conecta para USB tienes que tener el soporte en el Kernel, al igual forma con SCSI..

Para esto disponemos de varias herramientas como veremos en seguida:


UnderHouse # cat /proc/bus/usb/devices
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: [b]Vendor=04b8 ProdID=080c[/b] Rev= 1.00
S: Manufacturer=EPSON
S: Product=USB MFP
S: SerialNumber=N05060409192322050
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms

UnderHouse # lshal | less
udi = '/org/freedesktop/Hal/devices/usb_device_4b8_80c_N050604
09192322050_if1_printer_noserial'
info.udi = '/org/freedesktop/Hal/devices/usb_device_4b8_80c_N05060409192
322050_if1_printer_noserial' (string)
printer.description = 'EPSON Stylus CX1500' (string)
printer.product = 'Stylus CX1500' (string)
printer.vendor = 'EPSON' (string)
info.vendor = 'EPSON' (string)
linux.device_file = '/dev/usb/lp0' (string)
linux.subsystem = 'usb' (string)
linux.hotplug_type = 2 (0x2) (int)
printer.physical_device = '/org/freedesktop/Hal/devices/usb_device_4b8_80c_N05060409192322050_if1' (string)
printer.device = '/dev/usb/lp0' (string)
info.product = 'Stylus CX1500' (string)
info.capabilities = {'printer'} (string list)
info.category = 'printer' (string)
info.parent = '/org/freedesktop/Hal/devices/usb_device_4b8_80c_N05060409192322050_if1' (string) linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-2/1-2:1.1' (string)
linux.sysfs_path = '/sys/class/usb/lp0' (string)



UnderHouse ~ # lsusb
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 002: ID 04b8:080c Seiko Epson Corp.
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Si se fijan en lo de arriba ahora ya sabemos con exactitud el nombre del disposituvo y la ruta: /dev/usb/lp0 , además los códigos que identifican al proveedor y el ID del producto..

Instalación de Sane

Primero hay que darnos cuenta que sane maneja dos tipos de paquetes principalmente, uno es el API para los dispositivos llamado sane-backendsy otro es un par de utilerías para el usuario llamado sane-frontends.

Sane-frontends - Algunas de las herramientas que nos proporciona es:

xcam Un GUI para escanear desarrolado en GTK+ me parece.

sane-find-scanner Como su nombre lo dice, es para ver si detecta el escaner, pero como ya vimos que si está soportado no lo considero muy importante. Un ejemplo:


UnderHouse # sane-find-scanner

# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.

# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.

found USB scanner (UNKNOWN vendor and product) at device /dev/usbscanner
found USB scanner (vendor=0x0ac8 [V Micro. Corp.], product=0x0302 [PC Camera]) at libusb:001:003
found USB scanner (vendor=0x04b8 [EPSON], product=0x080c [USB MFP]) at libusb:001:002
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.
# `UNKNOWN vendor and product' means that there seems to be a scanner at this
# device file but the vendor and product ids couldn't be identified.
# Currently identification only works with Linux versions >= 2.4.8. You may
# need to configure your backend manually, see the backend's manpage.

# Not checking for parallel port scanners.

# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.


Más información: man sane-find-scanner

scanadf Esta es una que me ha gustado xD, no es necesario ajustar absolutamente nada, solo la ejecutas y te escanea la imagen y la coloca en tu home de tu usuario (Asi de simple, asi de sencillo :P)

Sobre sane-frontends: http://www.sane-project.org/sane-frontends.html


Instalando bajo las fuentes: Baja el paquete en el formato que más te convenga de aquí http://www.sane-project.org/source.html

La instalación de fuentes es normalmente como siempre..

Si tu dispositivo tiene soporte en la versión en desarrollo, tienes las instrucciones para CVS: http://www.sane-project.org/cvs.html

Instalando en gentoo:


# echo "media-gfx/sane-backends ~x86" >> /etc/portage/package.keywords

# echo "media-gfx/sane-frontends ~x86" >> /etc/portage/package.keywords

# echo "media-gfx/sane-frontends gimp" >> /etc/portage/package.use

# emerge sane-backends sane-frontends

Configurando dispositivo scanner:

Kerel >= 2.6.3 + Hotplug

Debemos verificar que el scanner este en la lista de sane, debemos buscar con el código del ID del producto que obtuvimos al inicio


UnderHouse ~ # grep 080c /etc/hotplug/usb/libsane.usermap
libusbscanner 0x0003 0x04b8 0x080c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000



Ahora nos dirigimos a /etc/sane.d/ donde buscaremos el fabricante de nuestro escaner y es el que contendra la configuración del dispositivo

# epson.conf
#
# here are some examples for how to configure the EPSON backend
#
# SCSI scanner:
scsi EPSON
# for the GT-6500:
scsi "EPSON SC"
#
# Parallel port scanner:
#pio 0x278
#pio 0x378
#pio 0x3BC
#
# USB scanner:
# There are two different methods of configuring a USB scanner: libusb and the kernel module
# For any system with libusb support (which is pretty much any recent Linux distribution) the
# following line is sufficient. This however assumes that the connected scanner
(or to be more
# accurate, it's device ID) is known to the backend.

## Especificamos el id del producto y del dispositivo

usb 04b8 080c

# For libusb support for unknown scanners use the following command
# usb
# e.g.:
# usb 0x4b8 0x110
# And for the scanner module, use the following configuration:
usb /dev/usbscanner0
usb /dev/usb/scanner0


Ya solo falta agregar nuestro usuario al grupo scanner


UnderHouse ~ # gpasswd -a soullost scanner
Añadiendo al usuario soullost al grupo scanner


En gentoo hay que modificar el archivo /etc/hotplug/usb/libusbscanner, quedando de esta manera:

#!/bin/sh

# This file is part of sane-backends.
#
# This script changes the permissions and ownership of a USB device under
# /proc/bus/usb to grant access to this device to users in the scanner group.
#
# Ownership is set to root:scanner, permissions are set to 0660.
#
# Arguments :
# -----------
# ACTION=[add|remove]
# DEVICE=/proc/bus/usb/BBB/DDD
# TYPE=usb


if [ -z "$DEVICE" ] ; then
IF=$(echo $DEVPATH | sed 's:\(bus/usb/devices/\)\(.*\)-\(.*\):\2:')
DEV=$(echo $DEVPATH | sed 's:\(bus/usb/devices/\)\(.*\)-\(.*\):\3:')
DEV=$(expr $DEV + 1)
DEVICE=$(printf '/proc/bus/usb/%.03d/%.03d' $IF $DEV)
fi

if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
chown root:scanner "$DEVICE"
chmod 0660 "$DEVICE"
fi


# That's an insecure but simple alternative
# Everyone has access to the scanner

# if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
# chmod 0666 "$DEVICE"
# fi


Si tienes el demonio hotplug iniciado, habrá que reiniciarlo

service hotplug restart
/etc/init.d/hotplug restart

Y listo! ya puedes verificar con las herramientas de sane-forntends que todo este funcionando como debe de ser..

Más programas para escanear

- Xsane Este GUI de sane es lo mejor que hay, es bastante configurable y además permite la edición de las imagenes..


UnderHouse ~ # eix xsane
* media-gfx/xsane
Available versions: 0.991
Installed: 0.991
Homepage: http://www.xsane.org/
Description: graphical scanning frontend

Free Image Hosting at www.ImageShack.us

Free Image Hosting at www.ImageShack.us

- Xcam ( sane-frontends) No me gusto tanto como xsane, además al escanear, la aplicación se deforma por que la imagen es demasiado grande :lol:

Free Image Hosting at www.ImageShack.us

- Integración en Gimp

Free Image Hosting at www.ImageShack.us

- Integración en OpenOffice

Free Image Hosting at www.ImageShack.us

Mucha más información en:

SANE - Frontends (Applications) - http://www.sane-project.org/sane-frontends.html
The Scanner HOWTO - http://tldp.org/HOWTO/Scanner-HOWTO/index.html

Saludos!!

sáb 19 ago 2006 11:25:10 MDT

sábado, agosto 12, 2006

[Howto] Administración de Gentoo GNU/Linux

Introducción . Como ya he visto a varios usuarios usando Gentoo como distribución preferida, me pongo a redactar este pequeño articulo de cómo administrarlo con las herramientas y las configuraciones que nos ofrece esta excelente distribución a mi parecer. Por consiguiente, algunas recomendaciones son las que aconstumbro hacer y no están sujetas como obligatorias..

El archivo make.conf

Este archivo contiene toda las información necesaria para que emerge y portage hagan su labor debidamente. Ahora veamos la estructura de una configuración común de make.conf ( osea, la mia xD):


UnderHouse ~ # more /etc/make.conf
# These settings were set by the catalyst build script that automatically built
this stage
# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-O2 -march=pentium4 -pipe"
##-fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
USE="browserplugin nvidia nomalloccheck utf8 apache2 php imap
unicode gtk gpm directfbi foomaticdb nls spell -3dfx -aim alsa
-arts cdr -cjk debug doc -dedicate dga directfb encode fdftk flash
gnome -hardened -icq -jabber java -kde -qt -mmx mpeg msn nls opengl
oss samba svga usb xmms -yahoo nptl aac aalib -acpi apm cups dri fam
fbcon gphoto2 gstreamer hal mp3 -mozilla firefox esd sdl usb"
GENTOO_MIRRORS="http://linuv.uv.es/mirror/gentoo"
AUTOCLEAN="yes"
LINGUAS='es'
CONFIG_PROTECT_MASK="/usr/X11R6/bin/startx"
MAKEOPTS="-j2"
#PORTDIR_OVERLAY=/usr/local/portage
PORTDIR_OVERLAY="/usr/local/portage/xgl-coffee"
FEATURES="parallel-fetch"
INPUT_DEVICES="evdev keyboard mouse"
VIDEO_CARDS="nvidia fbded nv none vesa"
PORTAGE_ELOG_CLASSES="log error warn info"
PORTAGE_ELOG_SYSTEM="save"


CFLAGS: Esta variable contiene las opciones que usa el compilador (gcc) para compilar los paquetes para instalar/reinstalar. Por ejemplo yo tengo estas opciones:
-O2 Es el tipo de optimización
-march=pentium4 Es la arquitectura de mi sistemam, que es com ha visto un pentium 4
-pipe Usa tuberias para la compilación..

Generalmente se recomienda las opciones que generen una optimización segura y efectiva ( si estas opciones son muy agresivas los paquetes pueden llegar a tener errores ). Ahora la pregunta obligatoria, ¿Qué opciones uso para mi sistema?. Bueno hay una lista recomendada en la siguiente dirección: http://gentoo-wiki.com/Safe_Cflags

CHOST: Simplemente es el tipo de arquitectura que uses..

CXXFLAGS: Otra variable más para el compilador, generalmente toma las mismas definidas anteriormente en CFLAGS

USE: Esta es una de las variables que más me gustan :D. El concepto es simple, los paquetes disponen de ciertos soportes, pero que soportes? mirar: http://www.gentoo-portage.com/USE || less /usr/portage/profiles/use.desc

Por ejemplo, para que mis paquetes puedan integrarse al gnome uso la use "gnome" xD, si quiero que mis paquetes tenga soporte para varios idiomas uso la use "nls". Asi mismo para dar soporte escribimos la use tal y cual es, para quitarselo antepnemos un signo menos "-" antes del nombre..

Nota importante: Las USE's definidas en make.conf serán las usadas siempre, osea, emerge al instalar/actualizar el sistema siempre usará los soporte definidos por esta variable, por esos es importante colocar los soportes que queremos que "siempre" tengan nuestros paquetes..

GENTOO_MIRRORS: Simplemente el mirror que usará gentoo para actualizar la BD de portage

AUTOCLEAN="yes" Significa que los paquetes descargados (/usr/portage/distfiles) serán borrados después de un tiempo (no recuerdo bien el lapso, pero creo es cada mes o algo similar)..

LINGUAS='es': Algunos paquetes usan esta variable para dar soporte a ciertos idiomas incluyendo el español :P

CONFIG_PROTECT_MASK: Especifíca que archivos no seran modificados por emerge..

MAKEOPTS: Determina las compilaciones paralelas definidas por la cantidad de CPUS que tengas, en este caso como yo tengo solo un CPU le sumo uno "-j2", en caso de tener un CPU de doble nucleo ponemos "-j3"..

PORTDIR_OVERLAY: Es un directorio opcional para que emerge lo tenga en cuenta para paquetes definidos por los usuarios (ebuilds creados por nosotros, ebuils creados por desarroladores que no son del equipo de gentoo, etc..). Muy útil para pruebas y para agregar nuestros propios paquetes que no se encuentren en la BD de portage.

FEATURES="parallel-fetch": Esta opción habilita el poder bajar paquetes mientras a su vez se compola otro, útil al momento de actualizar todo el sistema..

INPUT_DEVICES: Esta variable la he puesto por el cambio a xorg-7.x, simplemente poner los dispositivos para los que queremos soporte. La lista es:


INPUT_DEVICES="evdev keyboard mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc
-dynapro -elo2300 -elographics -fpit -hyperpen -jamstudio -joystick -magellan -magictouch
-microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics -tek4957 -ur98 -vmmouse
-void -wacom"


VIDEO_CARDS: Lo mismo que lo anterior pero ahora para el soporte de las tarjetas gráficas que queremos tener disponibles. La lista:


VIDEO_CARDS="nv nvidia vesa -apm -ark -chips -cirrus -cyrix -dummy -fbdev
-fglrx -glint -i128 -i740 -i810 -imstt -mach64 -mga -neomagic -nsc -r128
-radeon -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb -tdfx
-tga -trident -tseng -v4l -vga -via -vmware -voodoo"


PORTAGE_ELOG_CLASSES: Integra la herramienta elog para emegerge ( a partir de la versión 2.1 de portage :P ), esta herramienta es de uso obigatorio, cuantas veces nos hemos dado cuenta que al emergear un paquete nos coloca aviso del tipo:


~/.wine/config is now deprecated. For configuration either use
winecfg or regedit HKCU\Software\Wine


Todos estos avisos están puestos para los usuarios, habilitando elog no se nos escapará ni uno solo :D

También bastante útil para los foros y cuando tengas errores..


PORTAGE_ELOG_SYSTEM: Decide donde arrojar estos logs, en mi caso le ponga "save" para que los errores los coloque en /var/log/portage/elog/paquete-x.x.x.

Bueno ya terminamos uno de los archivos más importantes en Gentoo :P

El archivo /etc/portage/package.use

Este archivo de configuración contiene las use que solo queremos para ciertos paquetes en especial..

Por ejemplo en un paquete quiero tener soporte X y en otros no, aqui podemos des/habilitar estas opciones por paquete..


echo "categoria/paquete -X +alsa -oss" >> /etc/portage/package.use


Les muestro un pedazo de mi archivo:


soullost@UnderHouse ~ $ head /etc/portage/package.use
sys-devel/gcc hardened
dev-lang/python -X
net-misc/openssh chroot
net-fs/samba -python
x11-base/xorg-x11 dlloader
app-editors/vim bash-completion vim-with-x
app-editors/vim-core bash-completion
www-client/mozilla crypt debug gnome ipv6 java mozcalendar
mozdevelop -moznocompose -moznoirc -moznomail -moznoxft mozsvg
-postgres ssl truetype -xinerama -xprint
media-video/totem xine
media-libs/xine-lib -X dvd imagemagick vcd vidix win32codecs ffmpeg


El archivo /etc/portage/package.keywords

Si tenemos una rama estable :P, aqui coloquemos todo esos paquetes que por alguna razón preferimos tener los paquetes más recientes en portage..


echo "categoria/paquete ~x86" >> /etc/portage/package.keywords


Les muestro un pedazo de mi archivo:

soullost@UnderHouse ~ $ head /etc/portage/package.keywords
net-im/amsn ~x86
app-emulation/kqemu ~x86
app-emulation/qemu-softmmu ~x86
app-emulation/qemu ~x86
app-emulation/qemu-user ~x86
media-gfx/gimp-print ~x86
net-print/foomatic ~x86
net-print/foomatic-db ~x86
net-print/foomatic-db-engine ~x86
net-print/foomatic-filters ~x86


También podemos escoger versiones de paquetes con los operadores >=. <=, = ..


echo ">=categoria/paquete-version ~x86" >> /etc/portage/package.keywords


El archivo /etc/portage/package.unmask

Contiene todos los paquetes que queremos tener disponibles pero marcados como masked por los desarrolladores de gentoo.


echo "categoria/paquete" >> /etc/portage/package.unmask


El archivo /etc/portage/package.mask

Contiene todos los paquetes que "nosotros" queremos enmascarar para de ninguna forma poder emergearlos


echo "categoria/paquete" >> /etc/portage/package.mask


Buscando paquetes

Yo regularmente uso eix para tal motivo :P


emerge eix


Uso:
eix paquete


Instalando paquetes

Mi procedimiento:

Primero miramos las dependencias de los paquetes y las uses por defecto:


emerge -pv paquete


Si es necesario agrego las uses a package.use, si hay dependencias de paquetes inestables o quiero alguna versión en especial al archivo package.keywords..

Ahora descargo/compilo e instalo:


emerge paquete


Otras formas de instalando paquetes

Podemos saltarnos la parte de agregar paquetes a los archivos package.use, package.keyword, emergeando de las siguientes formas respectivamentes:

USE="gnome -kde" emerge paquete



ACCEPT_KEYWORDS="~x86" emerge paquete



emerge =categoria/paquete-version


Tengan en claro que esta formas son correctas pero que al actualizar el sistema estas no son tomadas, por ejemplo, si instalo un paquete inestable al momento de actualizar todo el sistema, emerge me va a instalar la versión estable del paquete. Lo mismo pasa con las uses, cuando actualize el sistema o reemergee sin especificar nada tomará las uses por defecto en make.conf

Desinstalando paquetes


emerge -C paquete ## -C desinstalar
emerge depclean ## Elimina dependencias rotas
revdep-rebuild ## Arregla librerias rotas


Cuidado con usar depclean, antes de desinstalar dependencias "según inservibles" te manda un listado, verifica que no este ningún paquete importante que puedan corromper el sistema..

Ver dependencias de paquetes

Hay muchas herramientas disponibles en el paquete gentookit, una de ellas es el poder ver las dependencias de las que depende un paquete, por ejemplo para el apache:


UnderHouse ~ # equery depends apache
[ Searching for packages depending on apache... ]
dev-util/subversion-1.3.2-r1
dev-lang/php-5.1.4-r4


Útil al momento de desinstalar paquetes

Nota: Solo disponible para paquetes ya instalados en el sistema :P

Para mirar todos los archivos que componen el paquete apache:


UnderHouse ~ # equery files apache

/usr/share/man/man8
/usr/share/man/man8/ab2.8.gz
/usr/share/man/man8/apache2.8.gz
/usr/share/man/man8/apache2ctl.8.gz
/usr/share/man/man8/apxs2.8.gz
/usr/share/man/man8/logresolve2.8.gz
/usr/share/man/man8/rotatelogs2.8.gz
/usr/share/man/man8/suexec2.8.gz
/var
/var/cache
/var/cache/apache2
/var/cache/apache2/.keep
/var/lib
/var/lib/dav
/var/lib/dav/.keep
/var/log
/var/log/apache2
/var/log/apache2/.keep
/var/www


Más usos de equery:

Usage: equery <global-opts> command <local-opts>
where <global-opts> is one of
-q, --quiet - minimal output
-C, --nocolor - turn off colours
-h, --help - this help screen
-V, --version - display version info
-N, --no-pipe - turn off pipe detection
where command(short) is one of
belongs(b) <local-opts> files... - list all packages owning files...
changes(c) - not implemented yet
check(k) pkgspec - check MD5sums and timestamps of pkgspec's files
depends(d) <local-opts> pkgspec - list all direct dependencies matching pkgspec
depgraph(g) <local-opts> pkgspec - display a dependency tree for pkgspec
files(f) <local-opts> pkgspec - list files owned by pkgspec
glsa(a) - not implemented yet
hasuse(h) <local-opts> useflag - list all packages with useflag
list(l) <local-opts> pkgspec - list all packages matching pkgspec
size(s) <local-opts> pkgspec - print size of files contained in package pkgspec stats(t)
- not implemented yet
uses(u) <local-opts> pkgspec - display USE flags for pkgspec
which(w) pkgspec - print full path to ebuild for package pkgspec


Actualizando todo el sistema

La manera más recomendable es hacerlo de la siguiente forma:

emerge --sync
emerge -uDav --newuse world

Opciones:

-u Actualizar
-D Actualiza dependencias
-av Pregunta antes de actualizar e información extra
--newuse Verifica si hay uses nuevas y si las tenemos especificadas las toma en cuenta..
world XDDDDDDDDD :P

Archivos de configuración nuevos

Cada vez que actualizamos servicios posiblemente nos tire un mensaje que necesitams ejecutar etc-update para actualizar archivos de configuración. Algo similar a esto:


Por favor, seleccione el fichero a editar introduciendo el número correspondiente.
(-1 para salir) (-3 para auto-combinar todos los ficheros restantes)
(-5 para auto-combinar SIN usar 'mv -i'):


Yo siempre recomiendo ver primero los archivos, una vez que te muestros los archivos y las lineas agregadas (++) o quitadas (--) puede decirir si dejarlo como estaba o poner la nueva configuración. Las opciones son:


1) Reemplazar el original con la actualización
2) Borrar la actualización, manteniendo el original inalterado
3) Combinar interactivamente el original y la actualización
4) Mostrar de nuevo las diferencias


Servicos/Demonios

Nomenclatura:

Runlevels: boot default
[] - Opcional
< > - Obligatorio


Para mirar los servicios encendidos:

rc-update -s

Para mirar todos los servicios disponibles:

rc-update -s -v [runlevel]

Para buscar un servicio

rc-update -s -v [runlevel] | grep <servicio>

Para agregar un servicio al inicio del sistema

rc-update add <servicio> <runlevel>

Para quitar un servicio del sistema

rc-update del <servicio> <runlevel>

[b]Script para el clásico: service <servicio> <acción>[/b]


#!/bin/bash

/etc/init.d/$1 $2


Ahora ya podemos usar: service apache start

En lugar de: /etc/init.d/<servicio> start


Archivos de configuración de Servicios

Los archivos de configuración de los demonios del sistema se encuentra en /etc/conf.d/

Perfiles/Actualización de Gcc, Python, Java y Similares

Nomenclatura:

* - En uso

Todos estos paquetes tiene una herramienta para poder usar alguna versión en especifico. Por ejemplo, con gcc podemos ver los perfiles disponibles con: gcc-config -l


[1] i686-pc-linux-gnu-3.3.6
[2] i686-pc-linux-gnu-3.3.6-hardenednopie
[3] i686-pc-linux-gnu-3.3.6-hardenednopiessp
[4] i686-pc-linux-gnu-3.3.6-hardenednossp
[5] i686-pc-linux-gnu-3.3.6-vanilla
[6] i686-pc-linux-gnu-3.4.6
[7] i686-pc-linux-gnu-3.4.6-hardenednopie
[8] i686-pc-linux-gnu-3.4.6-hardenednopiessp
[9] i686-pc-linux-gnu-3.4.6-hardenednossp
[10] i686-pc-linux-gnu-3.4.6-vanilla *


Para usar alguna versión especifico necesitamos seleccionarlo de la siguiente manera:

gcc-config <num de perfil> && source /etc/profile

Para java:

java-config -L ## Para mirar las maquinas virtuales disponibles y la que usamos actualmente


[sun-jdk-1.4.2.10] "Sun JDK 1.4.2.10" (/etc/env.d/java/20sun-jdk-1.4.2.10) *
[blackdown-jdk-1.4.2.03] "Blackdown JDK 1.4.2.03" (/etc/env.d/java/20blackdown-jdk-1.4.2.03)


Para cambiar de versión:

java-config -S argument --set-system-vm=blackdown-jdk-1.4.2.03

Ahora para python tenemos: python-updater y python-config

Variables de entorno (PATH)

Estas configuraciones las encontramos en /etc/env.d
Una pequeña descripción de las variables:

PATH Esta variable contiene una lista de directorios separados
por ":" en la cual el sistema buscará los archivos ejecutables.
Al introducir el nombre de un ejecutable (como ls, rc-update o emerge) que no
se encuentre en un de los directorios listados, el sistema no lo encontrará,
(a menos que se introduzca la ruta completa, por ejemplo: /bin/ls).
ROOTPATH Esta variable tiene la misma función que PATH, pero únicamente
contiene los directorios que el sistema debe revisar cuando el usuario root
introduce un comando.
LDPATH Esta variable contiene una lista de directorios separados por
":" en la cual el enlazador dinámico busca para encontrar una librería.
MANPATH Esta variable contiene una lista de directorios separados por
":" en la cual el comando man busca las páginas de manual.
INFODIR Esta variable contiene una lista de directorios separados por
":" en la cual el comando info busca las páginas info.
PAGER Esta variable contiene la ruta hacia el programa utilizado para
mostrar el contenido de los ficheros (como less o more).
EDITOR Esta variable contiene la ruta hacia el programa utilizado para
modificar el contenido de los archivos (como nano o vi).
KDEDIRS Esta variable contiene una lista de directorios separados por
":" los cuales contienen material específico de KDE.
CLASSPATH Esta variable contiene una lista de directorios separados por
":" los cuales contienen las clases de Java.
CONFIG_PROTECT Esta variable una lista de directorios separados por espacio
los cuales deben ser protegidos por Portage durante las actualizaciones.
CONFIG_PROTECT_MASK Esta variable una lista de directorios separados
por espacio los cuales no deben ser protegidos por Portage durante las actualizaciones.


Cada vez que actualizemos estas variables es importante hacer: env-update

Problemas compilando

Mirar: http://www.gentoo-es.org/node/363

Nota: Si utilizan el perfil de gcc realizado por gentoo, siempre traten rebajando la versión o utilizando el perfil por default titulado como vanilla..

Bugs de gentoo para reportar y revisar: http://bugs.gentoo.org && http://bugs.gentoo.org/query.cgi

Links que considero importantes

Foros en español: http://forums.gentoo.org/viewforum.php?f=30
Repositorio web de gentoo: http://packages.gentoo.org/
Recursos de documentación: http://www.gentoo.org/doc/es/list.xml
Gentoo Wiki: http://gentoo-wiki.com/Main_Page
Gentoo y portatiles Toshiba: http://web.gentrinoo.org/
Boletín Semana de Gentoo en español: http://www.gentoo.org/news/es/gwn/gwn.xml
Gentoo español: http://www.gentoo-es.org/

powered by performancing firefox

lunes, julio 17, 2006

Díass y más días

Estoy con un dolor de cabeza bastante fuerte xD me siento mareado y siento ascos xDDD, posiblemente llegando a la deliría..

Ahora no se que decir exactamente XD, de hecho escribo estas pocas lineas por que me dijieron que actualizará y yo muy we xD dije que prometia actualizarlo antes de que terminará este dia xDDDD =""""""""..

En fin, los dias han sido bastante normales, despierto, almuerzo, voy a cursos, regreso, miro la pc, leo un rato y me desvelo =) xD..

Les comentaba sobre unos cursos xD, ps estos cursos son GRATIS!! xD (si no no estuvierá en ellos XDD), bueno son de la uni y forman parte de un proyecto sobre crear aplicaciones educativas, algunas orientadas para calculadora ( hay un convenio me parece con la CASIO).
Por el momento nos estan capacitanto XDDDDD, el curso trata sobre los siguientes temas:

- C++
- ClassLav
- Flash
- FlashCom
- Java (creo)
- PHP

Bueno dependiendo como vean nuestras "destrezas" xD nos van a asignar un puesto en el proyecto xDD ( al menos eso dijieron xD ). Esta bien para pasar un rato ocupado en algo XDDDDD y no pensar en situaciones que me ponen mal :P.

Todo pasa normal aqui XD, ha no, se me olvidaba, arregle mi cuarto xDDDDD, ya tenia rato de no hacerle nada, más bien, meses!!! de no hacerle nada jajajaja xDDDDDDDD. Sigo fumando =) y pensando ideas vagas xD. En ocaciones me da sindrome del zombie ( como dice mi hermana ¬¬), y no es que no quiera dormir, pero hay mejores cosas que hacer que dormir :D.

Hace unos días recordé que hay cosas impredecibles, que unos dias te pueden pasar situaciones increibles y en tan sólo un min. ese panorama se transforma en una terrible incertitumbre y tristezas juntas. También rocordé que cosas tan simples y en ocasiones absurdas pueden llenarte de felicidad y darte las ganas y el aliento para seguir en esta vida ( citando una frase que oí: La vida es un asco, pero la alternativa puede ser peor ).

Ya hasta aqui xD, no suelo escribir sobre mi vida :P y no es que me asuste, pero, no es lo mio XDDDDDDDDD. Por ultimo les dejo una imagen que me paso dna =" y aunque diga el tipo ese que no hiba con su concepto ¬¬, a mi si me gusto =)..