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

16 de febrero de 2021

Streaming con OBS en LAN

El objetivo de esta guía es hacer streaming de un equipo en una red LAN. Se va a usar un equipo con tarjeta gráfica NVIDIA (usando una GTX 750Ti, comprobar que tiene NVENC la tarjeta gráfica) y Ubuntu (probado en Ubuntu 18.04).

Se instala OBS: https://obsproject.com

Se ejecuta el asistente de OBS para ver configuración recomendada. Si detecta NVENC es que se puede codificar con la tarjeta NVIDIA, si no hay que instalar los drivers apropiados:

sudo ubuntu-drivers autoinstall

Con esto ya debería ejecutarse el asistente y salir NVENC.

Después hay que montarse un servidor web para servir el video. Uso nginx como en este post: https://obsproject.com/forum/threads/broadcasting-in-a-lan.20637

OBS uses the rtmp protocol to stream. This depends on servers to distribute the stream to the viewers, thats where nginx fits in. You can run it on any of the two machines and under windows just fine.

Lets say PC1 has the lan ip 192.168.0.5 and PC2 has .0.6, we run nginx on PC1 (with a simple configuration file that has one application called "live1" which awaits your stream). In OBS on PC1 we setup a livestream to a custom service and can use rtmp://127.0.0.1/live1 or rtmp://192.168.0.5/live1 for the server address.
As playpath use "camera" without the quotes. You probably already configured your scenes in OBS (added the Camera) so you could now start streaming.

On the second PC, load up VLC and use open network stream. As the address this time we have to use rtmp://192.168.0.5/live1/camera so we combine the network ip with the application and the playpath so VLC can request the stream from nginx. So after clicking Play, you should see your camera feed.
For nginx, I host a compiled package for Windows at http://rtmp.jack0r.com/ it comes with an example config file so is pretty much ready to go. (Has the live1 app already) Of course if you have a question, just post it below and if you want some more general guides about nginx check out: http://www.helping-squad.com/server/

En mi caso lo hago con docker:

  1. Instalar docker: https://docs.docker.com/engine/install/ubuntu
  2. Y uso esta imagen: https://hub.docker.com/r/tiangolo/nginx-rtmp
  3. Una vez arrancado el nginx voy a OBS a la Configuración de Emisión y elijo la opción Personalizado/Custom. En servidor pongo rtmp://127.0.0.1/live y en clave pongo el nombre de la escena para emitir (en el ejemplo pongo prueba)
  4. Luego en otro ordenador de la LAN abro VLC y uso la ubicación de red rtmp://<ip como 192.168.?.?>/live/<clave - así que ponemos prueba>
  5. El video me llega con retraso de algunos segundos pero se ve muy bien
  6. Habría que probar con las gráficas integradas a ver si es suficiente. Por ejemplo para un aula de informática con ordenadores donde es suficiente ver el código a pocos FPS y sin audio no debería haber problemas. Si se dispone de dos monitores en cada puesto es mejor que usar un proyector.

6 de mayo de 2020

Código útil: clase ConfiguracionRest

Como hemos visto en las entradas anteriores, hemos añadido un link a un método personalizado pero de una manera muy manual y nos tocaría añadir otro más. No obstante, el código que se ha utilizado puede generalizarse más teniendo en cuenta lo siguiente:
  1. Los métodos que queremos enlazar tienen la anotación @ResponseBody
  2. Los parámetros que deben formar parte del path los anotaremos con @PathVariable.
  3. Los parámetros que deben formar parte de la query string los anotaremos con @RequestParam.
  4. Podemos configurar a qué recursos queremos añadirles enlaces en su /recursos/search y relacionarlas con su RecursoController que tenga los métodos a los que queremos enlazar.
Siguiendo esa guía podemos usar Reflection para conseguir toda la información y añadir los enlaces haciendo que:
  1. Filtre el recurso para el que debe añadirse los links (sólo los registrados)
  2. Recupere todos los métodos del Controller asociado a ese recurso
  3. Filtre aquellos marcados con ResponseBody
  4. Recupere el link con linkTo pasando como argumentos el valor "(" + nombre + ")" para cada PathVariable (se usan paréntesis para evitar el "escape" de las llaves)
  5. Cambiamos los paréntesis por llaves en las variables de la ruta.
  6. Utilice sólo los nombres de los parámetros RequestParam como query params
  7. Use el nombre del método como rel
El código está en el gist para la clase ConfiguracionRest:

También incluye un filtro CORS (CorsFilter) para permitir cualquier petición y así poder realizar pruebas sin preocuparse de las políticas Cross-Origin por defecto.

Cómo usar el bean correctamente

En nuestro repositorio vamos a eliminar el código de la sesión anterior para sustituirlo por esta clase de configuración que añadimos a nuestra aplicación.

Ahora personalizamos nuestro bean para los links añadiendo al mapa de controladores para enlazar la entidad como clave (PartidoConId.class) y el controlador asociado como valor (PartidoController.class). De aquí se deduce que lo más simple es poner todos los métodos para una entidad en un único Controller.

Si se quieren añadir otros enlaces aparte de los aporta este bean, se puede crear otro bean del mismo tipo en otra clase de configuración y al final todos los enlaces convivirán en el mismo /search.

Puedes encontrar el código hasta aquí en su repositorio.

Este punto finaliza nuestro Producto Mínimo Viable (PMV/MVP) y establece la release v1.0.0. En el README del repositorio se pueden ver las instrucciones para ejecutar la API en local.

21 de noviembre de 2017

Guardar CD de Audio en mp3 - Rip Audio CD to mp3 files

El otro día tenía que descargar un CD de música para reproducirlo desde el mp3. No tenía a mano ninguna herramienta de las antiguas que tenía para ripear... ya ni tengo DVD en los ordenadores XD

