Archive for ‘Uncategorized’

junio 30, 2010

Violacion de Segmento al utilizar Aptitude y apt

por Josue Ortega

Como que ya se esta volviendo comun por aqui postear los clavos que me ha dado Debian ahora que lo estoy usando en su rama inestable(Sid) y de Prueba (Squeeze).

Hoy al intentar instalar un paquete con aptitude me tope con una violación de segmento a la hora de buscar el paquete :O, algo que no me esperaba, pensé en desinstalar aptitude e instalarlo de nuevo, entonces probé desde apt pero para mi sorpresa el apt también causaba la violación de segmento.

Después de un buen rato de buscar en la web y probar varias cosas como revisar el archivo /etc/apt/apt.conf, también probe con cambiar los repositorios y nada, al final de tantas encontre la solución:

Me dirigi a la carpeta: /var/cache/apt

cp /var/cache/apt

y luego elimine todos los archivos con extension bin

en mi caso eran: srcpkgcache.bin y pkgcache.bin

rm srcpkgcache.bin
rm pkgcache.bin

ojo: antes hice una copia de seguridad de estos archivos por si pasaba algo malo

Ya eliminados estos archivos, el apt y el aptitude funcionaron de maravilla de nuevo 😀

Anuncios
mayo 26, 2010

Décimo Sábado de Software Libre

por Josue Ortega

mayo 17, 2010

Gracias al cielo: Debian jamas sera Ubuntu

por Josue Ortega

Los ultimos días me ha tocado configurar/instalar algunas aplicaciones relacionadas con Oracle, PHP, para proyectos varios del laboratorio del curso de Manejo e Implmentacion de Archivos, y debo decir que estoy muy feliz con mi “current” distro: Debian :D, y me he topado con muchas personas que me cuestionan: ¿Por que Debian? Si existe Ubuntu, claro una distribución derivada de Debian y para suerte de todos muy fácil de usar y de configurar. Pero al mismo tiempo esa facilidad que le esta dando Ubuntu al usuario viene a desmotivarme un poco al respecto,con la forma en que Ubuntu facilita las cosas y vuelve wevona a la gente. Claro para un usuario que no necesita mucho llegar a conocer sobre GNU/Linux, simplemente un usuario final, Ubuntu es la distribucion por excelencia.

Volviendo al tema de  las instalaciones, por mas facilidad que pongan en las nuevas versiones de Ubuntu, jamas va a ser un Debian puro y a funcionar como tal, simplemente su rendimiento no es optimo, a la hora de ejecutar tareas administrativas o manejar paquetes ya un poco pesados. Como en el caso de Oracle 11g Standard Edition, simplemente no conozco a nadie que haya logrado con exito instalar esta version de este DBMS en Ubuntu, pero por que? no se supone que Ubuntu es para facilitar las cosas? para que discutir, Ubuntu facilita las cosas: sudo aptitude install [lo que querras] si sos un ubuntero nivel avanzado, Ubuntuero Tradicional: Synaptic 😀 ok mi intencion con este post no es pelear con los ubunteros, es de hacer notar la revolucion que estan haciendo con su facil linux-facil.

El Objetivo de este post es que en Debian siempre sabremos que hacemos, que configurar y estaremos seguros que funcionara, a no ser que usen un SID. Y hablando un poco mas sentimentalmente tendremos esa interaccion con nuestra computadora ❤ (terminal-humano) que tanto nos gusta sin perder la simplicidad y estabilidad y optimizacion que Debian ofrece… anque tengamos que hacer una instalacion de 78 pasos mientras que en otra distro pudo haber sido en 2.

Saludos a los Debianitas \o que pronto podran contar con  la nueva version estable de Debian que lamentablemente por unos problemas de organizacion en el equipo de Debian se a atrazado la fecha del release, : /

marzo 17, 2010

Un Año con GNU/Linux :)

por Josue Ortega

