rretamar
Usuario (Argentina)
¿DE QUÉ HABLAMOS CUANDO HABLAMOS DE CULTURA? En un sentido amplio, cultura es la suma de las actividades humanas, todo lo que el hombre hace para modificar su entorno o incidir sobre él. Pero acotando un poco este enfoque, podríamos definir como cultura al conjunto de saberes, habilidades y conocimientos que una comunidad posee. No se trata de un cúmulo de atributos inmutable, sino que sus componentes están en perpetua transformación. Se puede alentar y mejorar el patrimonio cultural, o por el contrario se lo puede bastardear y envilecer. Y esto último es lo que ha venido ocurriendo desde hace décadas en nuestro país. También en otros, desde ya, pero que de los otros se ocupen sus ciudadanos. En mi modesta opinión la base de todo lo bueno y lo malo que genera un pueblo reside en la cultura. No hay cambio social sin cambio cultural. No hay mejora en el nivel de vida si esta no viene de adentro. Más y mejor cultura nos hará más y mejores personas. Sin ir tan lejos, unas décadas atrás, en la Argentina ya había delincuentes (vaya novedad). Pero estos tenían ciertos parámetros, códigos o límites (como prefieran llamarlos) que enmarcaban su accionar dentro de un conjunto de valores. Por ejemplo: a un viejo, a una mujer o a un niño, no se los golpeaba ni agredía. Si alguien era chorro, no necesariamente debía ser asesino. Ciertos actos que deshonran la condición humana eran considerados aberrantes y rechazados incluso por los “malvivientes”. Hoy, la decadencia cultural, sumada a la aparición de factores concretos de alienación -en especial las drogas basura- ha generado un nuevo modelo de delincuente que carece prácticamente de rasgos humanos, si consideramos como tales a los sentimientos y a ciertos límites que cualquier persona se auto impone. ¿Qué batalla deberíamos dar para revertir esta situación? ¿Alcanza con radares en las fronteras y control policial? ¿Alcanza con el desplazamiento de cúpulas corruptas, con nuevos mapas del delito, con más armas y efectivos, con instalación de cámaras, con recompensas a quien denuncie a los narcos? Está claro que no, que no alcanza. Está claro (o debería estarlo) que más represión y control es atacar solo la punta del iceberg, ignorando lo que está sumergido. Y lo sumergido es un entramado siniestro y decadente de valores, determinado por la extrema ignorancia, por la acción nefasta de los medios masivos (la TV en especial), la falta de una escuela eficaz, de premios a los buenos ejemplos, de propuestas integradoras que le devuelvan a las personas su condición de tales, sacándolos de la miseria, el atraso y la parálisis mental. ¿Cuánto hay que invertir para cambiar de raíz esta situación? Todo lo que se invierta es poco. Porque está en juego nuestra devastada calidad de vida. Habitamos un país atravesado por la ignorancia, sometido a los exabruptos de la prepotencia, con la ley del más fuerte como único argumento, con la vida de muchos (demasiados), convertida en un mero conjunto de signos vitales. ¿Tienen conciencia nuestros dirigentes de esta necesidad imperiosa? No lo parece. Al menos no se refleja en el discurso que bajan a la sociedad ni en el sonsonete que nos endilgan catalogando a la Argentina como “un país de buena gente”. La batalla cultural, insisto, es la madre de todas las batallas. Y hoy por hoy la estamos perdiendo por goleada. Juan Carlos Muñiz
MATERNIDAD, UNA DECISIÓN NO IMPUESTA ´No quiero tener hijos. ¿Y qué?´ Crece el número de mujeres que decide no ser madre aunque persiste la presión social y familiar a la que se enfrentan. "¿Y tú para cuándo?", "¿A qué estás esperando?", "Se te va a pasar el arroz", "Si no eres madre no te vas a sentir realizada". Estas son solo algunas de las muchas preguntas y críticas a las que, aún hoy, tienen que enfrentarse gran parte de las mujeres que, por diversas razones, deciden que no quieren ser madres. Sociólogos y psicólogos admiten esta presión social aunque aseguran que las cosas comienzan a cambiar. "Mami, no hace falta tener bebés, ¿a que no?". Con esta frase se dirigía una niña de tres años a su madre, que se había parado un rato a hacerle unas carantoñas a un niño de meses. Sin embargo, esa aplastante lógica infantil no es la que predomina en la sociedad adulta. Las mujeres que toman esta aún controvertida decisión siguen enfrentándose a una fuerte presión social que se basa en una falaz ecuación: ser mujer es ser madre. Así, mujeres que se acercan a los cuarenta años y, por diversas razones, han decidido no ser madres, se topan a menudo con los consabidos comentarios de "mira, que se te va a pasar el arroz", "te vas a arrepentir dentro de unos años" o "una mujer no está completa si no es madre". Sociólogos, psicólogos y ginecólogos gallegos, además de mujeres que han tomado la decisión de no pasar por la maternidad, reconocen en este reportaje que las cosas van cambiando, pero que aún está muy presente esta obligación callada de la mujer a ser madre. María Lameiras, presidenta de la Cátedra de Estudios Feministas de la Universidad de Vigo, aborda este tema en su libro "Sexualidad y salud", recientemente publicado. "El modelo de cultura judeo cristiano y patriarcal considera que la maternidad es el destino de las mujeres y eso es una forma también de ejercer violencia de género", advierte, al tiempo que recuerda que a un hombre que no es padre no se le suele preguntar por qué o para cuándo. "La maternidad se impone como un elemento de valorización de la mujer y se olvida que ser madre es algo que tiene que decidir la propia mujer, sin presiones de ningún tipo, ni para serlo ni para no serlo", afirma. La experta asegura que las presiones se hacen más fuertes cuando la mujer se acerca a los 40. "A esas edad es a la que más mujeres sucumben y, a veces, toman la decisión sin la necesaria libertad". "La maternidad no es un destino para las mujeres sino un camino que se elige transitar y que es enormemente gratificante cuando es fruto de una elección libre", añade. Las presiones a las que son sometidas las mujeres pueden llegar a hacer dudar a alguna que en realidad no desea esa maternidad "y provocarle un malestar psicológico considerable", explica la psicóloga Concha Rodríguez, responsable da sección de Xénero e Igualdade del Colegio Oficial de Psicólogos de Galicia. La experta advierte de que esa presión, que viene de distintos ámbitos lleva a algunas mujeres a convertirse en madres por convencionalismo. "Ir en contra de sus propios deseos, aunque sea de una manera inconsciente, lleva a muchas madres a conflictos más profundos; a sufrir un sentimiento de culpa y a sentirse incompetentes en ese papel", añade Rodríguez. Instinto maternal El llamado instinto maternal, que durante décadas se ha considerado inherente a la mujer, ha sido uno de los principales "culpables" de que se tache de raras a las mujeres que no sienten ese deseo de procreación. Sin embargo, los científicos aseguran que no existe una causa fisiológica demostrada para ese instinto que sienten gran parte de las mujeres, sino que "es algo que se modula por la educación, la sociedad, la cultura, el desarrollo personal, la estabilidad laboral, etc.", explica Elkin Muñoz, director del IVI en Vigo. El ginecólogo sí destaca la existencia del "reloj biológico" de la maternidad. "La decadencia de la fertilidad empieza a partir de los 37 años, momento en que comienza a disminuir la producción de óvulos, y a partir de los 40-42 años la caída es muy importante, es por eso que las mujeres que nos consultan más allá de esa edad tienen que recurrir a la donación de óvulos", indica el especialista. Cuando se alcanza la menopausia significa que la mujer se queda sin óvulos por lo que no puede ser madre. "Eso es el reloj biológico, que no tiene relación con el hecho de que una mujer desee o no ser madre", explica Muñoz. De hecho, biológicamente el mejor momento para ser madre son los 23-24 años, mientras que, actualmente, a esa edad el deseo de serlo es prácticamente nulo en la mayoría de las mujeres. Eva Martín tiene 43 años y asegura que nunca le interesó tener hijos. "Mi marido tampoco tuvo nunca intención de ser padre, por eso ni nos lo hemos llegado a plantear ni ha sido algo problemático para nosotros; no es que me disgusten los niños ni que mi forma de vida no me permita tenerlo, simplemente, estamos bien así", asegura con rotundidad esta profesora de francés. Eva no ha sufrido presión por parte de su familia, aunque admite que en algún momento sí tuvo que atajar comentarios de algunas compañeras con hijos que cuestionaban su postura. "Aunque no han sido demasiados porque soy bastante cortante con esas cosas", advierte. Eva reclama un mayor respeto para las decisiones de cada persona: "Yo creo que cada uno elige su camino y eso debe ser respetado por los que le rodean. Yo soy feliz así y me siento bien, y eso es lo que importa". El argumento estrella contra aquellas que no quieren ser madres es que son "egoístas". "Me parece increíble que alguien te pueda decir algo así; al contrario, creo que las mujeres que nos lo planteamos somos responsables", afirma la diseñadora de joyas Marta Armada que, a sus 46 años, admite que nunca ha sentido verdaderos deseos de ser madre. "Por mi forma de vida sería muy difícil y, la verdad, no tengo ganas de algo así. Los niños no me atraen y no lo siento en absoluto como una renuncia", añade. Marta asegura que la inestabilidad económica, sobre todo en tiempos de crisis, es una razón importante para que muchas mujeres opten por su misma decisión. Advierte además que el peso de los niños "sigue recayendo mayoritariamente en las mujeres porque no hay un verdadero reparto de tareas, por lo que la carrera de la mujer es fácil que se resienta". Su percepción la confirman los datos del Instituto Nacional de Estadística que apuntan que en España solo un 2,1% de varones reduce su jornada laboral frente a un 21,1% de las mujeres para dedicar ese tiempo a los niños. La artesana también ha visto en su entorno a parejas que han decidido tener hijos para rehacer sus relaciones truncadas "y la mayor parte de las veces ha sido un desastre, con lo que me alegro de no haber hecho algo así". Rosa Cobo, socióloga especialista en temas de género, asegura que la sociedad también va evolucionando en este sentido. "Aunque se mantiene en todas las sociedades y culturas esa presión hacia la mujer para que sea madre, cada vez se va debilitando más, especialmente en los países donde las mujeres han accedido al mercado laboral y tienen vidas autónomas". La presión, explica Cobo, "procede de la sociedad patriarcal en la que aún vivimos y en la que las mujeres han sido definidas como esposas, madres y trabajadoras gratuitas; hay una clara socialización de género". La socióloga lamenta además "la respuesta reactiva que ha recibido la mujer que avanza en el mundo laboral y en su autonomía por parte del fundamentalismo católico y el gobierno tan conservador actuales. Frases como la de Gallardón sobre que 'la maternidad es la que hace a las mujeres auténticamente mujeres' me dejan perpleja y demuestran que aún queda mucho camino por recorrer", concluye. Si vas a trollear, te borro los comentarios. Gracias.