Así que gracias a Dios pude enchufar una unidad antigua que todavía leía CDs y para no tener que instalar nada nuevo mi idea era ripear cada canción directamente con VLC hasta terminar con el CD. Por supuesto la idea era hacerlo por consola para no tener que estar pinchando cada canción en cada CD (en realidad eran 3 CDs ;P)

Busque por Internet y encontré curiosamente la respuesta en StackOverflow (votada para cerrar por no ser un tema a tratar allí)

Así que comparto por aquí el código para el .bat que os hará ese trabajo:

@ECHO OFF

    setlocal ENABLEDELAYEDEXPANSION

    SET /a x=0

    FOR /R D:\ %%G IN (*.cda) DO (CALL :SUB_VLC "%%G")
    GOTO :eof

    :SUB_VLC
    call SET /a x=x+1

    ECHO Transcoding %1
    REM Here's where the actual transcoding/conversion happens. The next line
    REM fires off a command to VLC.exe with the relevant arguments:
    CALL "C:\Program Files\VideoLAN\VLC\vlc" -I http cdda:///D:/ --cdda-track=!x! :sout=#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100}:std{access="file",mux=raw,dst="Track!x!.mp3"} vlc://quit

    :eof

Espero que os sirve igual que a mí. Simplemente revisar las rutas a vuestro ejecutable de VLC ("C:\Program Files\VideoLAN\VLC\vlc" en el ejemplo) y a vuestra unidad de Audio ("D:" en el ejemplo)

También podéis cambiar el formato o calidad del fichero de salida modificando los parámetros (por ejemplo cambiado el bitrate de ab=128 a ab=192, cambiando el códec de mp3 a flac o a ogg, etc...).

12 de marzo de 2017

Recortar y convertir un video por línea de comandos con VLC

Reconozco que me gustan los comandos. Me permiten hacer más cosas, con más detalle y con menos trabajo que ir haciendo clicks en una GUI. Su único inconveniente es saber cómo hacerlo.


Esta entrada es un comando que permitirá recortar y convertir un fichero de video en otro en H264/mp3.

Éste es el comando (formateado un poco para ver los detalles):

"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
   C:\origen.avi --start-time="5" --stop-time="30"
   :sout="#transcode{
      vcodec=h264,
      acodec=mp3,
      ab=128,
      scale=1,
      channels=2,
      samplerate=44100}
   :std{
      access=file,
      mux=mp4,
      dst=C:\destino.mp4}"

Lo que hace es abrir VLC con el fichero "origen.avi" que se convertirá según las opciones de codificación marcadas desde segundo 5 al 30 del vídeo (hace un recorte)

8 de julio de 2014

PC se enciende tras apagarlo