Ya hace aproximadamente un año atrás, instale por primera vez una distribución de GNU/Linux. La verdad no fue una decisión que tome de la noche a la mañana, yo ya estaba acomodado con mi hasefroch XP, y la verdad no me daba ningun problema, solo los multiples freezeos, o muertes del explorer.exe, algo normal para un Sistema Operativo, pensaba yo.

Desde pequeño, cuando estaba en el tercer año de primaria, escuche hablar por primera vez de Linux; Si, el profesor de computación( por cierto mis clases de computación se reducían a jugar Croc toda la clase) menciono que aparte de Hasefroch 95 existia otro Sistema Operativo, llamado Linux, si aquel el del Pinguino, que era gratuito, y que varios programadores del mundo lo mantenian. Asi pasaron los años, yo usando hasefroch, hasta que alfin despues de leer diferentes articulos, escuchar de compañeros que usaban una distribucion de GNU/Linux, me decidí a probarlo.

Decidí  probarlo, con miedo de dejar hasefroch, con el pensamiento de que iba a hacer sin los programas que existen para hasefroch u_u, cosa de la que aun pienso: Que mente mas cerrada la que tengo 😛

Bueno aquí empezó la aventura :D, como buen noob en el tem, yo no sabia ni que jocotes iba a instalar. Asi que pregunte a algunos conocidos en la Universidad y me presentaron a Ubuntu :O, pero al cuate que le pedi el Live Cd, es es fan de KDE asi que termine instalando Kubuntu, que en mi ignorancia yo pensaba que era una distribucion totalmente diferente a Ubuntu, digase Kernel y demas, y no sabia que solo diferia en el entorno de Escritorio.

Bueno Instale el Kubuntu 8.4 si no estoy mal, con KDE 3.5, la verdad yo no esperaba un escritorio tan genial, yo seguía pensando que Linux era solo para gente que usaba solamente el bash, por lo tanto no pedía mucho para el escritorio, no fue hasta que actualice Kubuntu, que por arte de magia haha instale el KDE 4.1 y fue WOW!! tal vez esta versión de KDE no fue la mas estable pero empezó a ser sexy :). Después de varias actualizaciones en el grub me salían como 2938 versiones de Kubuntu, y como curioso que soy, investigue si se podian eliminar las otras “versiones”, y usando el manejador de paquetes, las des instale, después del proceso todo parecía funcionar normal, no fue hasta el siguiente boot cuando todo salia la maravillosa frase KERNEL PANIC! si asi murió Kubuntu, la verdad no se que des instale de mas :P, pero ahora con un par de semanas de usar gnu/linux, yo ya no quería regresar a Hasefroch, así que acudí a mis contactos,pero ahora con Ubuntu 8.10 en mano! bueno lo instale, nada del otro mundo, hasta cuando inicie sesión, y tuve mi primer choque, no me agrado Gnome, lo siento por la gente que le gusta Gnome, no tengo nada contra este entorno, solo no es de mi gusto, pero bueno así use Ubuntu al menos por unos 2 meses. Y decidí regresar a Kubuntu ahora con mas experiencia, hasta que en el curso de Compiladores 1, era requisito para el proyecto instalar Debian Lenny, la verdad yo fui uno de los que se resistieron a cambiar de Distro, pero no sabia lo genial que es Debian, es mi actual distro y creo que seguiré con ella por mucho tiempo.

Luego de adaptarme a Debian, lo cual no fue muy dificil, ya que venia trabando en distribuciones basadas en el. Después de 2 intentos fallidos de usar ArchLinux en mi máquina, y de instalar Debian unas 3 veces.

Debo decir que GNU/Linux, ha sido una de las decisiones mas importantes que e tomado, y una de las pocas de las que no me arrepiento, Nunca imagine tanta estabilidad, tanto soporte para software, tanta variedad de programas de todo tipo, y lo  mejor de todo es el código abierto :D, y su filosofía.

Bueno con esto termino mi post conmemorativo de 365 días usando GNU/Linux, estaré agradecido por siempre con este noble sistema 🙂