Ampliar la imágen: http://www7.pic-upload.de/30.11.13/nbzq71lqmpho.png Enlace al archivo original: http://imgur.com/Frr2Vbp
Enlace para colocar la imagen en foros, blogs, etc: Más información en:
1.- La estrategia de la distracción. El elemento primordial del control social es la estrategia de la distracción que consiste en desviar la atención del público de los problemas importantes y de los cambios decididos por las elites políticas y económicas, mediante la técnica del diluvio o inundación de continuas distracciones y de informaciones insignificantes. La estrategia de la distracción es igualmente indispensable para impedir al público interesarse por los conocimientos esenciales en las áreas de la ciencia, la economía, la psicología, la neurobiología y la cibernética. ”Mantener la atención del público distraída, lejos de los verdaderos problemas sociales, cautivada por temas sin importancia real…/…. Mantener al público ocupado, ocupado y ocupado, sin ningún tiempo para pensar; de vuelta a la granja como los otros animales.” (Cita del documento ‘Armas silenciosas para guerras tranquilas’). 2.- Crear problemas y después ofrecer soluciones. Este método también es llamado ‘problema-reacción-solución’. Se crea un problema, una ‘situación’ prevista para causar cierta reacción en el público, a fin de que éste sea el demandante de las medidas que se desea hacer aceptar. Por ejemplo: dejar que se desenvuelva o se intensifique la violencia urbana, u organizar atentados sangrientos, a fin de que el público sea el demandante de leyes de seguridad y políticas en perjuicio de la libertad. O también crear una crisis económica para hacer aceptar como un mal necesario el retroceso de los derechos sociales y el desmantelamiento de los servicios públicos. 3.- La estrategia de la gradualidad. Para hacer que se acepte una medida inaceptable, basta aplicarla gradualmente, a cuentagotas, durante años consecutivos. De esta manera fueron impuestas durante las décadas de 1980 y 1990 condiciones socioeconómicas radicalmente nuevas (neoliberalismo): Estado mínimo, privatizaciones, precariedad, flexibilidad laboral, desempleo en masa, salarios que ya no aseguran ingresos decentes. Cambios que hubieran provocado una revolución si hubiesen sido aplicados de una sola vez y no de forma gradual, tal y como se ha hecho. 4.- La estrategia de diferir. Otra manera de hacer aceptar una decisión impopular es la de presentarla como ‘dolorosa y necesaria’, obteniendo la aceptación pública en el momento para una aplicación futura. Es más fácil aceptar un sacrificio futuro que un sacrificio inmediato. En primer lugar, porque el esfuerzo no es empleado inmediatamente. Segundo, porque el público, la masa, tiene siempre la tendencia ingenua a esperar que ‘todo irá mejor mañana’ y que el sacrificio exigido podrá ser evitado. Esto da más tiempo al público para acostumbrarse a la idea del cambio y de aceptarla con resignación cuando llegue el momento. 5.- Dirigirse al público como criaturas de poca edad. La mayoría de la publicidad dirigida al gran público utiliza discursos, argumentos, personajes y entonaciones particularmente infantiles, muchas veces próximos a la debilidad, como si el espectador fuese una criatura de poca edad o un deficiente mental. Cuanto más se intenta engañar al espectador, más se tiende a adoptar un tono infantil. ¿Por qué?: Si uno se dirige a una persona como si tuviese 12 años o menos, entonces, debido a la sugestionabilidad, esta tenderá, con cierta probabilidad, a una respuesta o reacción más infantil desprovista del sentido crítico de un adulto. 6.- Utilizar el aspecto emocional mucho más que la reflexión. Hacer uso del aspecto emocional es una técnica clásica para causar un corto circuito en el análisis racional y, finalmente, neutralizar el sentido crítico de los individuos. Por otra parte, la utilización del registro emocional permite abrir la puerta de acceso al inconsciente para implantar o insertar ideas, deseos, miedos y temores, compulsiones, o inducir determinados comportamientos, etc. 7.- Mantener al pueblo en la ignorancia y la mediocridad. Hacer que el público sea incapaz de comprender las tecnologías y los métodos utilizados para su control y su esclavitud. “La calidad de la educación dada a las clases inferiores debe ser de la peor calidad, de manera que la brecha de la ignorancia, que separa las clases inferiores de las clases superiores, sea y permanezca incomprensible para las clases inferiores. Con tal discapacidad, incluso los mejores elementos de las clases inferiores, tienen poca esperanza de destacar sobre los demás en el estrato social que les ha sido asignado en la vida. Esta forma de esclavitud es esencial para mantener un cierto nivel de orden social, paz y tranquilidad para las clases superiores dirigentes.” (Ver ‘Armas silenciosas para guerras tranquilas’). 8.- Estimular al público a ser complaciente con la mediocridad. Inducir al público a creer que está de moda el hecho de ser estúpido, vulgar, inculto, mal hablado, admirador de gente sin talento alguno. Despreciar lo intelectual, exagerar el valor del culto al cuerpo y el desprecio por el espíritu. 9.- Reforzar la auto-culpabilidad. Hacer creer al individuo que solamente él es el culpable de su propia desgracia, debido a la insuficiencia de su inteligencia, de sus capacidades, o de sus esfuerzos. Así, en lugar de rebelarse contra el sistema económico y social, el individuo se autoevalúa y se culpa a sí mismo, lo que genera un estado depresivo, uno de cuyos efectos es la inhibición de su acción. Y, sin acción, no habrá reacción ni revolución. 10.- Conocer a los individuos mejor de lo que estos se conocen a sí mismos. En los últimos 50 años, los avances acelerados de la ciencia han generado una brecha creciente entre los conocimientos del público y los conocimientos poseídos y utilizados por las elites dominantes. Gracias a la biología, la neurobiología y la psicología aplicada, el ‘sistema’ ha disfrutado de un conocimiento avanzado del ser humano, tanto de forma física como psicológica. El sistema ha conseguido conocer mejor al individuo común de lo que este se conoce a sí mismo. Esto significa que, en la mayoría de los casos, el sistema ejerce un control y un poder sobre los individuos mayor que el de los individuos sobre sí mismos.

