Archivos del autor Jorge Torres Chacón
Crear archivo de swap en Ubuntu
Uno de los aspectos más controvertidos de Linux es el tamaño de su partición de swap. Hay muchas leyendas al respecto (la más extendida es darle el doble de la memoria RAM) y ninguna es cierta, al menos hoy día.
A la hora de la verdad los sistemas actuales Linux hacen un uso mínimo de la memoria de swap, y nos bastaría con definir pequeñas particiones para dicho cometido. Si en tu día instalante Linux y se te fue la mano con el swap una solución muy práctica es definir un archivo de swap, en lugar de una partición, dejando libre dicha partición para anexionarla a tu /home. Además si llegas a necesitar más espacio de swap siempre puedes crear un archivo mayor.
El procedimiento es extremadamente sencillo, y puedes verlo aquí:
Crear un archivo de swap en Linux
Gracias a los chicos de guia-ubuntu.
Logarse remotamente en un servidor X desde Ubuntu
Una vez más los chicos de ubuntuforums nos dan la solución para esta tarea. Si quiero conectarme a un servidor X remoto los pasos son:
- Instalar servicio ssh en el servidor.
- Editar /etc/ssh/sshd_config en el servidor y añadir X11Fowarding yes.
- Reiniciar el servicio ssh.
- Conectar desde el cliente con: ssh -Y user@host
Y ya podrás ejecutar aplicaciones gráficas. Si quieres arrancar directamente una sesión de gnome:
ssh -Y usr@host gnome-session
Todo el mérito de nuestros amigos de ubuntuforums: solución en ubuntuforums.
Personalmente parece una forma de trabajar bastante buena, pues la máquina servidor sufre poca carga al no tener que mostrar las X. La carga de trabajo se reparte entre el servidor y el cliente (que soporta las X y renderiza la imagen), de modo que ninguno de los 2 soporta mucha carga.
Por posibilidades de trabajar que no quede.
Umbrete ya tiene algo de qué presumir
Y no hablo del mosto señores. Hablo de un proyecto impensable para un pueblo de estas dimensiones, que comenzó hace no poco tiempo y ante el cuál más de uno éramos escépticos por motivos obvios: una obra demasiado grande para un pueblo pequeño.
Pero al final todo ha ido rodando y han cumplido, y el próximo 10 de Septiembre abre en Umbrete el complejo deportivo más grande de Sevilla, incluída la capital. Para que os hagaís una idea de las dimensiones de la obra consta de:
- Zona cardio-vascular y musculación 1040m2 (pedaaazo de gimnasio vaya).
- Salas de aeróbicos de 100m2 (las cintas de andar hasta con pantalla TFT).
- Saunas.
- Baños turcos.
- Piscina climatizada 25m.
- 2 piscinas para actividades.
- Sala de spinning.
- Pabellón polideportivo cubierto (y menudas canastas se gasta, colgadas del techo y con tablero de metacrilato).
- Pistas de Padel.
- Pista de Atletismo.
- Piscina exterior olímpica.
- Piscina infantil.
- Parking.
- Restaurante / Cafetería.
- Spa.
- Pistas de Tenis.
- Pistas polideportivas.
- Campos de Fútbol 7 con hierba artificial.
- Campo de Fútbol con hierba natural y gradas.
Por si fuera poco cuenta con un completo circuito termal que incluye:
- Circuito hidrotermal.
- Ducha de esencias.
- Hidromasaje.
- Pediluvio Compostela.
- Masajes.
- Saunas.
- Baños turcos.
- Chorro bitérmico.
Se organizarán no pocas actividades: Aerobic, Kinesis, Tonificación, Taichi…(así hasta 18) y habrá escuelas de Fútbol, Fútbol 7, Padel, Tenis, Baloncesto, Atletismo y Volleybol.
¿Quiere más? Contará con especialistas que te ayuden en tu entrenamiento tales como Monitores, Nutricionistas, Fisioterapeutas y un servicio médico.
Al darte de alta como socio te darán una llave electrónica codificada con los servicios contratados para tener acceso a las zonas oportunas y una taquilla donde dejar tus bártulos. El vestuario es prácticamente un campo de fútbol 7, y por supuesto cuenta con duchas individuales.
Existen muchas modalidades de suscripción, la más interesante sin duda la llamada “Tarifa Plana” que da acceso a todos los servicios a cualquier hora. Tiene por cierto un horario muy extenso, que incluye apertura Domingos y Festivos hasta las 15:00h.
Pues nada señores, como veís todo un sueño para los amantes del deporte y el ejercicio que abrirá sus puertas en poco más de 1 mes. Ya estamos tardando en organizar un partido oficial Viavansi de baloncesto, Fútbol 7 o cualquier deporte colectivo. Ya puestos, y si reunimos 22 personas, ¿hace un partido de Fútbol real? :-).
P.D.: no, no cobro comisión, pero no me digaís que el proyecto no es la leche.
¡No me suenan los auriculares en Ubuntu!
Acabas de estrenar portátil, instalas tu Ubuntu, todo perfecto y cuando decides escuchar música mientras programas…¡esto no suena! ¿Cómo es posible que suenen los altavoces pero no la salida de auriculares? ¿Estará defectuoso mi portátil?
Que no cunda el pánico. Parece un fallo habitual en el controlador de sonido que Ubuntu incorpora para determinadas placas Intel que utiliza un chipset de sonido Realtek. El fallo depende por tanto de la placa base, y puede afectar a no pocos portátiles.
¿Y qué hago, molesto a los demás? Pues no señores, los chicos de ubuntuforums muy aplicados ellos nos dan la solución en este hilo:
http://ubuntuforums.org/showthread.php?t=76307
No merece la pena explicarlo, ya que viene perfectamente descrito cada uno de los pasos. Básicamente, bajar nuevos drivers, compilarlos, instalarlos y configurarlos…¡y los auriculares sonarán!
Ya puedes deleitarte con las obras completas de Mojinos escocios sin molestar a los demás.
El retorno del Rey
Pues sí señores, tras una larga espera y mucha incertidumbre (la mayoría lo dábamos por imposible) el pasado Viernes 18 de Mayo del 2007 tuvo lugar un evento en Seul (Korea) que solo puede calificarse de un modo: El retorno del Rey.
Y no hablo de la (fantástica) trilogía de Tolkien, sino del rey de los videojuegos: Blizzard anunció el retorno de Starcraft, y ni cortos ni perezosos mostraron videos de Starcraft II que hicieron temblar el pabellón. Y no es para menos: Korea es cuna de campeones en este juego, donde es incluso un deporte (hay gente que cobra por jugar al Starcraft).