Ayer me surgió un problema tras hacer limpieza del ordenador (limpieza de polvo con aspirador y eso). Resulta que de repente se me apagó el ordenador. Los primeros que puse en el punto de mira fueron los sospechosos habituales:

  1. El ventilador de la gráfica podía haber sufrido y recalentarse. Podía ser otro ventilador también
  2. La fuente de alimentación fallaba. Aunque tenía menos de un año desde el último cambio
  3. La placa base fallaba (o había limpiado como un manazas y me la había cargado yo


Fui descartando:

  1. El primero no parecía, pues aunque hacia un poco mas de ruido (seguramente por menear el polvo y que algún rodamiento rozara), seguramente se pasaría en unos días como de costumbre. Lo más importante es que la BIOS me daba buenas temperaturas.
  2. El segundo lo descarte ya que el ordenador sólo se encendía inmediatamente tras apagarlo desde el SO, pero si apagaba la fuente y volvía a encenderla no arrancaba solo. Esto último descartaba la típica configuración de Wake on LAN.
  3. El tercero era el más probable, sobretodo después de ver que la fecha de la BIOS estaba reseteada, así como otras configuraciones.

Mi solución fue quitar la pila de la placa madre durante cinco minutos y luego volver a poner la configuración de la BIOS como necesitaba.

Viendo que en Internet las soluciones típicas son desactivar el Wake on LAN del adaptador de red (en BIOS o en el administrador de dispositivos) y el reinicio por parte del SO si hay algún fallo en el apagado, me decidí a postear cual fue mi solución para este problema con estos síntomas que describo, si fueran otros como que:

  • se enciendo sola siempre
  • no pasa un tiempo fijo entre el apagado y el reinicio automático
  • se enciende tras volver a conectar la fuente de alimentación

entonces probar antes lo más habitual antes de abrir la caja a menos que esteis acostumbrados, no vaya a ser que se líe más sin descartar antes cosas más habituales y fáciles de comprobar.

Espero que sea de ayuda. Saludos.

22 de septiembre de 2012

VLC: Grabar vídeo de una ventana

Una vez mas me reconozco amante del software libre, especialmente de algunos proyectos realmente buenos como Apache, OpenOffice, PostgreSQL, Git, WordPress, GIMP, Audacity/Ardour, etc... y hoy hablaré sobre uno de estos: VLC Media Player.


VLC es conocido por ser gratis, ligero y reproducir prácticamente todo lo que le echen sin tener que descargar ningún códec. Pero lo mejor es que tiene tantas sorpresas esperándonos que lo hacen aún mejor.

Hoy voy a deciros como podéis grabar en vídeo una ventana de vuestro escritorio y codificarlo a un formato que podáis distribuir o subir a YouTube. Es algo que necesitaba para no tener que comprarme una capturadora y quería que fuese con una solución de código abierto para saber qué estoy descargándome realmente.

He de decir que probé otras soluciones gratuitas y no gratuitas. Algunas me daban unos resultados pobres, y otras no me daban mejores resultados que lo que conseguí finalmente con mi amigo VLC.

Todo esto está hecho sobre Windows 7 que es donde necesitaba hacer la captura en ese momento.

Empecemos. VLC tiene una opción que es "Abrir volcado de red...". Se puede usar para recibir o para emitir. De hecho, para mí es el mejor método para guardar en un archivo un vídeo de YouTube:

  1. Elegís abrir volcado de red (podéis usar el atajo de teclado Ctrl + N).

  2. Ponéis la dirección de Internet (URL) del vídeo.
  3. Donde pone reproducir le dais a la flecha y elegís "Convertir"

  4. Indicáis el destino del archivo con el vídeo grabado y la codificación que queréis (si sólo deseáis el audio podéis elegir un fichero .ogg por ejemplo, escogiendo la codificación "Audio - Vorbis (OGG)")

  5. Si queréis ver el vídeo mientras se graba podéis marcar la casilla que pone "Mostrar Salida". Yo no lo recomiendo ya que, si no os muestra la salida en tiempo real, puede crear el archivo mas rápido. Sólo lo veo útil en caso de querer cortar la grabación antes de que termine, así podremos elegir el momento de darle a stop y dejar de grabar.

Pues bien, si ponéis en volcado de red la URL "screen://" conseguiréis acceder al vídeo de vuestro escritorio (también se consigue escogiendo el "Modo de Captura" "Escritorio" desde la opción de "Abrir dispositivo de captura..."). Siguiendo los mismo pasos anteriores podéis convertir el vídeo a vuestro formato favorito (no así el audio, ya que es una señal únicamente de vídeo).

Hasta aquí nada que no podáis encontrar en muchos otros blog. Lo que me resulto realmente útil es capturar una parte de ese escritorio (la ventana donde estaba sucediendo lo que quería guardar). La forma de hacerlo es la siguiente:
  1. Vais a "Herramientas/Preferencias".
  2. Tenéis que abrir las opciones avanzadas y depende de la versión que tengáis. Yo tengo la 2.0, donde tendréis que buscar "Mostrar ajustes" y seleccionar "Todo".
  3. Entre todas esas opciones vamos a "Entrada-Códecs/Módulos de Acceso/Pantalla".
  4. En esta ficha podremos indicar:
    1. Posición en pixels de la esquina superior izquierda de la región de pantalla que vamos a capturar.
    2. Tamaño en pixels de la región a capturar.
    3. Si queremos capturar el ratón también.
    4. Tasa frames por segundo a capturar.

De esta forma podréis capturar en vídeo una parte de vuestro escritorio y codificarla directamente en un archivo de vídeo de la misma forma que haríais con un vídeo de You Tube o vuestra WebCam.

Por otra parte dependiendo de qué estemos grabando puede que estéis tirando mucho de vuestra CPU, y si es un gameplay o algo así puede que no tengáis los resultados esperados. En ese caso es mejor que en vez de elegir la opción "Convertir" dejéis "Reproducir" y abráis la vista de controles avanzados en "Ver/Controles Avanzados". Ahora podréis ver el botón rojo de grabar. Desde ese momento podéis pulsar grabar para comenzar la captura y volverle a dar para pararla. Vais a la carpeta donde tengáis configurado el volcado de archivos y ahí estará el vídeo en bruto. Ahora podéis abrirlo y convertirlo en un formato comprimido que pese menos.

Espero que haya sido de vuestro interés.

PD: Esto es lo que usé para hacer los tutoriales de Skyrim Xtreme XD.

9 de septiembre de 2012

Skyrim: Custom Extreme, crea tu máquina de matar | make your killing machine

Estas vacaciones tenía ganas de darle caña al ordenador con algún juego, concretamente con The Elder Scrolls V: Skyrim. Hace poco sus desarrolladores han sacado la primera expansión: Dawnguard donde le dan mas protagonismo a los vampiros, etc... pero no vengo a hablaros de eso.

Como quería poner en orden un poco todos mis personajes y no me acordaba cómo los había dejado después de navidades, me puse a ver algunas guías o trucos para hacerme la vida más fácil. Yo tengo el juego en PC y prefería usar la consola antes que aprovecharme de fallos del juego para ahorrarme tiempo en conseguir el personaje como quiero (porque estoy harto de farmear ingredientes y enseñar lo mismo a todos los personajes una y otra vez mientras hago muchas misiones repetidas)


Consola

Usando la guía de comandos de consola que aparece en una de las wikis sobre el juego (yo use esta), me puse a hacer unos cuantos experimentos, y descubrí que configurando el personaje con unos perks/ventajas y poderes determinados podía hacerlo más poderoso y flexible de lo que viene con el juego. Utilizando el comando "bat", que permite ejecutar scripts por lotes contenidos en ficheros de texto, decidí ir haciendo unos que consigan lo siguiente:
  1. Subir todas las habilidades a 100
  2. Colocar los perks estratégicamente (ver apartado alternar perks)
  3. Hacer olvidar los perks que "estorban" (ver apartado alternar perks)
  4. Enseñar los hechizos más útiles o poderosos (desde mi punto de vista es mejor que tenerlos todos y buscar los buenos entre la morralla)
  5. Conseguir los gritos de dragón más atractivos con sus tres palabras
  6. Otorgar los poderes más útiles independientemente de la raza del personaje, incluyendo los de misiones o los propios del vampirismo o la licantropía
  7. Obtener los objetos necesarios para crear un equipo de fabricación/crafteo cojonudo y poder utilizar las armas y armaduras que más me gustan (y no las que me obliga a usar el juego si quiero las mejores estadísticas). Esto implica:
    1. Equipo para desencantar y aprender esos encantamientos
    2. Materiales para encantar, hacer pociones y mejorar armas y armaduras
    3. Las armas y armaduras que más me gustan
    4. Para redondear la jugada ¿qué tal 10.000 en oro, diez pociones de recuperar la salud completa y una ganzúa?
Todo esto al final son una serie de archivos de texto donde guardo todos los scripts. Están divididos para que se pueda llamar un script en particular sin que tenga que llamarlos a todos (por ejemplo sólo colocarme los perks o sólo darme el equipo de acero). Os lo dejo en este enlace. Los debéis copiar a la carpeta donde esta el ejecutable de Skyrim (en Windows 7 normalmente C:\Program Files (x86)\The Elder Scrolls V Skyrim). Todos los scripts que queráis llamar desde la consola tienen que estar en esa carpeta.

Están preparados para hacer lo que yo prefiero y lo que muestro en la guía en vídeo que he subido. Si queréis modificarlos lo más cómodo es abrir el fichero paso1.txt y "comentar o no" las lineas de llamada a otros script. Como ejemplo, si queréis tener la armadura de escamas de dragón en vez de la armadura de acero, comentáis la linea "bat armaduraacero" poniendo un ';' delante, y lo quitáis de la línea "bat armaduraescamasdragon".

Aplicando todo a un personaje

Con los scripts copiados en la carpeta del juego, cogéis el personaje que prefiráis y hacéis lo siguiente (la consola de juego se abre pulsando la tecla 'º', la que está a la izquierda del '1'):
  1. Deshaceros de todas vuestras pertenencias. Se hace con el comando "player.removeallitems" (esto no eliminará los objetos de misiones)
  2. Ir a una estancia especial preparada para todas las operaciones que debemos hacer (disponiendo de armarios con todos los objetos del juego y de fragua, banco de trabajo, mesa de alquimia, encantador arcano, etc...). Esto se consigue con el comando "coc qasmoke"
  3. Una vez allí ejecutar el primer script con "bat paso1". Si las líneas anteriores las queréis hacer, también podéis añadirlas al script paso1.txt.
  4. Subir los niveles que haya podido ganar. Recomiendo pasar de magia, poner unos 300 puntos de aguante y el resto a salud
  5. NO MODIFICAR LAS VENTAJAS. Esto lo pongo en mayúsculas por si alguno siente la tentación de aumentarse perks que vea con un solo punto. Esto es parte del truco. Luego lo explico en el apartado de alternar perks.
  6. Crear el equipo de alquimia hasta poder conseguir una mejora del +81% en cada pieza que permita el encantamiento de reforzar alquimia.
  7. Hacer el equipo de mejora de herrería y alquimia. (cuello, dedo y manos con +81% en alquimia y herrería, cuerpo con +81% de herrería y dos cabezas de +81% de alquimia que se puedan vestir juntas: existen tres objetos de cabeza en el juego que pueden vestirse a la vez que un Anillo/Circlet o una Máscara de Sacerdote Dragón, son el Yelmo Falmer, el Penitus Oculatus y La Corona Dentada)
  8. Hacer las pociones definitivas de +145% en encantamiento y +582% de herrería.
  9. Mejorar las armas y armaduras que más me gusten
  10. Encantar el resto del equipo a su gusto. Yo recomiendo hacer un anillo y un collar que en total lleven refuerzo de alteración, conjuración, destrucción e ilusión. Ayudaros del script "bat paso2". Así tendríamos los hechizos de esas escuelas de magia gratis (siempre que encantemos con al menos una reducción del 100% en los hechizos). Podéis seguir encantando con mejoras de daño en arquería, armas, etc... pero sólo si queréis matar dragones de un sólo golpe como en estos vídeos
    1. con arco 
    2. con espada
  11. No recomiendo ningún otro encantamiento (ya tenemos el cap de armadura, casi el cap de resistencia a la magia [ver nota], somos prácticamente invisibles a los enemigos, podemos llevar 600 de peso, no gastamos magia, tenemos pociones de vida gratis [basta con llamar a "bat pociones"], todo el dinero que queramos [basta con llamar a "bat oro"], las ganzúas no se nos rompen,... ). No nos hacen falta.
  12. Ir a la "Piedra del corcel". Me parece la más útil, así tendremos una capacidad de carga 100 puntos mayor. Podéis hacerlo usando el comando "coc doomstonenorthernpineforest01".
  13. Si tenéis un seguidor os recomiendo que lo despidáis (por el sigilo)
Y ya sólo os queda disfrutar del juego a vuestro antojo, lo espectacular de su motor, sus personajes, su historia, etc...
Pero ¿Cómo hemos conseguidos esas estadísticas? Alternando los perks.

Alternar perks

Esto es la base de todo. Lo descubrí al observar que si activaba por consola sólo el rango uno y el tres de "Resistencia mágica", en la rama de "Alteración", en los efectos activos me aparecían dos bonificaciones distintas de +10 y +30 a la resistencia a la magia, y si activaba después el rango dos por consola o a mano, sólo conservaba la bonificación de +30.

Haciendo más pruebas con otros perks, observé que si otorgaba ventajas no contiguas, las bonificaciones se acumulaban, mientras que si añadía los "huecos" de en medio, se perdían y sólo se conservaba la mayor.
Con esto, decidí que mis script tuvieran los rangos 1, 3 y 5 y olvidaran los rangos 2 y 4 de los siguientes perks:
  1. Armadura Pesada. Perk: Fuerza arrolladora. Ventaja total: 180% en vez de 100%.
  2. Armadura Ligera. Perk: Defensor ágil. Ventaja total: 180% en vez de 100%.
  3. Armas a una mano. Perk: Hombre de armas. Ventaja total: 180% en vez de 100%.
  4. Armas a dos manos. Perk: Bárbaro. Ventaja total: 180% en vez de 100%.
  5. Especializaciones en armas (espadas, hachas y mazas) 30% crítico en vez de 20%.
  6. Arquería. Perk: Máxima tensión. Ventaja total: 180% en vez de 100%.
  7. Arquería. Perk: Disparos críticos. Ventaja total: 30% en vez de 20%.
  8. Bloqueo. Perk: Muro de escudos. Ventaja total: 90% en vez de 40%.
  9. Discreción. Perk: Sigilo. Ventaja total: 90% en vez de 40%
  10. Robo. Perk: Dedos largos. Ventaja total: 180% en vez de 100%.
  11. Elocuencia. Perk: Regateo. Ventaja total: 60% en vez de 30%
  12. Encantamiento. Perk: Encantador. Ventaja total: 180% en vez de 100%.
  13. Alquimia. Perk: Alquimista. Ventaja total: 180% en vez de 100%.
Además:
  1. Alteración. Perk: Resistencia mágica. Ventaja total: 40% en vez de 30%. Rango 1 y 3. Elimino el 2.
  2. Elimino "Atronarch" de "Alteración" para evitar que se pueda absorber el efecto de sigilo del último perk "Guerrero sombrío".
Así que NO ACTIVÉIS VENTAJAS A MENOS QUE NO QUERÁIS IR TAN MAZADOS. Lo cual es una opción pues si no vais repartiendo demasiada estopa incluso en "Muy Difícil".

Como ejemplo pongo unos pantallazos con los números que podéis conseguir sin pociones, sólo con equipo encantado. Como resumen:
  • Armadura Pesada (daédrica):  26.298 
  • Armadura Ligera (escamas de dragón):  25.843
  • Daño de arco daédrico: 15.173
  • Daño de martillo de guerra daédrico: 12.797
  • Daño de espada daédrica: 12.225
  • Máximo nivel de poción encantamiento: 145%
  • Máximo nivel de poción herrería: 582%
  • Máximo nivel de mejora de herrería y alquimia: 81%

Haz click en las imágenes para ampliarlas:

Armadura y habilidades
Daño de Arco
Daño de martillo a dos manos
Daño de espada a una mano
Poción de encantamiento
Poción de herrería


Conclusiones

Visto los resultados, yo recomiendo usar esta guía para:
  1. Vestir el equipo que nos guste más estéticamente (armas y armaduras) o vaya mas a juego con nuestro rol sin tener que renunciar a las mejores estadísticas.
  2. Tener un único personaje que pueda llevar a cabo todas las mecánicas del juego (guerrero, mago y ladrón por así decirlo)
  3. Montaros una partida para hace el animal y desahogaros un poco XD
  4. Vengaros del juego por haber cogido un perk inútil y que tengáis que volver a empezar de nuevo con un personaje porque no os salgan las cuentas respecto a donde debéis poner cada perk (sobretodo si os tangaron como a mí con el perk "Golpe de desarme" de "Bloqueo", ya sabéis, ese que se supone que alguna vez debería desarmar a alguien al darle un embate con escudo... yo nunca lo he visto aún)
Para terminar, deciros que el comando "COC" que he usado antes, es para moveros al centro de la celda que le digáis. Es algo muy útil sobretodo si es la primera vez que vais a un sitio. Por ejemplo, en la guía vamos a la celda de pruebas, a la piedra del corcel y al próstilo de Boethiah. Hay una web que podéis usar para descubrir nuevas ubicaciones de vuestro interés. El enlace es: Skyrimsearch. Recomiendo guardar la partida la primera vez que probéis cada una, ya que en algunas podéis morir nada mas aterrizar.

En fin empecé diciendo que quería darle caña al juego en mis vacaciones, pero al final con todo esto mas bien he dedicado dos semanas a investigar y a hacer vídeos para que podáis ver los resultados.

Si tenéis algún problema, duda o queréis algo de ayuda con la consola o los scripts, podéis dejarme un comentario.

¡¡Un saludo jugones!!

1 de septiembre de 2012

CSS: Botones redondeados con brillo

Sabiendo lo que os expliqué ligeramente en la primera entrada de CSS, hoy voy a dedicarme a las propiedades CSS border-radius, box-shadow y linear-gradient. Con su apoyo, al final haré un botón que parezca azul cristalino y que se ilumine cuando pongamos el cursor encima,  todo ello sin utilizar ninguna imagen y con sólo un estilo.


Pero antes: ¿qué nos ofrece cada una de estas propiedades?
  • border-radius: Redondeo de las esquinas de un elemento (incluido imágenes)
  • box-shadow: Aplicar un efecto de sombra a un elemento
  • linear-gradient: Aplicar un degradado de colores de fondo
En los enlaces de la W3C que pongo arriba se explica todo en más detalle. Aquí voy a poner lo que veo más útil y unas demostraciones de lo que se puede conseguir con cada una de ellas. En cada muestra podréis ver los efectos que produce el código que esta dentro del elemento estilizado.
Debemos tener en cuenta que todavía no son un estándar y que cada navegador puede tener una implementación distinta hasta que se asiente cada una de las propiedades (yo compruebo los efectos en Chrome y Firefox que son los que más me visitan XD).

border-radius:

El valor de esta propiedad viene dada por dos valores, el primero marca el radio horizontal de la esquina y el segundo el radio vertical, ya que podemos hacer que sean distintos. De esta forma tenemos:

Elemento con las cuatro esquinas iguales y redondas. Sólo hace falta un valor:

border-width: 2; border-radius: 1em;
NOTA: si os fijáis el tamaño del radio esta medido en 'em', esta es una medida relativa al tipo de letra que se esta usando y que puede asemejarse a una 'm' minúscula. De esta forma el radio guardará una proporción acorde al contenido.

Elemento con esquinas distintas dos a dos. Hacen falta dos valores:

border-width: 2; border-radius: 1em 0.5em;

Elemento con las cuatro esquinas distintas. Un par valor por esquina (además añadí distintos grosores):

border-width: 2px 6px;
border-top-left-radius: 1em 0.5em;
border-top-right-radius: 0.2em 0.2em;
border-bottom-right-radius: 2em 2em;

Con todo esto es posible darle vueltas a la imaginación para que quede todo mas curioso.

box-shadow:

El valor de esta propiedad es una lista de sombras separadas por comas, cada una especificada por 2-4 valores, un color opcional y una clave "interior":
  1. Desplazamiento horizontal de la sombra respecto al elemento.
  2. Desplazamiento vertical de la sombra respecto al elemento.
  3. Difuminado de la sombra.
  4. Extensión de la sombra (cuánto más grande/pequeña es respecto el elemento).
  5. Color de la sombra. Opcional (si no se indica nada se hereda la propiedad color del elemento).
  6. Indica si la sombra es interior. Opcional. Se pondría la palabra clave 'inset'.
Con esto ya podemos empezar a ver que obtenemos:

Sombra exterior del mismo tamaño que el elemento desplazada 10px a la derecha y abajo:

box-shadow: 10px 10px rgba(0,0,0,0.4);

Sombra interior del mismo tamaño que el elemento desplazada la mitad:

box-shadow: 5px 5px rgba(0,0,0,0.4) inset;

Sombra interior y exterior, de distintos colores, con distintos desplazamientos y con la sombra exterior 3px mayor que el elemento:

box-shadow: 8px 4px 0 3px rgba(0,0,200,0.4), 4px 8px rgba(200,0,0,0.4) inset;

Sombra centrada en el elemento 3px más grande y con 4px de difuminado:

box-shadow: 0 0 4px 3px rgba(0,0,0,0.4);

Bien ya nos vamos acercando a lo que queremos.

linear-gradient:

Esta propiedad necesita que se le indiquen los colores que vamos a usar, el ángulo de pintado, dónde obtenemos cada color, el punto de partida... es bastante complejo de hacer a mano para algunos efectos más complicados.
Gracias a Dios, tenemos un enlace con una aplicación web que nos proporciona una interfaz parecida a la de Adobe Photoshop para crear los gradientes y nos genera el código preparado para ser compatible con todos los navegadores.
Aquí dejo el enlace a esta aplicación: Ultimate CSS Gradient Generator.

Así podemos conseguir fácilmente efectos como estos:

background: -moz-linear-gradient(-45deg, rgba(30,87,153,0) 0%, rgba(30,87,153,0.8) 15%, rgba(30,87,153,1) 19%, rgba(30,87,153,1) 20%, rgba(41,137,216,1) 50%, rgba(30,87,153,1) 80%, rgba(30,87,153,1) 81%, rgba(30,87,153,0.8) 85%, rgba(30,87,153,0) 100%); background: -ms-linear-gradient(-45deg, rgba(30,87,153,0) 0%,rgba(30,87,153,0.8) 15%,rgba(30,87,153,1) 19%,rgba(30,87,153,1) 20%,rgba(41,137,216,1) 50%,rgba(30,87,153,1) 80%,rgba(30,87,153,1) 81%,rgba(30,87,153,0.8) 85%,rgba(30,87,153,0) 100%); background: -o-linear-gradient(-45deg, rgba(30,87,153,0) 0%,rgba(30,87,153,0.8) 15%,rgba(30,87,153,1) 19%,rgba(30,87,153,1) 20%,rgba(41,137,216,1) 50%,rgba(30,87,153,1) 80%,rgba(30,87,153,1) 81%,rgba(30,87,153,0.8) 85%,rgba(30,87,153,0) 100%); background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,rgba(30,87,153,0)), color-stop(15%,rgba(30,87,153,0.8)), color-stop(19%,rgba(30,87,153,1)), color-stop(20%,rgba(30,87,153,1)), color-stop(50%,rgba(41,137,216,1)), color-stop(80%,rgba(30,87,153,1)), color-stop(81%,rgba(30,87,153,1)), color-stop(85%,rgba(30,87,153,0.8)), color-stop(100%,rgba(30,87,153,0))); background: -webkit-linear-gradient(-45deg, rgba(30,87,153,0) 0%,rgba(30,87,153,0.8) 15%,rgba(30,87,153,1) 19%,rgba(30,87,153,1) 20%,rgba(41,137,216,1) 50%,rgba(30,87,153,1) 80%,rgba(30,87,153,1) 81%,rgba(30,87,153,0.8) 85%,rgba(30,87,153,0) 100%); background: linear-gradient(135deg, rgba(30,87,153,0) 0%,rgba(30,87,153,0.8) 15%,rgba(30,87,153,1) 19%,rgba(30,87,153,1) 20%,rgba(41,137,216,1) 50%,rgba(30,87,153,1) 80%,rgba(30,87,153,1) 81%,rgba(30,87,153,0.8) 85%,rgba(30,87,153,0) 100%); color: white; filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001e5799', endColorstr='#001e5799',GradientType=1 ); text-align: center;