GNU/Linux FTW!

enero 27, 2010

Debian Híbrido

por Josue Ortega

Desde ya hace un tiempo vengo usando Debian Lenny(la versión estable por el momento), lo unico que no me gusta es que los paquetes estables para esta versión no son los mas nuevos que digamos, buscando un poco en la web, encontré que se puede tener un sistema híbrido, esto quiere decir: tener paquetes de la versión estable y paquetes de testing y unstables. Y que con esto? bueno con esto ya puedo escojer entre paquetes estables(version angtigua) y paquetes más recientes. En fin es cuestion de gustos.

A continuación explicare como pasar nuestro sistema de estable a hibrido, bastante sencillo por cierto.

Lo primero que tenemos que hacer es abrir el archivo sources.list (dónde se encuentran las direcciones de los repositorios), bueno yo lo hago desde la TODOPODEROSA consola, y usando nano:

# nano /etc/apt/sources.list

A continuación los repositorios:

#Stable
deb http://ftp.debian.org/debian/ lenny main 
deb-src http://ftp.debian.org/debian/ lenny main 
# Testing
deb http://ftp.debian.org/debian/ testing main 
deb-src http://ftp.debian.org/debian/ testing main 
# Unstable
deb http://ftp.debian.org/debian unstable main 
deb-src http://ftp.debian.org/debian unstable main

Luego actualizamos:

#apt-get update

Lo siguiente es crear el archivo preferences

# nano /etc/apt/preferences

Donde agregamos las siguientes directivas para hacer pinning:

Package: *
Pin:release a=stable
Pin-Priority:700
Package: *
Pin:release a=testing
Pin-Priority:600
Package: *
Pin:release a=unstable
Pin-Priority:500

El pinning puede ser redirigido a un archivo, un origen, la versión de un paquete, un componente, etc…

Con “o=” se especifica el origen; es decir, la distribución del paquete, con “a=” la rama (sarge, sid, stable, etc…).

Los números de prioridad tienen además un significado añadido, que a continuación se comenta. Llamando P a dicho número, tenemos:

  • P»1000: se fuerzan versiones de paquetes, aunque estas sean inferiores.
  • 990«P«=1000: siempre que la versión instalada no sea más reciente, el paquete es instalado, aunque no provenga de la rama principal.
  • 500«P«=990: siempre que el paquete instalado sea más antiguo y que no exista una versión en la rama principal, se instalará la versión.
  • 0«P«=100: la versión solo se instala si no hay ninguna versión del paquete instalado.
  • P«0: no se instala la versión.

Actualizamos de nuevo:

# apt-get update

Como tercer paso creamos el archivo apt.conf

#nano /etc/apt/apt.conf

Y escribimos lo siguiente:

APT::Default-Release "stable";
APT::Cache-Limit 15000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";

Listo, con esto tenemos nuestro sistema híbrido listo para instalar nuevos paquetes.

Instalacion de Paquetes

Para instalar paquetes en la nueva configuración de nuestro sistema, podemos ver los candidatos de paquetes:

# apt-cache policy [nombre del paquete]

El comando anterior nos devolvera los candidatos para el paquete que especifiamos, la rama donde se encuentra el paquete, y el numero de pin dependiendo si es para: stable, unstable, testing.

Luego que conseguimos la informacion que necesitamos solo basta con escribir

#apt-get -t [unstable/stable/testing] install [nombre del paquete]

por ejemplo si queremos instalar kaffeine desde testing sería:

#apt-get -t testing install kaffeine

Y con esto ya tienen para divertirse 🙂

enero 25, 2010

Un semestre mas

por Josue Ortega

Ya casi a 2 semanas de haber empezado el primer semestre del año en la universidad(para mí, el inicio del Séptimo), se empieza a sentir el estrés vario, por esos preciosos cursos hahaha.