Sin más preámbulos, os dejo con la octava maravilla del mundo lúdico, el único juego que de verdad he jugado hasta exprimirlo.
Como diría un marine, ¡Oh síii!
Un plasma en menos 256 bytes
Esta vez vamos con una curiosidad light: os pongo el código de un plasma (agradecimiento a mi amigo Enrique que me lo enseñó, un programador muy bueno por cierto). La curiosidad de este código es que ocupa 238 bytes.
#include
Está en código C, compiladlo y disfrutad :-).
Una de inteligencia artificial: buscador de caminos A*
Desde mi punto de vista una de las ramas más fascinantes de la programación es la Inteligencia Artificial. Existen 2 definiciones de IA que me gustan especialmente, la primera es muy técnica y la segunda muy práctica, y son las siguientes:
1) Disciplina de la programación dedicada a resolver problemas de complejidad exponencial.
2) Dícese de aquellos actos efectuados por una máquina que de hacerse por humanos se atribuiría a la inteligencia.
Existe una eterna discusión acerca de si las máquinas pueden llegar a ser realmente inteligentes, y en ese sentido recomiendo un libro bastante bueno, “El quinteto de Cambridge” de John L.Casti.
Yo desde luego soy de los que piensa que una máquina sí puede ser inteligente, y llegará un momento en que nos superen. Una de las aplicaciones prácticas que me resulta más interesante (por mi aficción a los juegos) es el buscador de caminos. Son algoritmos por los cuales nuestro objetivo es capaz de sortear los obstáculos y llegar de un punto A a otro B.
El más popular de todos ellos por su eficacia y eficiencia es el buscador A* (o A-estrella, A-Star para los anglosajones). Existe mucha literatura en internet al respecto y recomiendo su lectura si estás interesado en el tema. Groso modo se trata de un mecanismo de selección de trayectoria que utiliza una heurística por la que descarta los nodos de búsqueda de mayor coste y más alejados del destino (en verdad tiene más chicha pero vaya, no tiene sentido extenderse).
Y como no voy a contar algo que ya está en internet os pongo una aplicación práctica de como funciona el A*. Aquí os pongo un pequeño ejecutable hecho en Blitz Basic (para un juego de rol) en el que podeís juguetear con un punto y ponerle obstáculos. Vereís si el condenado es listo o no.
Funciona tanto en Windows como en Linux usando el wine. Agradecimiento especial a Patrick Lester, cuya ayuda resultó imprescindible.
P.D.: Thank you Patrick, you are on the credits of Caotic Party.
Una de lenguajes clásicos: el COBOL
Últimamente se ha hablado en la empresa de lenguajes de programación clásicos con los que todos crecimos como el Basic o el Turbo Pascal (por los que cierto bastante afecto, todo sea dicho). De todos los clásicos uno de los más persistentes es el COBOL (y a la postre de los más feos), aún utilizado masivamente en grandes empresas que se sienten incapaces de migrar sus mastodónticos sistemas a otros lenguajes, o simplemente obtienen la fiabilidad deseada.
No pretendo dar un curso de COBOL, pero para los más pirados aquí dejo el código del juego del ahorcado que he hecho en COBOL. Pruébalo, funciona:
* Juego del ahorcado.
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. AHORCADO.
000300 ENVIRONMENT DIVISION.
000400 DATA DIVISION.
000410 WORKING-STORAGE SECTION.
01 TEMP PIC 9 VALUE 0.
01 CONT PIC 99 VALUE 0.
01 CARACTER PIC X VALUE SPACE.
01 LIFE PIC 9 VALUE 4.
01 ENCONTRADO PIC 9 VALUE 0.
01 LONGITUD PIC 9 VALUE 0.
01 LONGITUD-INICIAL PIC 9 VALUE 0.
01 SCORE PIC 99 VALUE 0.
01 CADENA PIC X(9) VALUE SPACES.
* Copiaremos la cadena origen a una tabla de caracteres.
01 PALABRA.
02 ORIGEN OCCURS 9 TIMES PIC X.
* La palabra de salida.
01 RESULTADO.
02 DESTINO OCCURS 9 TIMES PIC X.
000500 PROCEDURE DIVISION.
000700 PROGRAM-BEGIN.
PERFORM INICIAR-JUEGO.
PERFORM LIMPIAR-PANTALLA.
PERFORM PRINCIPAL UNTIL (ENCONTRADO = 1) OR
(LIFE <= 0) OR (CARACTER = 'Q').
IF ENCONTRADO = 1
DISPLAY "Solucion: " PALABRA
DISPLAY "Has salvado el cuello" LINE 20 COL 30.
IF LIFE = 0
DISPLAY "Solucion: " PALABRA
DISPLAY "Tu cuerpo alimentara los buitres" LINE 20 COL 25
PERFORM DIBUJAR-PLATAFORMA
PERFORM DIBUJAR-PERSONAJE.
001000 PROGRAM-DONE.
001100 STOP RUN.
001100 INICIAR-JUEGO.
PERFORM LIMPIAR-PANTALLA.
DISPLAY "Introduzca palabra minuscula (max. 9 car.): ".
ACCEPT CADENA.
* Contar caracteres hasta primer espacio (sirve para medir
* la longitud de la palabra). Como esta variable irá decreciendo
* salvamos la longitud inicial.
INSPECT CADENA TALLYING LONGITUD FOR CHARACTERS BEFORE
INITIAL SPACE.
MOVE LONGITUD TO LONGITUD-INICIAL.
* Metemos la palabra en la matriz de caracteres e iniciamos
* el destino con *.
MOVE CADENA TO PALABRA.
PERFORM VARYING CONT FROM 1 BY 1 UNTIL CONT > LONGITUD
MOVE ‘*’ TO DESTINO(CONT)
END-PERFORM.
* Limpiamos pantalla y comienza el juego.
001100 LIMPIAR-PANTALLA.
* Limpiar pantalla
PERFORM 25 TIMES
DISPLAY ” ”
END-PERFORM.
001100 PRINCIPAL.
DISPLAY “Salir con ‘Q’ ” LINE 24 COL 1.
DISPLAY “Adivina la palabra: ” LINE 5 COL 30.
DISPLAY “SCORE: ” LINE 1 COL 10
DISPLAY SCORE LINE 1 COL 18
DISPLAY “VIDA: ” LINE 1 COL 60.
DISPLAY LIFE LINE 1 COL 67.
DISPLAY ” “.
PERFORM DIBUJAR-PLATAFORMA.
PERFORM DIBUJAR-PERSONAJE.
DISPLAY RESULTADO LINE 6 COL 30.
ACCEPT CARACTER LINE 7 COL 30.
PERFORM CONTAR-OCURRENCIAS.
* Cuando Longitud a decrecido a 0 es que se han encontrado
* todos los caracteres.
IF LONGITUD <= 0
MOVE 1 TO ENCONTRADO.
001100 CONTAR-OCURRENCIAS.
* ¿Existe la letra?
INSPECT CADENA TALLYING TEMP FOR ALL CARACTER.
IF TEMP > 0
* Si es así reemplazamos todas sus ocurrencias por ‘-’ para
* que no vuelva a aparecer y buscamos en la tabla sus posiciones.
INSPECT CADENA REPLACING ALL CARACTER BY ‘-’
PERFORM ACTUALIZAR-CADENA
ELSE
COMPUTE LIFE = LIFE - 1
END-IF.
MOVE 0 TO TEMP.
001100 ACTUALIZAR-CADENA.
PERFORM VARYING CONT FROM 1 BY 1 UNTIL
(CONT > LONGITUD-INICIAL)
IF ORIGEN(CONT) = CARACTER
MOVE ORIGEN(CONT) TO DESTINO(CONT)
COMPUTE LONGITUD = LONGITUD - 1
ADD 1 TO SCORE
END-IF
END-PERFORM.
001100 DIBUJAR-PLATAFORMA.
DISPLAY “|”|” LINE 12 COL 35.
DISPLAY “|” LINE 13 COL 35.
DISPLAY “|” LINE 14 COL 35.
DISPLAY “|” LINE 15 COL 35.
DISPLAY “|” LINE 16 COL 35.
DISPLAY “=====” LINE 17 COL 35.
DISPLAY “=====” LINE 18 COL 35.
001100 DIBUJAR-PERSONAJE.
IF LIFE < 4
DISPLAY "" LINE 13 COL 38.
IF LIFE < 3
DISPLAY "|" LINE 14 COL 38.
IF LIFE < 2
DISPLAY "/" LINE 14 COL 37
DISPLAY "\" LINE 14 COL 39.
IF LIFE < 1
DISPLAY "/" LINE 15 COL 37
DISPLAY "\" LINE 15 COL 39.
No me digaís que no es bonito…
El Universo: 1 millón de formas de morir, 1 sola de vivir (1ª parte)
El Universo es hostil a la vida. Al menos eso nos ha enseñado nuestra ciencia. Cuando Dios diseñó el Universo no lo hizo pensando en que debía albergar vida. Y con Dios me refiero a cualquier manifestación posible del ente creador, pues tanto la ciencia como la religión parten de la misma premisa: de la nada surgió el todo. Unos lo llaman Dios, otros Big Bang. Dos formas de contar lo mismo.
Retomando el tema, el Universo resulta un lugar oscuro, frío y desolado, lleno de rocas inhabitables y sin posibilidad alguna de albergar vida. Nuestra ciencia nos ha demostrado que las circunstancias para que un planeta albergue vida son francamente extraordinarias, hasta tal punto que nos ha llevado a creer que estamos solos en el Universo. ¿Y cuáles son esas circunstancias?
En primer lugar necesitamos una roca habitable, como la Tierra. Un planeta situado a la distancia justa de una estrella para tener una temperatura amigable a la vida. Esa distancia justa depende de la magnitud de la estrella del sistema planetario, el sol en nuestro caso. Si la órbita de la Tierra hubiese sido mínimamente diferente sería otra roca inóspita más. Un planeta infernal o una gélida roca, inhabitable en todo caso. Basta fijarse en nuestro hermano casi gemelo Venus, en cuya superficie el plomo se funde a pesar de estar muy cerca de nosotros, y todo por un devastador efecto invernadero (en otro post hablaré de Venus, que me parece fascinante).
Aún con ello la Tierra no las tuvo todas consigo, pues fue un planeta volcánico hasta que el impacto de un gigantesco meteorito, del cuál nació nuestra Luna, cambio para siempre la faz del planeta. Otra casualidad que de no haberse dado colocaría a la Tierra como otro pedazo de roca en la inmensidad del cosmos.
Esto no basta desde luego. La órbita debe ser completamente helio estacionaria, de modo que no se produzcan oscilaciones abultadas que provoquen cambios bruscos de temperatura. Asimismo la elíptica de la órbita debe ser prácticamente nula por el mismo motivo, evitar la alternancia de períodos glaciales e infernales durante el año.
Pero el sistema planetario también juega su papel, y en esta ocasión el Sistema Solar ha cumplido el suyo. Las observaciones han demostrado que la vida es posible gracias a una configuración muy peculiar de nuestro sistema solar: pequeños planetas rocosos interiores y gigantes gaseosos exteriores. Esta configuración permite que los pequeños rocosos tengan una órbita absolutamente estable, en equilibrio con el Sol y los planetas exteriores. Si los pequeños rocosos fueran exteriores su temperatura sería glacial, y lo más probable es que no tivieran una órbita helio estacionaria y acabaran colapsando contra los gigantes gaseosos.
Pero el papel de estos gigantes van más allá: son un escudo infalible para la supervivencia de los pequeños planetas rocosos. Júpiter es un gigante en nuestro Sistema, que de haber sido un poco más grande hubiera comenzado una reacción en cadena y sería el segundo Sol del Sistema Solar, haciéndolo inhabitable. En su lugar se ha convertido en un coloso de gas cuya tremenda gravedad atrae hacia él (casi) todos los meteoritos que entran en el sistema solar con destino incierto. El último fue muy reciente, en 1996, del que tenemos espectaculares imágenes incluso, y de haber pasado de largo podía haber desintegrado la Tierra.
Con todo y con ello el escudo no es infalible, pues alguna vez hemos recibido el impacto de un meteorito que ha provocado un ELE (Evento de Extinción Masiva en inglés), el último y más popular el que produjo la extinción de los dinosaurios.
Una vez dadas todas estas circunstancias, no hemos acabado. La vida no surge porque sí, hace falta un detonante. Un célebre biólogo dijo que “la probabilidad de que en la Tierra se formara vida es la misma que si un huracán pasara por una ferretería y las piezas al caer ensamblaran un avión”. Tal es el milagro de recombinación que debe producirse y que curiosamente aquí se dió.
Según algunos fue el impacto de un cometa el que trajo todos los componentes esenciales de la vida. Y es que la vida, tal como la conocemos, no puede formarse de cualquier forma. Solo un elemento como el Carbono tiene una red de enlaces suficientemente flexible para desencadenar el milagro, ni siquiera su hermano gemelo el Silicio puede provocar tal efecto.
Una vez dadas todas estas casualidades, es probable (que no seguro) que se haya formado la vida en el planeta. Y una vez la vida se ha formado, ¿qué posibilidades nos quedan de sobrevivir? Lo dejamos para la segunda parte.
Hasta la próxima.
Solución al cambio de monitor en Ubuntu 6.10
Acabo de comprobar que Google no lo sabe todo. Uno de los fallos más habituales de Ubuntu 6.10 es cambiar el monitor respecto al usado en el proceso de instalación. Como el XServer fue configurado para el otro monitor el rango de resoluciones y frecuencias no coincide y el invento casca.
Una primera solución es editar a mano el fichero /etc/X11/xorg.conf y limitar las resoluciones y Hz. Mala solución. Ubuntu cree que todos los rangos de frecuencia son aptos a todas las resoluciones, con lo cuál tienes que limitar la frecuencia a la resolución más alta:
Section "Monitor"
Identifier "AOC"
Option "DPMS"
HorizSync 30-96
VertRefresh 50-60 <--- Refresco limitado a la resolución más alta
EndSection
Si buscamos en google siempre dan la misma solución: reconfigurar xserver con sudo dpkg-reconfigure xserver-xorg. Esto es matar moscas a cañonazos, pues el Xserver está bien, es solo el monitor.
¿Solución entonces? Dejar que el monitor ponga los modos, no Linux, y como me recomendó mi hermano vamos a imitar a Windows. Toca el xorg.conf comentando (o borrando) la configuración manual del monitor, tal que:
Section "Monitor"
Identifier "AOC"
Option "DPMS"
# HorizSync 30-96
# VertRefresh 50-60
EndSection
De este modo delegamos en el monitor la responsabilidad de establecer los modos, que los enviará al ordenador mediante DPMS. Windows usa este procedimiento hace siglos, Ubuntu alguna vez lo descubrirá, o descubrirá que no es necesario sobreescribir manualmente la configuración DPMS porque quién mejor que el propio monitor para decirnos lo que puede y no puede hacer.
Categorías
Encuentra artículos a través de sus "tags"
Archivos mensuales
Encuentra artículos según el mes en el que fueron escritos.