Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

viernes, 20 de diciembre de 2013

Dos ficheros /etc/hosts diferentes dependiendo de la hora

He declarado la guerra a muerte a la procrastinación. Estoy HARTO de que Facebook, Twitter y Youtube se estén bebiendo sin pudor alguno los mejores años de mi vida. Para mí el ordenador representa mi herramienta básica de trabajo, mi herramienta básica de ocio, y mi herramienta básica de comunicación, y demasiado a menudo me cuesta separar los tiempos para cada cosa, con lo que al final termino por no hacer nada de lo que en un principio deseaba hacer. Pero ya estoy harto. Después de haber probado inútiles remedios tibios, ha  llegado la hora de sacar a pasear la artillería.

Lo que vamos a hacer es impedir que ningún programa de nuestro pc acceda a las webs que nosotros le digamos mediante la edición del fichero /etc/hosts , presente en todas las distribuciones de Linux, BSD y Unix entre otros. Yo uso Ubuntu y en general las instrucciones están "ubunteadas" (con uso de sudo's y cosas así), pero estoy seguro de que no tendréis problemas para adaptarlas a vuestras necesidades específicas. Vamos con el tema:

miércoles, 18 de diciembre de 2013

Instalando un emulador de Mainframe en nuestro PC -- z/OS sobre Hércules (I)

Hola compas. Desde hace algunas semanas me encuentro haciendo un curso del SEPE de programación en COBOL Enterprise, orientado a sistemas Host. El curso está en general más o menos bien, pero me encuentro con un problema importante: el mainframe que han habilitado para las prácticas solamente es accesible desde los ordenadores del propio centro, con lo que solamente podemos programar o practicar durante los días en que tenemos clases presenciales, y en esos momentos no tenemos tiempo para cacharrear por nuestra cuenta puesto que es un intensivo durante el cual vamos cubriendo material a marchas forzadas.

Cuando les preguntamos, los profesores nos recomendaron RM/COBOL 85, pero no es un entorno completo y además está orientados a dialectos de COBOL diferentes a aquél que estamos aprendiendo nosotros. Para mí esto no resulta suficiente, por lo que he decidido intentar crear un entorno lo más completo posible. Queremos:
  1. Algo que funcione como un mainframe IBM con sistema operativo z/OS
  2. Que nos permita programar en COBOL Enterprise
  3. Que albergue bases de datos DB2 con las que se interaccione mediante SQL
  4. Que implemente CICS
  5. JCL para construir los ejecutables
Quiero que sepáis desde ya que no tengo claro del todo que esto vaya a salir bien hasta el final, así que no os lo toméis como un tutorial, sino más bien como un cuaderno de laboratorio en el que iré recogiendo mis averiguaciones y avances. Por favor, os animo a utilizar los comentarios para que aportéis vuestros conocimientos o dudas; entre todas estoy seguro de que podremos lograr un gran artículo ;)

Así pues, EMPEZAMOS

lunes, 6 de mayo de 2013

Instalando True Combat: Elite en Ubuntu Linux y arreglando el fallo del sonido

Hoy quiero hablaros de un auténtico juegazo. True Combat: Elite es un mod de conversión total del popular Wolfenstein: Enemy Territory (si no lo conocéis, no sé a qué estáis esperando), que tantísimas horas de vicio me ha proporcionado durante años. Tanto uno como otro son juegos GNU GPL y además totalmente gratuitos. TC:E nos traslada desde los escenarios de la II Guerra Mundial hasta el presente, con un planteamiento parecido al del Counter Strike, con el típico enfrentamiento entre terroristas y fuerzas de operaciones especiales. Se trata de un shooter en el que prima el realismo sobre todo lo demás, por lo que si esperas llegar lejos pegando botes y jugando a ser un lobo solitario, mejor busca en otro sitio, pues con un par de tiros recibidos lo más probable es que estés muerto (el sistema de daño distingue entre varias zonas del cuerpo a la hora de recibir los impactos). Aquí importa mucho más el apoyo entre los diferentes miembros del equipo y el desarrollo de tácticas de combate, así que si eres fan de los juegos tipo Call of Duty, probablemente quieras darle una oportunidad a esta fiera. Un detalle del juego que me encanta es que aquí no vais a encontrar crosshair; si queréis apuntar tenéis que montaros el arma al hombro y disparar con la mirilla propia del arma que estéis usando. Os dejo un vídeo para que podáis haceros una idea de qué es lo que os vais a encontrar:


Quiero avisaros, eso sí, de que aunque probablemente si no os lo dijera no os daríais ni cuenta, el juego es una versión de desarrollo, y que además lleva ya tiempo sin recibir actualizaciones. Hechas pues las presentaciones, os dejo las instrucciones para que podáis instalarlo en Ubuntu Linux (e igualmente, aunque no lo he comprobado, valdrán para el resto de distribuciones basadas en Debian, como el propio Debian, Linux Mint, etc. A quienes uséis otras distribuciones os agradecería que en los comentarios me dijérais si estas instrucciones también os han servido).

Instrucciones de instalación

miércoles, 17 de abril de 2013

aMule y Chromium: Enlaces ed2k:// con xdg-open

He visto que en las instalaciones frescas de GNU/Linux a menudo el sistema no sabe qué hacer cuando le mandamos abrir un enlace ed2k desde el navegador; hoy vamos a aprender a configurarlo adecuadamente. Yo este método lo he utilizado satisfactoriamente con Chromium, pero en principio valdrá para cualquier navegador que utilice para ello (por defecto o porque así lo configuremos) la orden xdg-open.

En la terminal escribimos

gedit ~/.local/share/applications/userapp-amule.desktop