¿ Te gusta el cine de terror y fantástico más extremo ? ¿ No le hacés asco a nada ? Hay vida más allá de Hollywood. 10 sitios web imprescindibles para todo aficionado del cine de terror y fantástico más extremo Acá hay algunas webs que vale la pena visitar. En estos sitios me he enterado de joyas como "Tokyo Gore Police", "A Serbian Film" "The Machine Girl", "La Horde", "Gutterballs" y similares, todas películas que la mayoría de los sitios web de cine "mainstream" directamente omite. No son sitios de enlaces para descargas, pero sí para enterarte de que existe tal o cual película para poder descargarla (o alquilarla...). Todos contienen críticas de las películas que vale la pena leer. Acá están, estos son: 1) Almas Oscuras: http://www.almasoscuras.com 2) Dimensión Fantástica: http://dimensionfantastica.blogspot.com 3) Klown Asesinos: http://www.klownsasesinos.com 4) Imagen en Negativo: http://imagenennegativo.blogspot.com 5) Blog Horror: http://www.bloghorror.com 6) Gore Nation: https://gorenation.wordpress.com 7) La Morgue Cinema: http://lamorguecinema.blogspot.com 8) Fando Terror: http://fandoterror.blogspot.com 9) Undergroundz: http://undergrounz.blogspot.com 10) Nido de Cuervos: http://www.nidodecuervos.com Que las disfruten !!!!
La publicidad de Coca Cola que nunca veremos en televisión. La otra cara de la moneda. Invito a que le demos difusión a esta información, siempre es bueno saber lo que estamos tomando y el daño que puede hacernos. link: http://www.youtube.com/watch?v=wnxwyrhqLgg
Enlace original al artículo: http://blogdrake.net/node/14780 (Blogdrake: comunidad de usuarios hispanoparlantes de Mandriva Linux) El artículo original está en formato HTML. Fue convertido a BBCODE (compatible con Taringa) gracias al siguiente utilitario: http://www.seabreezecomputers.com/html2bbcode/ Cómo parecer un gurú de UNIX Hola. Os dejo una traducción / adaptación de un pequeño texto con algunas cosas que os pueden interesar a los nuevos sobre el uso de la consola y la línea de comandos. A ver si le vamos perdiendo el miedo. (Original de Terence Parr , última actualización 30 de agosto de 2006) UNIX se ha convertido en una plataforma extremadamente popular para el despliegue de software servidor, en parte debido a su seguridad y estabilidad, pero también porque tiene un rico juego de comandos de consola y herramientas de scripting. Los programadores usan esas herramientas para manipular el sistema de ficheros, procesar logs, y generalmente, automatizar tanto como sea posible. Si estás interesado en ser un desarrollador de servidores serio, necesitas tener cierto dominio de una serie de herramientas UNIX, unas 15. Empezarás a ver similitudes entre ellas, particularmente las expresiones regulares, y pronto te encontrarás muy cómodo. Combinando comandos simples, puedes construir herramientas muy poderosas realmente rápido -mucho más que si quisieras crear la funcionalidad equivalente en C o Java, por ejemplo. Esta lectura te llevará a través de los comandos básicos y te mostrará cómo combinarlos en patrones simples para proveer de sofisticadas funcionalidades como histografía. Este texto asume que sabes lo que es un shell y que tienes alguna familiaridad básica con UNIX. (De paso, este texto ha obtenido bastante atención en la red y desafortunadamente, recibo correos de un montón de gente que tiene mejores soluciones o material que debería añadir. Yo sólo muestro qué he aprendido observando a gente buena en UNIX, así que no estoy diciendo que estas pistas sean las soluciones óptimas). Todo es un flujo Lo primero que necesitas saber, es que UNIX está basado en la idea de flujo de datos. Todo es un flujo, o aparenta serlo. Los dispositivos son flujos, los terminales son flujos, los procesos se comunican a través de flujos... etc. La entrada y salida de datos de un programa son flujos que puedes redirigir a un dispositivo, un fichero, o a otro programa. Aquí hay un dispositivo de ejemplo, el dispositivo null, que elimina lo que se le envía. Por ejemplo, quieres ejecutar un programa, pero ignorar la salida. $ ls > /dev/null # ignora la salida de ls Donde "# ignora la salida de ls" es un comentario. Muchos de los comandos que son cubiertos por este documento procesan stdin y envían el resultado a stdout. De esta forma, puedes ir procesando un flujo de datos de forma incremental conectando la salida de una herramienta a la entrada de otra mediante una tubería. Por ejemplo, la secuencia de tuberías siguiente muestra el número de ficheros del directorio actual modificados en Agosto: $ ls -l | grep Ago | wc -l Imagina el tiempo que te tomaría escribir su equivalente en C o Java. Puedes convertirte en un programador UNIX extremadamente productivo si aprendes a combinar las órdenes de consola simples. Consiguiendo ayuda Si necesitas conocer el funcionamiento de un comando, busca en su página de manual. Por ejemplo, para conocer a forndo el comando ls, teclea: $ man ls Y tendrás un resumen del funcionamiento dle programa y sus argumentos. Si no puedes recordar el nombre de un comando, intenta usar apropos, el cual encuentra comandos y rutinas de librería relacionadas con la palabra dada. Por ejemplo para encontrar comandos para realizar sumas de control, teclea: $ apropos checksum cksum(1), sum(1) md5(1) Directorios y ficheros especiales Un atajo a tu directorio personal, /home/usuario, es ~usuario. Por ejemplo, ~flynn es mi directorio personal, /home/flynn. Cuando usas el shell, hay que tener presente siempre la noción de directorio acutal. El carácter punto "." es la representación del directorio actual y ".." es la representación del directorio superior. Así, para acceder al archivo test en el directorio actual, ./test es equivalente a test. Si test está en el directorio superior, usa ../test. / es el directorio raíz, del que cuelgan el resto de directorios; no hay especificación de unidades en UNIX (C:, D:, etc.) El archivo .bash_profile es muy importante, ya que incluye los parámetros bajo los cuales se inician tus sesiones en el shell, incluyendo las siempre importantes variables de entorno CLASSPATH. Cada usuario tiene un fichero de inicialización de entorno en ~usuario/.bash_profile, y está conformado por código como: PATH=$PATH:$HOME/bin Lo normal es que lo edites para definir tus CLASSPATH y así te evitas definirlas a cada inicio de sesión. export CLASSPAHT=.:/home/public/cs601/junit.jar" El comando export implica que lo asignado a CLASSPATH sea visible a todos los procesos hijos (esto es, visible para todos los programas que inicies desde el shell) Los básicos cd Para cambiar de directorio se usa cd (directorio) donde directorio puede ser "." o ".." para ir al directorio actual -no moverse- o ir al superior. También se puede especificar una ruta como cd /home/flynn/Descargas. ls Lista los ficheros en un directorio. El modificador -l se usa para mostrar los detalles de los mismos. Si quieres ver los archivos ocultos (que empiezan por ".", usa el modificador -a. Pueden combinarse distintos modificadores: ls -la, mostrará listará todos los ficheros de un directorio, incluyendo los ocultos, mostrando sus detalles. Mostrar contenidos de ficheros Aquí tienes cuatro útiles ejemplos sobre cómo mostrar los contenidos o porciones de un fichero. El primero es el muy comúnmente usado comando cat. Por ejemplo, para mostrar los contenidos de mi lista de ex-novias: $ cat /home/flynn/cuidadito/zorrasimplacables.txt Si un fichero es realmente grande (como mi lista de ex-novias), puedes usar more que trocea su salida en porciones pantalla-a-pantalla: $ more /home/flynn/cuidadito/zorrasimplacables.txt Si quieres ver las primeras o las úlitimas líneas de un fichero, usa head y tail, respectivamente. $ head /home/flynn/cuidadito/zorrasimplacables.txt $ tail /home/flynn/cuidadito/zorrasimplacables.txt Puedes especificar cuántas líneas quieres mostrar añadiendo -número como argumento: $ head -30 /home/flynn/cuidadito/zorrasimplacables.txt Uno de los más útiles modificadores de tail muestra las últimas líneas de un fichero, y queda en espera, mostrando nuevas líneas conforme se van añadiendo. Ideal para monitorizar un fichero de log: $ tail -f /var/log/mail.log Si necesitas conocer cuántos caracteres, palabras o líneas hay en un fichero usa wc: $ wc /home/flynn/cuidadito/zorrasimplacables.txt 164 2916 37896 /home/flynn/cuidadito/zorrasimplacables.txt Donde los números son, por orden (e inventados), líneas, palabras, caracteres. Para mayor claridad, puedes usar wc -l para mostrar únicamente el número de líneas. pushd, popd En lugar de cd puedes usar pushd para guardar el directorio actual e ir (cd) al directorio especificado. Por ejemplo, $ pwd /home/flynn $ pushd /tmp /tmp ~ $ pwd /tmp $ popd ~ $ pwd /home/flynn top Para observar una representación dinámica de los procesos de tu máquina, usa top. ps Para mostrar (muy detalladamente) todos los procesos de una máquina, usa ps auxwww. chmod Para cambiar los permisos de un fichero o directorio, usa chmod. Los permisos son palabras octales de 3 dígitos con 3 bits por dígito: rwxrwxrwx. Los tres primeros dígitos son los permisos del propietario del fichero, los segundos son para su grupo y los restantes para el resto. 644 es el valor común para los ficheros, que serían 110100100 o rw-r--r--. Si haces un ls -l puedes ver los permisos de cada fichero del directorio. 755 es el valor común para los directorios: rwxr-xr-x. Los directorios necesitan ser ejecutables (x) para habilitar su entrada con cd. 755 es una abreviatura para u=rwx,go=rx. Donde "u" es usuario, "g" es grupo y "o" es otros. Usa el modificador "-R" para cambiar recursivamente los permisos de ficheros y directorios a partir del directorio actual. Buscando en los flujos Bajo éste escatológico subtítulo, vamos a conocer una de las más útiles herramientas disponibles en UNIX y una de las que más vas a emplear: grep. Esta herramienta busca coincidencias con expresiones regulares (que incluyen palabras simples) y muestra las líneas con coincidencias en stdout. La implementación más simple busca una secuencia de caracteres particular en un juego de ficheros. Aquí hay un ejemplo que busca cualquier referencia a "p0rn" en el directorio actual: $ grep p0rn * Encontrarás la expresión regular punto "." útil. Representa cualquier caracter y se combina normalmente con el asterisco, que simboliza "cero o más del ítem al que precede". Recuerda que encerrar la expresión entre comillas simples no modifica el argumento. El siguiente ejemplo busca referencias a todas las páginas que comiencen por "forum" en el access.log de un servidor lighttpd: $grep '/forum/.*' /var/log/lighttpd/access.log O, de forma equivalente: $cat /var/log/lighttpd/access.log | grep '/forum/.*' El segundo método es útil cuando quieres procesar una colección de ficheros en un único flujo como: $ cat /var/log/lighttpd/access*.log | grep '/forum/.*' Si necesitas buscar una cadena al principio de una línea, usa el modificador '^': $ grep '^192.77.105.200' /var/log/lighttpd/access*log Éste comando mostrará todas las líneas en todos los archivos access*.log que comiencen por la IP 195.77.105.200. Si quisieras invertir el patrón de búsqueda de forma que se mostrasen las líneas que no incluyan dicho patrón, usa el modificador -v. Aquí hay un ejemplo que busca referencias a líneas que no contengan referencias a "/images": $ cat /var/log/lighttpd/access.log | grep -v '/images' Ahora imagina que tienes un archivo log de accesos http y quieres filtrar peticiones de página hechas por "spiders" de buscadores. Si tienes un fichero con las IP's de dichos spiders lamado spider.IPs, puedes encontrar todas las vistas de página no solicitadas por spiders, así: $ cat /var/log/lighttpd/access.log | grep -v -f /tmp/spider.IPs Finalmente, para ignorar entre mayusculas y minúsculas, usa -i. Traduciendo Flujos Transformar un flujo de texto es una operación fundamental en UNIX. PERL es una buena herramienta para ello, pero como no me gusta PERL (N.del T: allá el), uso tres herramientas: tr, sed y awk. Tanto PERL como estas tres herramientas son utilidades línea-a-línea en las que se desenvuelven bien sólo en patrones totalmente incluídos en una única línea. Si necesitas procesar cosas más complicadas como XML o necesitas parsear a un lenguaje de programación, usa una herramienta gramática independiente del contexto como ANTLR . tr Para el manipulado de espacios en blanco, encontrarás mucha utilidad en tr. Si tienes columnas de datos separadas por espacios y quieres colapsarlas en una única columna de datos, pídele a tr que reemplace al espacio en blanco por el retorno de carro: $ tr ' ' '\n' Consideremos el archivo de datos de entrada /home/flynn/gente: jaimito pepito miguelito guillermito ramoncito antoñito Para tener todos esos nombres en una columna, usa: $ cat /home/flynn/gente | tr ' ' '\n' Si quieres colapsar todas las secuencias de espacios en blanco en un único espacio usa: $ tr -s ' ' Para realizar la conversión de un fichero win a UNIX, debes deshacerte del caracter '\r'. Usa ésto: $ tr -d '\r' sed Si eliminar o convertir caracteres únicos no basta, puedes usar sed (stream editor, editor de flujos) para reemplazar o borrar fracciones de texto que coincidan con una expresión regular. Por ejemplo, para borrar a jaimito del archivo de antes: $ cat /home/flynn/gente | sed 's/jaimito//' Lo cual sustituye a jaimito por nada. Si hay múltiples coincidencias en una línea, usa el sufijo "g" para indicar "global" en esa línea, de otro modo sólo la primera coincidencia será eliminada: $ ... | sed 's/jaimito//g' Si quieres reemplazar vista.jpg por mandriva.jpg, usa: $ ... | sed 's/vista.jpg/mandriva.jpg/' Si pretendes renombrar archivos de forma masiva, debes encontrar equivalencias en el nombre de archivo con una expresión regular y hacer referencia a ella con \1: $... | sed 's/\(.*\).asp/\1.jsp/' Donde lo que se incluye entre \(...)\) agrupa el texto al que puedes referirte con \1. Para eliminar todo lo que se encuentre detrás del carácter ',' hasta el final de cada línea, se usa el marcador de fin de línea $: $...| sed 's/,.*$//' # Elimina contenido desde el carácter coma hasta el fin de línea awk Cuando necesites trabajar con columnas de datos, o ejecutar pequeñas porciones de código para cada línea de un archivo que coincida con un patrón, usa awk. Los guiones de awk se componen de pares patrón-acción. Aunque puedes programar acciones lo bastante complejas para necesitar un fichero por separado para contenerlas, puedes realizar cosas sorprendentes usando únicamente un argumento en la línea de comandos. awk asume que las líneas que va leyendo están separadas en campos (p.e., columnas) separados por espacios en blanco. Los campos se referencian en una acción a través de $1, $2,... y $0 hace referencia a la línea completa. El esquema del par patrón-acción es el siguiente: patrón {acción} Si omites el patrón, la acción se ejecuta para cada línea. Omitir la acción implica la impresión de la línea. Puedes separar varios pares por medio de retornos de carro o semicolon. Consideremos este fichero de entrada, situado en /var/mail/users.txt: flynn Flynn, Kevin allan1 Bradley, Allan edillinger Dillinger, Edward Si quieres obtener una lista de nombres de usuario, dile a awk que imprima la primera columna: $ cat /var/mail/users.txt | awk '{print $1;}' Si lo que quieres es convertir los nombres de usuario en cuentas de correo, usa la función printf, similar a la homónima en C: $ cat /var/mail/users.txt | awk '{printf("%s@emcom.net,",$1);}' Sí, falta el \n en la cadena de printf, pero así tenemos la salida de awk en una sóla línea separada por comas, lista para pegar en el campo destino de un programa de correo... flynn@emcom.net, allan1@emcom.net, edillinger@emcom.net Hasta puedes reordenar las columnas en la salida. Por ejemplo, vamos a imprimir nombres y apellidos: $ cat /var/mail/users.txt | awk '{printf("%s %s\n", $3, $2);}' Fíjate que la coma del apellido todavía aparece como parte de su columna: Kevin Flynn, Allan Bradley, Edward Dillinger, Pues usamos una tubería hacia tr (o sed) para eliminarla: $ cat /var/mail/users.txt | \ awk '{printf(%s %s\n", $3, $2;}' | \ tr -d ',' Y lo que obtenemos es: Kevin Flynn Allan Bradley Edward Dillinger También puede usarse awk para examinar los valores de un contenido. Para sumar la primera columna del siguiente archivo (en home/flynn/estado.txt) 150 paranoides_espaciales 340 los_invasores 75 ataque_a_los_marcianos Simplemente hay que usar el siguiente comando: $ awk '{n+=$1; END {print n;}' < /home/flynn/estado.txt La partícula END es un patrón especial que significa "después de procesar el flujo". Si lo que pretendemos es sumar los valores menores o iguales a, por decir algo 200, pueden usarse sentencias if: $ awk '{if ($1<=200) n+=$1;} END {print n;}' < /home/flynn/estado.txt En este caso, veremos la salida 225 (150 de paranoides + 75 de ataque_a_los_marcianos). Utilizar awk para seleccionar una columna particular es muy común cuando procesamos archivos de log. Consideremos un archivo de log de accesos a una web (/var/log/lighttpd/mainman/access.log) Esto es un extracto trampeado de mi propio access.log , con los primeros accesos al blog desde la migración) que tiene el siguiente esquema: IP DOMINIO FECHA SOLICITUD RUTA DATOS_VISITANTE 127.0.0.1 themainman.kicks-ass.net [02/Nov/2008:02:50:59] GET /wp-content/themes/K2%20v096/style.css Mozilla/5.0 (X11 U Linux i686 es-ES rv:1.9.0.3) Gecko/2008092903 Mandriva/1.9.0.3-1mdv2009.0 (2009.0) Firefox/3.0.3 Vamos a ver qué peticiones se le hicieron al servidor: $ awk '{print $5;}' < /var/log/lighttpd/mainman/access.log (parrafada monumental) Bueno, vamos a buscar las conexiones hechas desde mi PocketPC HTC, y además vamos a mostrar la IP de la conexión y la fecha: $ grep 'HTC' < /var/log/lighttpd/mainman/acces.log | awk '{print $1,$2,$5;}' (parrafada más razonable) Si queremos tener una lista de ip's únicas, podemos ordenar la salida y luego usar uniq: $ awk '{print $1;}' < /var/log/lighttpd/mainman/access.log | sort | uniq El comando uniq colapsa todas las líneas repetidas en una única línea. Cuidadín, líneas iguales. Tarballs Nota: El nombre viene de una palabra similar, hairball (bolas de pelo que vomitan los gatos), Estoy bastante seguro. (N. del adap: Casi me caigo de la silla de la risa </ironic> Para recopilar un conjunto de archivos y directorios en un único archivo, se usa tar. Por ejemplo, para empaquetar todo tu /home y poner el tarball en /tmp: $ cd ~flynn $ cd .. # Subir al directorio superior al que se quiere empaquetar $ tar cvf /tmp/flynn.backup.tar ./flynn Por convención se usa .tar como extensión. Para desempaquetar el archivo: $ cd /tmp $ tar xvf flynn.backup.tar Tar desempaqueta cosas en el directorio actual. Después de ejecutar el desempaquetado, encontrarás un nuevo directorio, /tmp/flynn, el cual es una copia de tu home. Fíjate cómo tu tarball indica la estructura de directorios cuando se desempaqueta. El hecho de incluir flynn durante la creación del tar significa que se creará ese directorio cuando se desempaquete. Por contra, lo siguiente también crearía una copia de /home/flynn, pero sin un directorio raíz flynn: $ cd ~flynn $ tar cvf /tmp/flynn.backup.tar * Muchas veces podrás ahorrar espacio usando el argumento z. El tarball será comprimido con gzip y deberías usar la extensión .tar.gz: [/color] $ cd ~flynn $ cd .. # volvemos a ir al directorio superior al que queremos comprimir $ tar cvfz /tmp/flynn.backup.tar.gz flynn [/color] Para descomprimir, necesitaremos incluír el argumento z igualmente: $ cd /tmp $ tar xvfz flynn.backup.tar.gz Si tienes un archivo grande a comprimir, usa gzip: $ gzip -d p0rn.gz Para mostrar texto de un fichero que está actualmente comprimido, usa zcat: $ zcat labibliaenverso.gz Moviendo archivos entre máquinas rsync Cuando necesitas un mirror de un directorio de una máquina en otra máquina, usa rsync. Este comando compara todos los archivos en un árbol de directorios dado y copia todo aquello que haya cambiado en el directorio mirror que hayamos definido en otra máquina. Por ejemplo, aquí vemos cómo "sincronizar" todos los archivos de log del servidor webserver.themainman.kicks-ass.net hasta bestiaparda.themainman.kicks-ass.net, que es la máquina desde la que ejecutamos rsync: $ hostname bestiaparda.themainman.kicks-ass.net $ rsync -rabz -e ssh -v 'flynn@webserver.themainman.kicks-ass.net:/var/log/lighttpd/*' /backup/web/logs rsync borrará o modificará archivos para asegurarse de que permanezcan idénticos. Esto es peligroso si borras un archivo por error en el server -también desaparecerá de la copia-. Añadiendo el argumento --suffix indicamos a rsync que haga una copia de cada archivo existente antes de sobreescribirlo: $ hostname bestiaparda.themainman.kicks-ass.net $ rsync -rabz -e ssh -v --suffix .rsync_`date '+%d%m%Y'` 'flynn@webserver.themainman.kicks-ass.net :/var/log/lighttpd*' /backup/web/logs Donde `date '+%d%m%Y'` significa "ejecuta éste comando date". Para excluír ciertos patrones de la sincronicación se usa el modificador --exclude: $ rsync -rabz --exclude=entyitymanager/ (blablabla) /backup/web/logs scp Para copiar archivos o directorios manualmente, usa scp: $ scp lecturasejemplares.html flynn@webserver.themainman.kicks-ass.net~flynn/lecturas Análogamente al comando cp, puede usarse el modificador -r para copiar directorios recursivamente. Miscelánea find Muchos GUI para Linux tienen una herramienta de búsqueda, pero desde la línea de comandos, puedes usar find. Para encontrar todos los ficheros llamados .guarr empezando por el directorio ~flynn/guarreridas/p0rn, por ejemplo: $ find ~flynn/guarreridas/p0rn -name '.guarr' La acción por defecto es mostrar los archivos. Puedes especificar una expresión regular para buscar coincidencias. Por ejemplo, para buscar archivos xml por todo tu home: $ find ~ -name '*.xml' -print Atentos al uso de las comillas simples para prevenir la expansión de la línea de comando: quieres que '*' sea pasado al comando find. Puedes ejecutar un comando por cada fichero o directorio encontrado que coincida con el patrón. Por ejemplo para borrar los resultados de la búsqueda anterior: $ find ~ -name '*.xml' -exec rm {} \; Donde {} implica "archivo coincidente actual". El final del comando debe terminar por ";" y para que el sistema no se haga un lío con la expansión de la línea de comando, debes introducirlo como carácter escapado. También se puede especificar información sobre fechas y horas en la búsqueda. Aquí hay un script sencillo que busca y elimina ficheros de más de 14 días: #!/bin/sh BACKUP_DIR=/var/backup # número de días a conservar los backups MAXIMO=14 # en días MAXIMO_MINUTOS=$[ $MAXIMO * 60 * 24 ] # Cizallando find $BACKUP_DIR/* -cmin +$MAXIMO_MINUTOS -type d -exec rm -rf {} \; echo "MWAHAHAHAHAH!" fuser Vamos a fisgonear un poco. Con fuser podemos conocer quién está usando un puerto determinado, como el HTTP (80). Aunque hay que ser root para usarlo: $ su - Contraseña: # fuser -n tcp 80 80/tcp: 13476 13477 13478 13479 13480 13481 13482 13483 13484 13486 13487 13489 13490 13491 13492 13493 13495 13496 13497 13498 13499 13500 13501 13608 La salida del programa indica la lista de procesos asociados al puerto dado. Luego es trivial ver qué usuario ha lanzado cada proceso. whereis En ocasiones, quieres usar un comando, pero no está en tu PATH y no sabes / puedes recordar dónde está. Con whereis puedes mirar en las localizaciones standard de unix para el comando. $ whereis fuser fuser: /sbin/fuser $ whereis ls ls: /bin/ls En función del UNIX que usemos, también muestra las páginas de man which A veces, podemos ejecutar la versión equivocada de un comando y necesitamos saber qué versión del mismo indica nuestro PATH que debería usarse. Usando which lo sabremos: $ which java /usr/bin/java Si no se encuentra en nuestro path podremos ver algo como: $ which java /usr/bin/which: no java in (/usr/local/bin:/usr/local/bin:/bin:/usr/bin:/usr/ X11R6/bin:/usr/X11R6/bin:/home/flynn/bin) kill Para enviar señales a los procesos, se usa kill. Normalmente se usa kill (pid). El pid puede localizarse con ps o top. Usa kill -9 (pid) para matar un proceso que se niega a ello; este sistema lo mata bien muerto. traceroute Si tienes problemas para acceder a un site, puedes usar traceroute para comprobar la secuencia de saltos (hops) que requiere alcanzarlo: # traceroute blogdrake.net traceroute to blogdrake.net (91.121.174.173), 30 hops max, 40 byte packets 1 * * * 2 * * * 3 * * * 4 * * * 5 * So4-1-0-0-grtmadde1.red.telefonica-wholesale.net (84.16.12.54) 42.258 ms 52.211 ms 6 GE2-3-0-0-grtmadde2.red.telefonica-wholesale.net (213.140.38.46) 80.626 ms 48.267 ms 48.243 ms 7 * * * 8 ae-11-11.car1.Madrid1.Level3.net (4.69.135.173) 114.265 ms 114.455 ms 114.605 ms 9 30g.level3.mad-1-6k.routers.ovh.net (213.251.130.73) 115.079 ms * * 10 20g.gsw-1-6k.routers.ovh.net (213.251.128.41) 125.013 ms * * 11 160g.rbx-1-6k.routers.ovh.net (213.186.32.226) 160.498 ms * * 12 masai.masqueredes.com (91.121.174.173) 73.634 ms 73.698 ms 83.029 ms (nota: los saltos en blanco que se ven son los del proxy, el servidor de dominio Windorls y el firewall guarro que hay en la red desde la que estoy conectado en este momento. El salto 7 diría que es el del proxy transparente de la Timo). ¿Cuál es mi IP? # ifconfig Bajo el interfaz en uso (en este caso eth0) podemos ver nuestra direción: eth0 Link encap:Ethernet HWaddr 00:1D:72:0F:98:09 inet addr:192.168.0.56 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::21d:72ff:fe0f:9809/64 Scope:Link Combinaciones útiles Cómo matar un conjunto de procesos Si necesitamos matar todos los procesos java ejecutados por flynn puedes ejecutar killall java si eres flynn y usas linux, o generar un "script kill" tal que así: $ ps auxwww|grep java|grep flynn|awk '{print "kill -9 ",$2;}' > /tmp/killflynn $ bash /tmp/killflynn # ejecuta el script resultante El script resultante en /tmp/killflynn sería algo así: kill -9 1021 kill -9 1023 kill -9 1024 Nota: killall es específico de Linux. En otros UNIX, como Solaris usando killall puedes cargarte todos los procesos java en ejecución sin importar el usuario. Cómo hacer un histograma Un histograma es un juego de resultados, pares de valores que indican cuantas veces ocurre el valor. La operación básica es ordenar, luego contar cuántos valores aparecen en una fila y después ordenar de forma inversa para que el valor más alto aparezca al principio del informe. $ ... | sort | uniq -c | sort -r -n Fijaos que sort ordena toda la línea, pero la primera columna es significativa del mismo modo que la primera letra del apellido lo es para establecer un orden alfabético. uniq -c colapsa todas las secuencias repetidas de valores, pero muestra el número de apariciones antes del valor. Vamos a ver un ejemplo completo: $ awk '{print $1;}' < /var/log/lighttpd/mainman/access.log | sort | uniq 127.0.0.1 77.210.32.61 77.210.62.30 83.54.69.231 Si ahora añadimos -c a uniq: $ awk '{print $1;}' < /var/log/lighttpd/mainman/access.log | sort | uniq -c 188 127.0.0.1 17 77.210.32.61 11 77.210.62.30 24 83.54.69.231 Y ahora sólo falta hacer la ordenación inversa de las líneas en función de la primera columna: $ awk '{print $1;}' < /var/log/lighttpd/mainman/access.log | sort | uniq -c |sort -r -n 188 127.0.0.1 24 83.54.69.231 17 77.210.32.61 11 77.210.62.30 Tal vez quieras hacer un histograma de accesos a un directorio concreto. Puedes filtrar los resultados antes de que awk envíe su flujo de salida a sort: $ grep wp-admin /var/log/lighttpd/mainman/access.log | awk '{print $1;}' | sort | uniq -c |sort -r -n 43 127.0.0.1 43 accesos desde el propio servidor, como debe ser ;-) Generando scripts y programas Me gusta automatizar tanto como sea posible. A veces ello implica escribir un programa que genera otro programa o script. Procesando archivos de correo Quería una secuencia de comandos SQL que actualizara la base de datos cada vez que un correo viniese rebotoado. Procesar el archivo mail es bastante fácil cuando te das cuenta que puedes encontrar el código de error seguido de la dirección de correo. Un correo rebotado tiene ésta pinta: From MAILER-DAEMON@localhost.localdomain Wed Nov 5 17:32:33 2008 Return-Path: <> Received: from mail.themainman.kicks-ass.net (mail.themainman.kicks-ass.net [XXX.XXX.XXX.XXX]) by localhost.localdomain (8.9.3/8.9.3) with ESMTP id XXXXXXXX for <notifications@themainman.kicks-ass.net>; Wed, 5 Nov 2008 17:32:32 -0800 Received: from localhost (localhost) by mail.themainman.kicks-ass.net (8.11.6/8.11.6) id XXXXXXXXXX; Wed, 5 Nov 2008 17:32:02 -0800 Date: Wed, 5 Nov 2008 17:32:02 -0800 From: Mail Delivery Subsystem <MAILER-DAEMON@mail.themainman.kicks-ass.net> Message-Id: <200201100132.g0A1W2o02285@mail.themainman.kicks-ass.net> To: <notifications@themainman.kicks-ass.net> MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary=g0A1W2o02285.1010626322/mail.themainman.kicks-ass.net" Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) This is a MIME-encapsulated message --g0A1W2o02285.1010626322/mail.themainman.kicks-ass.net The original message was received at Wed, 5 Nov 2008 17:32:02 -0800 from localhost [127.0.0.1] ----- The following addresses had permanent fatal errors ----- <estonova@quetevayandando.com> (reason: 550 Host unknown) ----- Transcript of session follows ----- 550 5.1.2 <estonova@quetevayandando.com>... Host unknown (Name server: quetevayandando.com: host not found) ... Miremos la última línea, que contiene el error 550 SMTP. El código de error está al principio de la línea, hay que eliminar a los símbolos <>, quitar el "..." y usar awk para generar el SQL Algo así: # Este script funciona en maildir y mailboxes # Busca errores 550 o 554 SMTP y los convierte en comandos SQL grep -E '^(550|554)' | \ sed 's/[<>]//g' | \ sed 's/\.\.\.//' | \ awk "{printf(\"UPDATE PERSON SET rebotado=1 WHERE email=%s';\n\",\$3);}" >> rebotados.sql Hay que representar $3 como secuencia de escape porque tiene significancia para bash y quiero que awk vea el signo dolar. ¿Me están juankeando? Para controlar los intentos de login fallidos: /var/log/messages Para controlar los últimos logueos: last Para ver quién tiene sesión iniciada y qué hace: w Controla si hay cambios en /etc/passwd Usa fuser para tener los puertos supervisados Controla si la CPU está saturada por procesos raros / desconocidos. Apostilla mía: Contrólalo TODO, contrólalo SIEMPRE.