Todo el texto interior no es que me haya vuelto loco, es todo el código que hace falta para que funcione... así que yo prefiero que me lo haga una aplicación.

Muy bien... ¿y dónde está el botoncito?

Para terminar voy a sacarle partido a todo lo que hemos visto y a crear sólo con CSS un botón con esquinas redondeadas y textura cristal que se ilumine cuando estemos encima de él sin usar ninguna imagen. Para ello haré lo siguiente:
  1. Creare un estilo de clase "botonRapido" con:
    • Bordes redondeados
    • Un gradiente que me dé la textura cristal apagado
    • Una sombra centrada en el botón
    • Un color para la fuente del texto que no sea blanco puro
  2. Modificaré el estilo anterior cuando suceda el evento "hover" (pasar el ratón por encima) para que:
    • El gradiente sea más luminoso
    • La sombra más clara
    • El color de la fuente blanco puro.
Implementando todo eso ya tenemos nuestro botón. Probarlo.



Si queréis saber como lo hice exactamente, os dejo el enlace a los archivos que he creado para que podáis verlo tranquilamente y hacer pruebas en local con vuestro navegador.

Si tenéis algún problema podéis comentármelo. Un saludo.

5 de agosto de 2012

VirtualBox: Copiando Discos


Buenas a todos:

Después de un largo paréntesis en mis entradas por motivos varios, traigo una solución a un problema que seguro que os habéis encontrado trasteando con VirtualBox.

Yo empecé con la virtualización de equipos usando VirtualPC (Microsoft). Es sencillo y para el que quiera poco más que tener una máquina con la que trastear usando software nuevo o emular alguna antigua por ejemplo, pues sirve. Si tienes un poco más de conocimientos y quieres hacer algo más avanzado (además de usar una solución abierta) seguramente ya te hayas pasado a VirtualBox.
Cualquier máquina con VirtualPC puedes pasarla a VirtualBox. Yo lo que suelo hacer es crear una nueva máquina en VirtualBox y enchufarle el disco duro de la antigua. Haciendo esto corres el riesgo de que en varias máquinas "clonadas manualmente" por uno mismo, al querer registrar los distintos dispositivos virtuales de almacenamiento, se presente un error que diga que el UUID (Identificador Universal Único) del disco que quieres añadir ya existe.

Esto es porque al copiar los discos duros como archivos en el sistema de archivos del huésped se copian con su UUID. Por tanto en vez de copiarlos hay que clonarlos o, en caso de que no puedas hacer esto, cambiarles el UUID.

Eso podemos hacerlo usando la línea de comandos con VBoxManage. Con GNU/Linux no deberíais tener problemas con ejecutarlo en la terminal directamente. Con Windows lo primero es encontrar dónde está ese ejecutable porque lo normal es que no esté en nuestra variable $PATH. En Windows 7 deberíais encontrarlo en C:/Program Files/Oracle/VirtualBox. Si es así los comandos para las dos opciones serían:


Sólo para Windows (ponernos en el directorio de trabajo apropiado):
cd "C:/Program Files/Oracle/VirtualBox"
NOTA: Las comillas son importantes para que el comando incluya los espacios de la ruta.

Para Clonar HDD Virtual:
VBoxManage clonehd <path del HDD a clonar> <path del destino del HDD clonado>

Para Cambiar UUID del medio:
VBoxManage internalcommands sethduuid <path del HDD para cambiar su UUID>

Con cualquiera de las dos opciones vuestro HDD virtual tendrá un nuevo UUID y podrá ser registrado correctamente por VirtualBox.

Aquí he comentado dos aplicaciones de virtualización, pero hay más. Una de las más conocidas es VMWare pero es de pago (y bastante cara) y creo que sólo compensa para virtualización de servidores. Como entiendo que con los tiempos que corren el ahorro es importante, recomiendo VirtualBox. Además las máquinas de VMWare también se pueden traer a VirtualBox.

Espero os haya servido.

11 de abril de 2012

Motion - Web Cam Server

Hoy traigo una aplicación muy chula a la par que útil si tenéis que hacer algo dedicado con la vigilancia. Se trata de Motion y un Front-End para ella llamado Kmotion.

Motion es una aplicación por linea de comandos que crea un servidor web con flujo de vídeo en streaming cogiendo la señal tanto de una cámara local, de USB por ejemplo, como de una cámara de red. Incluso se puede controlar la cámara de red si tiene esta opción (zoom, movimiento, etc...) y esta dentro del catalogo de drivers con los que trabaja la aplicación.