Pensé que este semestre iba a ser la excepción ¿pero excepcion de que? si sigue el estrés  aunque  debido a injusticias de la vida/pereza, o simplemente porque de verdad se pelaron con los cursos del semestre pasado, estoy repitiendo un par de cursos, y lo peor que son del área que más me gusta de la carrera(Ciencias de la Computación) 😦 . Aunque también es una oportunidad para ir terminando con todos los cursos  que NADIE  QUIERE LLEVAR, esos cursos aburridos  donde se les da preferencia estudiantes de a otra carrera dentro de los cursos por parte del catedrático dígase : Investigación de Operaciones,  pero en fin, la intención de este post no es quejarme, aunque dicen por ahí que los bloggers tienen sus blogs solo para quejarse.

En fin para este “semestre más” no debemos olvidar nuestras metas, objetivos, etc, como quieran llamarle, para echarle (huevos) ganas, y enamorarnos de esos cursos! jaja aunque suene raro, pero recién hablaba con una persona de otra facultad, y me contaba de los nuevos cursos que llevaría este semestre, y es motivo de inspiración ver como pone ojos de candy haha, al hablar de sus nuevos cursos, y sinceramente yo, al principio de cada curso tengo esa expresión, y al pasar de los días se va convirtiendo en una expresion de cansancio, desesperacion, de esa desesperacion de cuando no da tiempo para terminar un proyecto y por hacer el proyecto no estudiamos para el parcial, bueno todos los que estudian sistemas saben de lo que hablo, el punto es el siguiente aunque no tengan piedad con nosotros en los cursos, aunque el server de wordpress muera cuando publico un post, y no lo tengo guardado en otra parte(acaba de pasar), lo que menos tenemos que hacer es awevarnos hehe y seguir echandole ganas, bueno despues de desahogarme/quejarme/ponerme hueco en este post <burla>motivacional</burla>… seguire con mi tarea de IO jeje

saludos

noviembre 30, 2009

Windows 7 Sins

por Josue Ortega

Con la reciente salida de Winsux 7, FSF(Free Software Foundation), ha lanzado una campaña titulada Windows 7 Sins, los 7 pecados de Winsux 7 son :

  1. Envenenando la Educación: Actualmente a los niños se les enseña que solo deben usar un producto, el de Microsoft, Microsoft invierte grandes sumas de dinero en marketing para corromper los departamentos de educación Una educación que usa el poder de las computadoras debería ser un medio hacia la libertad, no un camino para una empresa para continuar e inculcar su monopolio.
  2. Invadiendo la Privacidad: Microsoft utiliza software con programas raros como Microsoft Genuine Advantage, para examinar el contenido de los discos de los usuarios, el contrato que los usuarios aceptan al instalar Winsucks advierte que Microsoft puede hacer esto sin previo aviso.
  3. Comportamiento de Monopolio: La mayoría de equipos que se compran hoy en día tienen pre-instalado Windows, pero no por la elección del usuario , Microsoft establece los requisitos para los vendedores de hardware que no vendan computadores con Windows instalado en ellos, aunque muchas personas así lo prefieran. Incluso computadores que tienen otros sistemas operativos pre-instalados como GNU/Linux, tienen Windows instalado primero.
  4. Limitación: Microsoft generalmente obliga a los usuarios a actualizar el software, quitando el soporte para versiones anteriores de Windows y Office, también incrementando los requerimientos de hardware. Para muchas personas esto significa tirar sus antiguos ordenadores debido a que no cumplen con los nuevos requerimientos de la nueva versión de Windows.
  5. Abuso de los Estándares: Microsoft ha intentado bloquear la libre estandarización, de formatos, porque formatos como OpenDocumentFormat (ODF) pondrían en peligro los formatos propietarios de Word. Microsoft ha cometido hechos deshonestos, como sobornos a funcionarios para impedir las estandarizaciones.
  6. Imponiendo DRM(Digital Restrictions Mangament ): Con Windows Media Player, Microsoft trabaja junto con grandes compan¡ñías de contenido Multimedia para crear restricciones en copiar y reproducir multimedia en su sistema operativo. Por ejemplo, a petición de NBC, Microsoft pudo impedir que los usuarios pudieran grabar los shows de televisión, incluso cuando los usuarios tenían derecho de grabarlos.
  7. Amenazando la seguridad de los Usuarios: Microsoft tiene un largo historial sobre la vulnerabilidad de sus sistemas operativos, permitiendo la propagación de virus, y que terceras personas tomen el control de los ordenadores. Debido a que el código de Windows es secreto, todos los usuarios dependen de Microsoft para que resuelva estos problemas, pero Microsoft tiene sus propios planes sobre seguridad en mente y no son los mismos que los de sus usuarios.