Un breve tutorial para Windows: Una característica de LibreOffice (una suite de oficina muy buena, que se distribuye como software libre y funciona en muchos sistemas operativos, incluyendo Windows y Linux) es que a través de ODBC podemos conectarnos a casi cualquier base de datos. No es lo más veloz, pero podemos hacer muchas cosas visualmente (generación de consultas, reportes, formularios, vistas) al mejor estilo MS Access y sin escribir una línea de código. Lo único que necesitamos instalar es el driver ODBC (que se puede desargar desde el sitio de Firebird) y la biblioteca de acceso a la base de datos (típicamente es el archivo fbclient.dll). Paso 1: Descargamos el driver OBDC del sitio web de Firebird. El enlace es: http://www.firebirdsql.org/en/odbc-driver El conector incluye un instalador, en total ocupa menos de 1 mb. Paso 2: Para poner conectar vía ODBC necesitamos definir una "fuente de datos" (esto es registrar la base de datos que usaremos y la biblioteca de acceso). Esto se hace muy fácilmente desde el ícono "Orígenes de datos (ODBC)" ubicado dentro del grupo "Herramientas administrativas". Dentro de la ventana que aparecerá "Administración de orígenes de datos ODBC" buscamos la pestaña "DSN de usuario" para agregar la fuente de datos que deseamos. Para darla de alta hacemos clic en el botón "Agregar". Aquí necesitamos cargar los datos de la conexión a la base de datos firebird, y proporcionar el nombre de la biblioteca. Los parámetros son a gusto del consumidor, acá hay una captura de pantalla de una conexión de pruebas a un alias llamado GRABADORA: En este ejemplo se trata de una base de datos local, aunque si está en otro equipo hay que colocar el nombre de host o la dirección IP. Un detalle interesantísimo del conector ODBC es que incluye varias utilidades (accesibles desde el botón "SERVICIOS" que se ve en la captura de pantalla). Desde allí podemos hacer distintas operaciones con la base de datos: respaldarla, restaurar una copia, ver información, repararla y hasta administrar los usuarios): Volviendo a la ventana donde se cargan los parámetros para acceso a la base de datos, tenemos un botón "Probar conexión" que nos servirá para testear que los parámetros estén correctos. En caso afirmativo, hacemos clic en "Aceptar" y listo...ya tenemos registrado el acceso ODBC. Ahora vamos a LibreOffice. Abrimos LibreOffice Base y seleccionamos la opción "Conectar por ODBC": Luego hacemos clic en "Siguiente". LibreOffice nos solicitará el nombre del "origen de datos". También podemos seleccionarlo desde una lista usando el botón "Examinar": Al hacer clic en "Examinar" parecerá la lista de fuentes de datos, y allí veremos la que agregamos anteriormente: (el botón "Administrar" nos permitirá agregar nuevas fuentes de datos o modificar las existentes). Si ingresamos la contraseña y el usuario en el momento de definir los parámetros de la fuente de datos, entonces haciendo clic en "Finalizar" dentro del asistente ya tendremos listo el acceso a Firebird desde LibreOffice, de lo contrario habrá que hacer clic en "Siguiente" y proporcionar los datos para identificarse. Estas opciones también son "a gusto del consumidor". Y listo...ya tenemos nuestro LibreOffice accediendo a la base de datos Firebird. Las posibilidades son inmensas, incluso a los desarrolladores nos puede servir como un muy buen generador visual de consultas/vistas: Dentro del archivo que LibreOffice nos solicitará para guardar se almacenarán los datos del diseño visual de la consulta, los formularios, el diseño de los informes, etc. en definitiva, todo lo que no sean los datos propiamente dichos. Algunas capturas de pantalla: Diseñando una simple consulta en forma visual: Editando un formulario (se puede crear a mano o mediante un asistente): Otra alternativa (ideal para un usuario final) es crear una nueva consulta a partir de los asistentes de LibreOffice: Otra alternativa es directamente crear la consulta "a mano" a través del dialecto SQL, en este ejemplo realizamos un agrupamiento y cálculo de totales: Y a partir de la consulta podemos generar un informe (manualmente o por medio de asistentes). Luego podemos editarlo: Como se ve, hay muchísimas posibilidades. LibreOffice es una alternativa perfectamente válida al costoso producto Microsoft Office, con la ventaja (además de su costo cero) de que funciona en muchos sistemas operativos. También se ve cómo puede estar al servicio no sólo del usuario final, sino del desarrollador, en este caso ayudando a los que trabajan con bases de datos Firebird. Todo lo visto aquí se puede aplicar a otro tipo de bases de datos, aunque en el caso de alternativas libres como PosgreSQL o MYSQL, la conexión se hace directamente desde LibreOffice, sin necesidad de tener un conector ODBC. Para SQLite sí es necesario instalar un conector. Y para cosas simples, podemos usar la propia base de datos de LibreOffice. Sitio web en español de la suite LibreOffice: http://es.libreoffice.org/ LibeOffice en Wikipedia: http://es.wikipedia.org/wiki/LibreOffice
La Universidad de Cataluña tiene a disposición un excelente material sobre Gnu/Linux, Software Libre e informática para descargar libremente, en formato Open Document y PDF: http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/view?set_language=es Hay cosas sobre implantación de software libre, ingeniería de software basada en SL, administración de Gnu/Linux, bases de datos, redes, etc. Los textos son muy legibles y con buena diagramación. Por supuesto, en español. Hay material de lectura para varios meses. Impresionante. Saludos !