Todas las opciones como calidad de capturas, fps, detección de movimiento (eventos), lanzamiento de scripts al inicio y final de los eventos, velocidad de capturas en función de si se detecta movimiento o no, etc... se configuran mediante archivos de configuración.
Kmotion en acción 
Estar editando varios archivos de configuración siempre es más incómodo que tener una buena GUI que nos facilite las cosas. El proyecto Kmotion ofrece un front-end para Motion que le da mucha mas eficacia y espectacularidad. Con él tenemos opción de configurar más cómodamente "casi todo" y corre sobre un servidor apache. Además crea una base de datos de eventos grabados teniendo acceso a ellos para ir directamente a ver lo que más nos interesa. En la página web de Kmotion vienen unos vídeos explicando muchas de sus funcionalidades como por ejemplo la mascara de captura para evitar zonas que nos darían falsos eventos (por ejemplo las ramas de un árbol que se mueven con el viento).

Descubrí esta aplicación en el numero 69 de la revista Linux Magazine. La considero muy interesante e instructiva. Os dejo el enlace al articulo donde trata sobre Motion y Kmotion.

Una de las cosas buenas de esta revista es que todos los artículos de esta revista los podéis descargar gratis 6 meses después de salir en el kiosco. Yo la compro todos los meses porque hay que ayudar a las cosas que valen la pena, pero que se pueda descargar gratis da buena cuenta del compromiso que tiene esta revista por llevar Linux a los usuarios y una facilidad enorme de compartir artículos como este con el resto de la comunidad, así como tenerlos intactos cuando la revista se vaya estropeando (si es que el del kiosco o el cartero no te la da ya hecha cachos jeje) o vaya pasando el tiempo y este mas escondida entre el resto de revistas que tengamos y nos de pereza buscarla.