A mi parecer esta campaña tiene un lado bueno y uno malo, el lado bueno es que al fin se esta dando a conocer a las demás personas, para que hagan conciencia de las intenciones de Microsoft, y las desventajas que el software privativo puede tener, espero que esta campaña tenga una fuerte repercusión en el mundo del software. el aspecto negativo es que no veo la necesidad de FSF de atacar a Microsoft, aunque no hace mal recordar la campaña de de Windows 7, donde presentaban su producto mejor que GNU/Linux, la verdad creo que Microsoft ya esta bastante asustado 😀 .

En fin les dejo a su criterio que tipo de software usar, tomando en cuenta las ventajas de cada tipo, aunque todos sabemos que el software libre tiene como 99.9% de ventajas sobre el software propietario hahaha 🙂

Para mayor informacion de este movimiento, pueden visitar : http://en.windows7sins.org/

saludos

 

septiembre 28, 2009

Turorial: Parser Descendente Recursivo

por Josue Ortega

Bueno para los que se preguntan como hacer un parser a partir de una gramática que hemos diseñado, aquí le enseñare brevemente como hacer un parser descendente recursivo

Tenemos que tomar en cuenta lo siguiente:

1. Nuestra gramática no debe ser recursiva a la izquierda.Por ejemplo la producción

E::=Er

es recursiva  la izquierda, para este tipo de gramáticas nuestro parser no sería funcional, asi que hay que quitarle la recursividad a la izquierda

2.Debemos construir los conjuntos: First, Follow, para cada producción de nuestra gramatica.

Estructura del parser:

LookAhead: Esta variable(global), inicialmente es el token de mas a la izquierda de la entrada.

Por cada NO TERMINAL de la gramática debe existir un procedimiento del parser.Para hacer mas fácil su programación, el nombre del procedimiento tendrá el nombre del no terminal.

Cada una de las opciones del no terminal formaran el cuerpo del procedimiento.

Procedimiento Match: Con este procedimiento sabremos si es el TERMINAL correcto, lo detallare a continuación

void Match(token simbolo){
if(lookahead==simbolo)
lookahead=siguienteSimbolo;/* para obtener el siguiente simbolo se puede hacer un procedimiento para pedir el siguiente toke que recibimos del analizador lexico*/
else
ERROR
}

Bueno, ahora a programar, escribiré un parser para la siguiente gramática:

terminales: x,y,z;

E:=xP | H     /*  E produce x segido de la producción P ó la producción H       */

P:=Tz

H:=y

T:=yx;

****************************************************************

var token lookahead;//variable del tipo del token que ustedes utilicen

void main {

//Iniciar Scanner si s necesario

lookahead=nexToken() // funcion que devuelve el token siguiente

E();
}
void E(){
if(lookahead==x)
Match(x);
P();
else
H();
}
void P(){
T();
Match(z);
}
void T(){
Match(y);
Match(x);
}
void H(){
Match(z);
}

Y así de sencillo es un parser descendente Recursivo 🙂

Si se dan cuenta el parser recorre el árbol de arriba hacia abajo de allí viene descendente,

Y Recursivo se debe a que el parser puede llamarse a si mismo directa o indirectamente por medio de sus funciones 🙂

Espero que les sirva de algo,

Dudas, comentarios o sugerencias, no duden en escribir

saludos