en el paso anterior estamos suponiendo que tengamos instalado gedit en nuestro sistema; si no fuera así, cualquier otro editor de texto plano nos valdría igual.

A continuación copiamos y pegamos el siguiente bloque de texto en el editor:

[Desktop Entry]
Name=aMule
Name[en_US]=userapp-amule
Exec=amule %u
Icon=amule
Terminal=false
Type=Application
Categories=Network;P2P;
Comment=A client for the eD2k network
MimeType=x-scheme-handler/ed2k


Guardamos y cerramos. Ahora editamos este otro archivo:

gedit ~/.local/share/applications/mimeapps.list

Debajo de [Default Applications] copiamos la siguiente línea:

x-scheme-handler/ed2k=userapp-amule.desktop

Guardamos y cerramos. Ahora solo queda probar si todo funciona como es debido debería capturarnos los enlaces automáticamente. Aprovecho para recomendaros esta página de cine raruno y otras cosas, donde podréis encontrar multitud de películas geniales que no vais a encontrar en ningún otro sitio, por el simple hecho de no ser la McMierda de Holywood y enseñar otra serie de ideas al mundo, u otras formas de narrar una historia. Que lo disfrutéis.


Fuente original aquí.

----------

Adenda: He comprobado que este método también vale para Firefox. Entrad en Editar --> Preferencias --> Aplicaciones y buscad la línea que empiece por ed2k. En el menú desplegable de Acción seleccionad usar otra, y elegid /usr/bin/xdg-open. Listo.




martes, 20 de marzo de 2012

Cómo hacer un renombrado masivo desde la terminal

He decidido empezar a utilizar este blog también para compartir con todo aquél a quien le interese esos truquillos de GNU/Linux que utilizo y que no son tan sencillos de encontrar por ahí. En este artículo vamos a abordar un problema que a mí en el trabajo se me plantea constantemente: el de renombrar un porrón de archivos a la vez conforme a un cierto patrón. Esto que voy a explicar vale tanto para fotografías, como para archivos de texto como para cualquier otro tipo de documento.


Supongamos que tenemos una serie de documentos metidos en una carpeta, pero no queremos renombrarlos todos, sino sólo aquellos cuyo nombre comienza por FTransform (es decir, se trata de aquellos archivos cuyo nombre corresponde a las cadenas FTransform* . Si no te suena lo que pueda ser ese asterisco, te recomiendo que mires por ejemplo aquí lo que son los metacaracteres de la shell de Linux). Lo que queremos es convertirlos en una secuencia de archivos de la forma FourierTransform.Número, donde Número va a ser un entero de 7 dígitos empezando en el 0000001. Si hubiese 758 archivos de la forma FTransform* al final lo que obtendremos será una secuencia de archivos  de la forma FourierTransform.0000001 a FourierTransform.0000758

Para hacer esto tendríamos que ingresar la siguiente línea de comando:

$ ls FTransform* | nl -nrz -w7 | while read a b; do mv "$b" FourierCoefs.$a ; done

Vamos a entender un poco qué hace este comando. Las barras verticales son entubamientos (pipes). Si no te suenan puedes mirar qué son en el mismo enlace de antes. El comando ls muestra todos los archivos que se correspondan con la cadena FTransform*, nl cuenta el número de líneas de la salida del comando anterior, y la opción -w7 hace que muestre el resultado en forma de entero de 7 dígitos. Por último, el bucle while do itera tantas veces como archivos haya encontrado, renombrando en cada uno de los pasos un archivo con un número diferente al anterior, sumando uno en cada ciclo.

Supongamos ahora que, en la secuencia anterior, por algún motivo no deseamos que la serie empiece en 1, sino en un valor superior. Digamos que queremos que el primer valor sea, en lugar de el 000001, 
el 1000001. Podríamos entonces hacer lo siguiente: 

rename -v 's/FourierCoefs.(\d{7})/FourierCoefs.1$1/' FourierCoefs.*

El comando rename, que como su nombre ya sugiere sirve para renombrar archivos, utiliza expresiones regulares de Perl, que tienen una sintaxis muy particular y no voy a entrar en ello; en Internet hay suficiente información. Me limitaré a explicar por encima qué hace la línea de consola anterior: la opción -v hace que se muestre por pantalla el nombre del archivo modificado, lo que está entre comillas ('  ')  es la expresión regular, y el último término de la derecha es el nombre del archivo que queremos renombrar, en este caso, todos los archivos que comiencen por FourierCoefs. . 

La expresión regular está formada por tres trozos separados por barras diagonales ( / ). El primero es simplemente una letra s, que indica que lo que vamos a hacer es sustituir el segundo bloque por el tercero. El segundo es el nombre original del archivo, en este caso FourierCoefs. seguido de una cadena de 7 caracteres que almacenaremos en memoria (\d{7}). El tercer bloque es el nuevo nombre del archivo, que quedará como FourierCoefs.1 seguido de la cadena que almacenamos en el bloque 2, y a la que hacemos referencia con la variable $1. 

Para más información acerca de los comandos empleados, os recomiendo consultar el manual, y desde luego, preguntarle a Google.

Espero que esta información le resulte útil a alguien más :)


Adenda:

Por si a alguien le preocupa que los archivos aparezcan sin extensión, añado este párrafo. Si quisiésemos que en lugar de de la forma FourierTransform.0067201 los archivos de salida nos quedasen por ejemplo de esta otra manera,  FourierTransform.67201.txt, lo único que tendríamos que hacer sería cambiar -w7 por -w5 y Fouriercoefs.$a por Fouriercoefs.$a.txt en la primera línea, quedando entonces

$ ls FTransform* | nl -nrz -w5 | while read a b; do mv "$b" FourierCoefs.$a.txt ; done

Las modificaciones para el segundo comando son igualmente sencillas.