Todo viene muy bien explicado en el articulo. Por mi parte sólo os voy a contar las dos pegas con las que me topé y que no vienen en la revista. Cuando hice la prueba utilicé Ubuntu 10.04.
  1. Después de instalar Kmotion al intentar acceder nos pide un usuario y contraseña que no hemos configurado. Hay un script en la carpeta de kmotion para cambiar usuario y contraseña. Os recomiendo que lo ejecutéis desde la terminal por si estáis cometiendo algún error, como no cumplir con los requisitos mínimos de contraseña, y no sabéis porque no podéis acceder después de ejecutar el script. 
  2. En mi caso utilice 3 cámaras web para mi prueba. Una de ellas era bastante antigua y no era capaz de capturar con ella debido a que no encontraba una paleta compatible con ella. Este fallo lo arreglé
    precargando una librería de Video4Linux ejecutando el arranque de Kmotion con el comando:

    LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so kmotion start
    NOTA: Si en vez de Kmotion estáis usando Motion sustituir lo ultimo.
Los resultados son muy buenos y la única pega que encontré fue que la parte derecha de kmotion donde trae todos los botones no es muy flexible y si lo utilizáis desde una pantalla muy pequeña se os pueden quedar ocultos algunos botones importantes y unos encima de otros. Lo bueno es que al ser Open-Source podéis cambiar lo que queráis a vuestro antojo y editar el código para que quede lo que os interesa o añadir cosas nuevas.

Os dejo el enlace de descarga de un guiaburros que me hice para que no se me olvidara nada.

Espero que os haya sido de interés como a mi, y si tenéis alguna duda ya sabéis, ponerme un comentario.

4 de abril de 2012

Linux por Terminal Server

Actualmente en mi casa tengo un equipo pepino, uno muy antiguo (carca) y un netbook (para cuando estoy tirado en el sillón o los viajes). Con el pepino va todo muy bien, corres varias máquinas virtuales haciendo experimentos distintos y va como la seda. Con el carca ya es otro cantar. A veces te dan pequeños ataques de ira esperando a que haga lo que quieres, incluso teniendo Ubuntu puesto (estoy pensando en darle una oportunidad a Macpup, derivado de Puppy Linux con escritorio Enlightenment E17 un tamaño de 164 Mb y que corre entero en RAM, ya os contaré).

Un día pensé que podía tirar de escritorio remoto sobre una máquina virtual en mi equipo pepino desde uno de los otros dos para aprovechar mejor la capacidad de computación (el PC antiguo por si esta ocupado el grande y el netbook por si no quiero levantarme del sillón)
No son las máquinas reales que tengo XD 
Quería que esa máquina virtual fuera Linux. Probé compartir el escritorio que era lo que más a mano se veía, pero rápidamente fue descartado por tener que logearte primero, la imagen no iba bien y cargaba más la red. Nada elegante.

En mi trabajo se usa Windows. Estoy acostumbrado a usar Terminal Server que usa el protocolo RDP y estaba interesado en incluirlo en la solución, por si acaso. Además buscaba que no tuviera que instalar nada en los equipos que utilizaran este servicio.

Después de probar y buscar varias cosas elegí instalar en Linux la aplicación xrdp combinado con TightVNC.

La instalación es sencilla si se respeta instalar primero TightVNC y luego xrdp. En Ubuntu sería lo siguiente

sudo apt-get install tightvncserver
sudo apt-get install xrdp
sudo reboot

Sólo hay dos problemas:
  1. Con el escritorio Gnome habrá que usar el editor gconf-editor para poner false en la variable /apps/gnome_settings_daemon/plugins/keyboard o tendremos problemas con funciones del teclado (Nota: para Ubuntu 12.04 parece que no hay este problema). 
  2. No hay soporte para teclado español en xrdp así que habrá que usar una configuración inglesa. 
Una vez esto hecho sólo debemos abrir nuestra aplicación de "Conexión a Escritorio Remoto" con la dirección IP del equipo en el que instalamos Tightvnc y xrdp.
Conexión a Escritorio remoto de Windows 
Nos saldrá un login para xrdp donde pondremos en Module sesman-Xvnc y el usuario y contraseña un usuario del sistema host (donde instalamos el xrdp).
Login para xrdp 
Después de esto ya podéis disfrutar de la velocidad del pepino en el sillón o tu viejo PC. Yo estoy muy contento con ello. Espero comentarios.

Gracias a Javier Andrés Alonso y su blog (enlace a entrada) por enseñarme esta vía que es la mejor de todas las gratuitas que he probado.

Un saludo a todos.

1 de abril de 2012

SO de bolsillo

Quiero compartir con vosotros una aplicación que me resulta tremendamente útil y que os puede servir tanto para probar Sistemas Operativos (SO) nuevos, para recuperaros de alguna trastada o para que vuestros colegas crean que sois unos cracks llevando una distribución Live en un pendrive.

Se llama UNETBOOTIN y lo podéis conseguir en su página web.


Da igual que tengáis Windows, Linux o Mac. El programa tiene versiones para todos ellos. Sólo debéis descargar, ejecutar, meter el pincho que queréis en el que se os cargue el SO y elegir el SO propiamente dicho. También puedes elegir que lo tome desde una imagen ISO directamente por ejemplo. Vamos que más opciones no podéis tener.

A fin particular os recomendaría que lo usarais para ir metiendo en la cabeza a los que podáis de que Linux es bueno (y desde mi punto de vista el futuro) y que no se pierde nada por probar algo sin correr riesgos. Pero sobretodo yo lo uso para tener un pincho listo para instalar rápidamente sobre esos netbooks que vienen sin lector de DVD.

Sólo me queda agradecer a sus creadores el aporte y esperar que os sea útil. Para cualquier problema podéis comentar.

Un saludo.

Compárteme

Entradas populares