Sábado 23 de septiembre de 2017

Asociación LiGNUx: El telescopio Stellarium anuncia su versión 0.16.1
Baltasar Ortega

Baltasar Ortega
KDE Blog

Entrevista a Jairo LeBentz #akademy2017 de Almería

Cuando te encuentras en una persona que solo conoces de forma virtual físicamente en un evento es una de las mejores cosas que te puede pasar. Es el momento donde se terminan de enlazar las relaciones y a partir de ese momento cuando se chatea con ella no se hace de la misma forma. Es por ello que pedí a un habitual del grupo de Telegram de KDE – Cañas y Bravas que asistió por primera vez a un evento KDE me concediera una minutos de su vda. Bienvenidos pues a la Entrevista a Jairo LeBentz que realizó a partir de conocernos (a él y a su encantadora esposa) en Akademy 2017 de Almería.

Entrevista a Jairo LeBentz #akademy2017 de Almería

Entrevista a Jairo LeBentzEn primer lugar, gracias por querer contestar estas preguntas. Para empezar me gustaría que te presentaras a tí mismo.
Primero agradecerte esta oportunidad para compartir mis experiencias e impresiones del pasado Akademy en Almería.
Mi nombre es Jairo, Jair LeBentz en la Internet, soy colombiano, nacido en la ciudad de Cartagena de Indias y los últimos 9 años de mi vida los he vivido en Alemania.
Soy arquitecto urbanista y trabajo actualmente en una oficina de arquitectura en la ciudad de Karlsruhe.
Me gusta el diseño asistido por computador, procesamiento de imágenes y creación en 3D, la fotografía urbana y de paisajes, el rock de los 80s y 90s y el cine épico.
¿Cuál es tu nivel de conocimientos en Informática?
                                   
Bueno, no soy un profesional en el área de la informática, me considero solo un usuario con un nivel un poco más alto que la media pero muy curioso en estos temas.
 ¿Cómo conociste el Software Libre?¿Y KDE?
                                   
Cuando vivía en Colombia era usuario de windows con todos mis programas versión Jack Sparrow. El amigo que me conseguía el software pirata estaba iniciando su camino en el software libre y yo de vez en cuando le preguntaba por ello por simple curiosidad y cuando viajé a Alemania por motivos de estudio él tuvo la iniciativa de regalarme un CD de Ubuntu.
Este CD estuvo bastante tiempo reposando en una caja hasta que un daño en mi computador me incentivo a instalar ese Ubuntu por primera vez pues el técnico que recuperó mis datos solo pudo hacerlo a través de un software que corría en Linux, lo cual fue para mi como una señal de que tal vez Linux podría ser una alternativa real y mejor a windows.
   
Hablamos del año 2008 y aquí me disculparan los usuarios de Gnome 2 pero ese escritorio me parecía extremadamente feo. Si, ya tenia un dual boot, mi primera distribución GNU/Linux instalada junto a Windows pero escasamente entraba a Ubuntu.
Fue cuando salio Unity y luego conocí Kubuntu que me comencé a interesar realmente y a conocer más del mundo GNU/Linux y de las herramientas del software libre.
Desde entonces probé otras distros, varios escritorios pero solamente con KDE me siento realmente cómodo.
Mi primer contacto real con KDE fue con Debian 7 pero fue una experiencia bastante desilusionante, Debian fallaba por todas partes y a veces no podía instalar programas que quería porque las dependencias eran muy viejas.  
Luego de ello instalé Chakra y la experiencia fue muchísimo mejor y desde entonces enamorado de KDE  
¿Qué distro usas?¿Y por qué?
                                   
En este momento tengo dos equipos, un portátil y una torre de escritorio y por lo general siempre suelo tener dos distros instaladas en cada equipo. Windows hace mucho tiempo que voló de mis equipos aunque mantengo una maquina virtual con dicho OS en la torre de escritorio por si acaso, pero sinceramente no recuerdo cuando fue la última vez que la utilicé
En el portátil que ya lleva unos años conmigo tengo Chakra como distro inamovible y alguna otra distro, entre las que han ido y venido puedo mencionar Ubuntu, Netrunner, KDE Neon, Maui Linux y un par de intentos con OpenSuse.
Chakra es especial por ser la primera distribución enfocada solamente en KDE y QT que existió y aunque hoy día ha perdido relevancia y su lugar ha sido tomado por otras distribuciones, sigue siendo la distro que mejor se comporta en este equipo. Además la relación con los desarrolladores es muy cercana, son gente muy amable al igual que la pequeña comunidad en español, hay veces que me siento como en familia con ellos.

Equipo Chakra en Akademy 2017

En el computador de escritorio tengo instalada Maui Linux y es por una casualidad.
Cuando compré el equipo tenia claro que iba a instalar una distribución point release, basada en Ubuntu y de gran estabilidad ya que el equipo lo iba a destinar específicamente a trabajar con programas de arquitectura, Blender y fotografía y no me puedo permitir fallos en el sistema operativo.
Me había decidido a instalar Netrunner pero en ese preciso momento hubo una reestructuración completa en la oferta de Blue systems y la versión de Netrunner basada en Kubuntu fue eliminada y en su lugar pusieron a Maui Linux.  
Sin saber realmente que esperar pues en ese momento nadie había oído hablar de dicha distribución la instalé para probar y fue una gran sorpresa, puedo decir que es a día de hoy la mejor distribución que he utilizado, es fácil de instalar y mantener y ademas de ello estable como ninguna otra que antes hubiera usado. Llevo mas de un año sin un solo problema, sin un solo sobresalto y sin pedir ayuda en un foro porque algo no funciona.
Creo ser el primero que mencionó Maui Linux en los diferentes grupos de Telegram y me alegra ver que ya es más conocida y siempre es mencionada con comentarios muy positivos.
Sé que viajaste de Alemania a Almería para venir a Akademy.  ¿Cómo conociste la existencia del evento?¿Qué te motivó?
                                   
Sobre Akademy había si oído anteriormente pero siempre como algo lejano, algo que no tenía nada que ver conmigo como usuario y que era solo para gente que trabajaba directamente en el desarrollo de KDE y Plasma, incluso la versión anterior de Akademy fue en Berlin y no tuve curiosidad de asistir.

Asistentes del evento disfrutando la noche almeriense

Para esta Akademy 2017 había algo diferente, creo que el equipo de KDE España ha hecho un trabajo excelente de difusión en las redes sociales, en Telegram y a través de los Podcast.
Esto ha acercado a los usuarios como yo mucho más al proyecto KDE y de cierta forma para esta Akademy sentí curiosidad por conocer el proyecto y la comunidad KDE.
Así que hice coincidir mis vacaciones para asistir unos días a Akademy y también conocer la región del sur de España que hasta el momento no conocía.
 ¿Qué es lo que más te ha gustado del evento?
                                   
Muchas cosas me han gustado, por ejemplo conocer la comunidad responsable de KDE desde adentro, conocer gente que está detrás de tantos proyectos que todos usamos, personas que siempre olvidamos y que están ahí dedicando su esfuerzo para hacer que todo funcione lo mejor posible.
Me ha gustado ver de cerca a representantes de KDE Neon, de Opensuse, de Netrunner, de Kubuntu, de Chakra mi distro favorita y tal vez olvido alguna otra distribución que estuvieron presentes.  
También haber conocido gente iconica dentro de nuestro mundo como Jonathan Riddell, Albert Vaca por mencionar solo algunos entre tantos que estuvieron presentes.
Me ha gustado ver en primicia lo que algunos proyectos como Kdenlive están preparando para sus próximos lanzamientos, ver a Mycroft en acción, la presentación en sociedad de Babe una nueva propuesta de reproductor musical para plasma.
Una persona que me agradó mucho conocer fue a Dmitri Popov, pues la fotografía es uno de mis hobies y he seguido el trabajo de Dmitri como difusor del uso de software libre en el mundo de la fotografía, he adquirido su libro Linux_Photography  y es un referente para mí en el área.
Hablando de las ponencias, una que me gustó mucho fue la realizada por Paul Brown, pues tocó un tema que como usuario me atiende directamente. Los problemas que existen en la comunicación de los proyectos de la organización KDE hacia usuarios y/o gente que no tiene conocimientos de informática ni de GNU/Linux.  
Si realmente se desea llevar el software libre y sus bondades a más usuarios, es importante comunicar de la forma adecuada y no solo en un idioma técnico que solo los involucrados en el desarrollo pueden entender.  
También tuve la oportunidad de ver, tocar y probar la oferta de Slimbook, si antes tenía deseos de comprar uno, ahora he quedado convencido.
Algo que no debo olvidar mencionar fue conocer a los miembros de KDE España, todos excelentes personas así como todas aquellas personas que colaboraron con la realización del evento. Me he llevado la mejor impresión del valor humano que está detrás del movimiento del software libre en España.
¿Qué es lo que menos?
                                   
Lo que menos me ha gustado fue no haber disfrutado al 100% todo el evento pues tuve que atender otros asuntos familiares y me he perdido ponencias que hubiese querido ver.
Pero es una lección aprendida, Akademy es un evento para disfrutar de principio a fin y para próximas versiones pienso dedicarle todo el tiempo e interactuar mucho más con los desarrolladores y demás personalidades que están presentes en el evento.
¿Qué mejorarías de Akademy?
                                   
Hubo un poco de problemas antes de la inauguración del evento, el proceso de inscripción estuvo detenido por algunos detalles de logística y pienso que es algo a tener en cuenta para futuras Akademys.  
Sin embargo este no es para mi el tema “a mejorar” creo que es más importante la asistencia de más personas de otros continentes para ser un evento realmente mundial.
Para abordar mi punto voy a mencionar una entrevista que escuche en el podcast de Paco Estrada “compilando podcast”, en ella Paco conversaba precisamente con Paul Brown y tocaron el tema de la poca participación de personas de otros continentes, mencionaron que en cierta forma Akademy pareciera ser un evento europeo por la cantidad de asistentes de este continente y les gustaría ver más participantes de África o Asia.
Yo añadiría a esto más participación de Latinoamérica porque es de donde vengo y sé del grandioso trabajo que han hecho personas de esta parte del mundo en todos los niveles; programando, comunicando y sobre todo diseñando.
Cuan maravilloso sería para el proyecto tener reunidos a un Fabian Alexis, un David Linares o un Jorge D’Angelo de Jomada, y lo que este evento significaría para ellos.
Me sorprendió realmente cuando pregunté a alguien del KDE VSD su opinión sobre Antü, Lux o Noc, y no tenía idea que existieran, cuando para muchos de nosotros en nuestra comunidad hispanohablante estos son los mejores temas KDE después de Breeze.
Pondría por ejemplo a Camilo Higuita quien vino a presentar su proyecto Babe.
Tal vez la única persona de Latinoamérica, su proyecto fue muy bien recibido, hubo interés y recibió un gran impulso de parte de la gente de KDE.
¿Qué te llevas de la Akademy?¿Repetirías?
                                   
Akademy fue en general una agradable experiencia, convivir junto a amantes del software libre, compartir la alegría siempre presente en todo momento, desde la mañana hasta la noche es algo que me he disfrutado mucho.
Me llevo también el haber conocido a la gente de KDE España y otros linuxeros que no pertenecen a la organización pero que son igualmente excelentes personas.
Me llevo también mi primera camiseta  de KDE 🙂  
Claro que repetiré. Voy a asistir a la próxima Akademy en Viena, va a estar más cerca de mi y sé que la voy a disfrutar aun más.  
Gracias por tu tiempo, espero que esta entrevista anime a otros usuarios a asistir a eventos como Akademy o Akademy-es.

Viernes 22 de septiembre de 2017

Asociación LiGNUx: El editor de vídeo Pitivi alcanza su versión 1.0
Baltasar Ortega

Baltasar Ortega
KDE Blog

Primeros frutos de Randa 2017 para hacer KDE más accesible

Hace una semana que finalizó el evento y gracias a la colaboración de José Millán ya tenemos un informe preliminar de los primeros frutos de Randa 2017 para hacer KDE más accesible. Un pequeño artículo que tiene como objetivo mostrar que realmente se trabaja en este tipo de eventos y animar a los lectores a participar en la campaña de donaciones que sigue abierta hasta final de mes.

Primeros frutos de Randa 2017 para hacer KDE más accesible

Primeros frutos de Randa 2017 para hacer KDE más accesibleHe aquí algunos de las cosas sobre las que los desarrolladores de KDE han estado trabajando para hacerlo más accesible en el pasado Sprint de Randa 2017:

  • David Edmundson y Marco Martin han mejorado sensiblemente la accesibilidad de plasma. Ahora plasma puede ser manejado por personas que tengan algún tipo de discapacidad que requieran usar únicamente teclado y/o usar lectores de pantalla (Por ejemplo: personas invidentes). Es posible que la experiencia aún no sea óptima y que cuando estos usuarios comiencen a usar Plasma detecten problemas, pero ahora ya está en un estado que se les puede pedir que comiencen a probar Plasma para que detecten problemas y que sean solucionados.
  • Plasma mobile ha sufrido muchas mejoras gracias al trabajo de Bhushan Shah. Por ejemplo, se ha mejorado la integración con Marble Maps, se ha mejorado la integración de koko (un visor de imágenes QML) en plasma mobile y se ha comenzado las pruebas de kube, el nuevo cliente de correo. Más información sobre esto:  http://blog.bshah.in/2017/09/19/plasma-mobile-in-randaaa/
  • Frederik Gladhorn y Volker Klause han realizado un plugin para KWin que permite simular diversos tipos de daltonismo. De esa forma los desarrolladores de software pueden probar que su software va a ser perfectamente entendible por una persona daltónica (asegurándose de que si usan colores para transmitir información, esos colores son perfectamente distinguibles por cualquier persona que padezca daltonismo). Sin embargo, no servirá exclusivamente para desarrolladores de kde, si no también para cualquier persona que quiera crear cualquier material usando su ordenador (diseñadores web, material audiovisual, etc.)  Más info: https://blog.qt.io/blog/2017/09/15/testing-applications-color-blindness/

Y mención especial merecen Mario Fux, su familia y el resto de los voluntarios del equipo local se han ocupado entre otros de conseguir patrocinadores locales, comunicarse con la prensa local, comprar la comida y preparar la comida para que el resto de los desarrolladores pudiesemos simplemente centrarnos en desarrollar. Puede que no figuren en la lista de commits, pero realmente se merecen ser considerados “KDE contributors”

 

Ayuda a la financiación de los Sprints de Randa 2017

Como todos los años, se han a celebrado en una pequeña ciudad suiza situada en medio de los Alpes Suizos, los Sprints de Randa. Con esta edición se llegó a su octava edición, con lo que se sigue consolidando como una cita ya marcada en el calendario de muchos desarrolladores de la Comunidad KDE.

Por su localización, por su filosofía de trabajo, por su duración y por las personas que allí asistirán los Sprints de Randa es el evento que más rabia me da no poder asistir pero que no por ello dejo de apoyar con todo mi empeño. Es fabuloso participar de forma activa en las intensas sesiones de hacking que allí se realizan.

De esta forma me complace anunciar que se ha ampliado el plazo para ayudar a financiar los Sprints de Randa que se lanzó con el objetivo de cubrir los gastos de desplazamiento, hospedaje y manutención del nutrido grupo de desarrolladores que se van a dar cita en Randa a partir de la semana que viene. La campaña tenía como objetivo llegar a los 20000 € antes del 16 de septiembre, pero como es habitual cuando no se llega a esa cifra se ha ampliado hasta final de mes.

Así que si quieres ayudar a los desarrolladores que van a hacer el software que después tú disfrutarás libremente más accesible para todo tipo de personas no dudes en aportar tu granito de arena. Cualquier contribución es buena y cualquier promoción también. No olvides difundir la noticia utilizando la etiqueta #Randa2017.

Por cierto, aunque como he dicho toda aportación es buena, este año han sido un poco más específicos a la hora de comunicar en qué se invierten las donaciones.

Ayuda a la financiación de los Sprints de Randa 2017

 

Más información: Randa Meeting 2017 Fundraising Campaign

Ubuntizando.com

Ubuntizando.com
Ubuntizando.com

Los robots versus música

¿Sueñan los robots con ovejas cibernéticas? Lo cierto es que no lo sé pero probablemente no. Lo que sí son capaces de hacer es tocar instrumentos musicales y ser los protagonistas del siguiente vídeo músical. En Automatica Nigel Stanford realiza un estupendo trabajo al sincronizar cada uno de los robots industriales, de los de ríete tú de la fuerza de Hulk que como te metan un piñazo vas fino,  hasta el punto de que parecen ser independientes.

El álbum completo, Automatica, se puede adquirir directamente en su web o a través de iTunes, Amazon, Google Play, Spotify y algún que otro sitio especializado.

Ubuntizando.com

Ubuntizando.com
Ubuntizando.com

Un pequeño ayuntamiento ahorra 25.000 euros al año en licencias informáticas gracias al software libre

Todos podemos beneficiarnos de las ventajas del uso de software libre. Las instituciones apuestan cada día más por este tipo de software por el consiguiente ahorro de licencias informáticas que conlleva. El caso de éxito más reciente lo tenemos en el Ayuntamiento de Puçol, una pequeña población Valenciana, que acaba de implementar el sistema operativo GNU/Linux LliureX con un ahorro en el coste de licencias de 25.000 euros en una primera experiencia piloto.


LliureX es una distribución de Linux realizada por la Conselleria de Educación, Investigación, Cultura y Deporte de la Generalitat valenciana, cuyo objetivo es “la introducción en el sistema educativo de la Comunidad Valenciana de las nuevas tecnologías de la información y la comunicación basadas en software libre”, apunta la concejal Mery Cortell. “Para llegar a todos los centros educativos, Lliurex se distribuye en las dos lenguas oficiales de la Comunitat Valenciana, castellano y valenciano”.

Con esta decisión no solo se fomenta el uso de software libre, también se reaprovechan viejos ordenadores que de otro modo estarían almacenados a la espera de ser reciclados. Ahora con un software actual vuelven a ser funcionales en beneficio de la administración y ciudadanos.

La decisión ya viene de lejos. El primer paso sucedió tiempo atrás cuando la corporación municipal comenzó a utilizar LibreOffice en lugar de Microsoft Office. Su buena aceptación y consiguiente ahorro económico para el Ayuntamiento motiva esta posterior apuesta por LliureX como sistema operativo. En la actualidad LliureX está presente en las aulas de formación de la Escuela Permanente de Adultos (EPA), la biblioteca y el aula de formación en la Casa de Cultura y, finalmente, el aula de formación del Espai Social Martínez Coll y con el tiempo se espera que alcance a todos los equipos informático del municipio.

Jueves 21 de septiembre de 2017

Walleye, una fuente con gracias de diseño original

Este artículo es parte de la serie Recomendando fuentes tipográficas Hoy presento una fuente tipográfica que no es ni una recreación de otra más antigua ni un fork de un proyecto existente, sino un trabajo original diseñado desde cero por Chuck Masterson y ofrecido con licencia OFL: Walleye La fuente es multilingüe, dando soporte a […]
Asociación LiGNUx: FlightGear, el simulador de vuelo Open Source publica su versión 2017.3
Ubuntizando.com

Ubuntizando.com
Ubuntizando.com

Cómo resolver los problemas de micrófono en una Logitech HD Pro Webcam C920 sobre Linux

Me he comprado una Logitech 920C que sin ser lo último de lo último si es una webcam muy interesante en prestaciones y que por cierto muchos youtubers parecen usar. Mi idea es utilizarla para realizar streaming de vídeo en directo en pequeños eventos pero mi sorpresa al realizar pruebas es que el micrófono parece no querer funcionar en Ubuntu y Arch Linux.

Luego de investigar un poco encontré la siguiente solución. Básicamente se trata de editar o crear el fichero de configuración /etc/asound.conf con lo siguiente:

pcm.usb
{
type hw
card C920
}
pcm.!default
{
type asym
playback.pcm
{
type plug
slave.pcm "dmix"
}
capture.pcm
{
type plug
slave.pcm "usb"
}
}

Tan sencillo como esto. Al volver a conectar nuestra webcam está funcionará ahora sin problemas.  🙂

Escuchar radio online en Linux

Aunque hoy en día nos encontramos por todas partes servicios de streaming en el mundo del audio en general, ya sea de forma gratuita o de pago, no todos nos ofrecen radio online. A pesar de que poco a poco nos estamos acostumbrando a escuchar lo que nos apetece justo en el momento en el que se nos ocurre, no siempre fue así en antaño. Hace apenas poco más de una década atrás, no
Baltasar Ortega

Baltasar Ortega
KDE Blog

KDE España busca sede para Akademy-es 2018

KDE España busca sede para Akademy-es 2018,  lo que será su decimotercera edición de Akademy-es, un encuentro entre desarrolladores, usuarios, diseñadores, traductores, simpatizantes o cualquier otro grupo de personas que le interese este proyecto de Software Libre que tantas alegrías nos da y nos seguirá dando.

¿Qué es una Akademy-es?

Una Akademy-es es un excelente lugar donde recargar las pilas si estás dentro de KDE a la vez que una excelente forma de empezar a involucrarte. Además os puedo asegurar que son unas jornadas donde se aprenden muchas cosas, siempre te llevas a casa nuevas experiencias, diferentes puntos de vista y …. una camiseta molona.

Foto de grupo de Akademy-es 2016 de Madrid

KDE España busca sede para Akademy-es 2018

El comunicado es breve y escueto, como siempre:
Como cada año, KDE España organiza Akademy-es, el evento relacionado con KDE más importante del año en España, en el que usuarios y desarrolladores se dan cita para compartir experiencias y conocer las principales novedades de KDE a través de diversas actividades, entre las que destacan conferencias y talleres.

Para la celebración de Akademy-es, KDE España solicita la colaboración de un grupo/asociación en calidad de co-organizador, que facilite algunas de las tareas necesarias para hacer de la edición 2018 un éxito de participación y organización.

Las condiciones básicas y los datos necesarios para presentar la candidatura son los siguientes:

  • Datos de contacto
  • Localización. Debe tener capacidad para unas 75 personas con internet y posibilidad de libre acceso.
  • Datos del grupo organizador e instituciones/entidades colaboradoras.
  • Descripción del equipo organizador.
  • Propuestas de hospedaje asequible para todo aquel interesado en acudir desde otras ciudades.
  • Datos relacionados con el acceso a la localización desde otras ciudades (por avión, tren, etc.) así como al lugar de celebración del evento.
  • Descripción de posibles fuentes de financiación. Aunque es preferible poder asegurarla a priori, no se descartarán las propuestas que no cumplan esta condición.
  • Posibles fechas de celebración de Akademy-es. La fecha habitual es durante los meses de abril o mayo, aunque no se descartarán otras propuestas. El evento debe celebrarse preferentemente de viernes tarde a domingo a mediodía.
KDE España busca sede para Akademy-es 2018

Foto de grupo de Akademy-es 2017 de Almería

La fecha límite de presentación de propuestas para la celebración de Akademy-es es el 18 de diciembre de 2017.

Ante cualquier duda, ponerse en contacto con KDE España (akademy-es-org@kde-espana.es)

 

¡Nos vemos en la próxima Akademy-es!

Martes 19 de septiembre de 2017

TutorialesLinux.com: Evitar uso abusivo de la swap en CentOS

Lunes 18 de septiembre de 2017

Gaspar Fernández

Gaspar Fernández
Poesía Binaria

Bash: ¿Cómo ejecutar código antes y después de cada comando? Logging, monitorización, notificaciones y mucho más

Ejecutar código antes y después de cada comando

Con el fin de hacer nuestro sistema (o servidor) más flexible. Aunque podemos hacer muchas cosas con estas técnicas. Es de gran utilidad poder ejecutar un script justo antes de la ejecución de cualquier orden de Bash y que, justo cuando esta orden termine, podamos ejecutar cualquier otra cosa. Esto nos abre las puertas, por ejemplo a notificaciones de inicio/finalización, logging, monitorización y muchas más posibilidades que veremos en futuros posts. Cosas que podremos hacer tanto en el ámbito local, como en servidores de forma muy sencilla.

Aunque otros intérpretes, como ksh, tcsh, zsh y algunos más tienen facilidades para estas tareas. Vamos a hacerlo en bash, ¡porque somos unos valientes! Porque se instala por defecto con muchas distribuciones y porque es el que me he encontrado con más frecuencia.

Ejecutar algo cuando termina un comando

Cuando un comando se ha ejecutado y Bash nos vuelve a pedir una nueva orden, justo antes de darnos el control, y para mostrar el prompt (ese texto que suele ser usuario@host /directorio/actual y termina en un dólar o una almohadilla), Bash, ejecutará lo que contenga la variable PROMPT_COMMAND, ya sea una función, un alias, o la ejecución de un programa. Vamos a hacer una prueba:

PROMPT_COMMAND=”date”
lun sep 18 10:23:47 CEST 2017
pwd
/home/gaspy
lun sep 18 10:24:47 CEST 2017

Incluso si sólo pulsamos enter, como se vuelve a generar el prompt, justo antes nos mostrará la fecha (porque el comando a ejecutar es date)

Como ejemplo práctico, vamos a hacer un pequeño script que nos notificará cuando alguna partición de nuestro disco duro llegue a un punto crítico, en este caso, vamos a revisar todas las particiones de /dev/sdb y avisar al usuario cuando alguna de estas sobrepase el 90% (opciones que podremos configurar luego), para ello, vamos a crear un script llamado critp.sh con lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh

PARTITION_PATTERN="/dev/sdb*"
WARNING_PERCENT=90
__RED='\033[1;31m'
__YELLOW='\033[1;33m'
__NC='\033[0m' # Color end

function space_notifier()
{
        local OLDIFS=$IFS
        IFS=$'\n'
        local STATUS=($(df -h $PARTITION_PATTERN | awk 'NR > 1'))
        IFS=$' \n\t\r'
        for st in "${STATUS[@]}"; do
                local _ST=($st)
                local _PERCENT=$(echo ${_ST[4]}| tr -d '%')
                if (("$_PERCENT">"$WARNING_PERCENT")); then
                        echo -e $__RED"El dispositivo "$__YELLOW"${_ST[0]}"$__RED" está al ${_ST[4]}$
                fi
        done 2>/dev/null
        IFS=$OLDIFS
}

PROMPT_COMMAND="
space_notifier"

Y lo cargaremos de la siguiente manera:

source critp.sh

Con esto, cada vez que pulsemos enter o finalice un comando, veremos el conjunto de dispositivos que ha alcanzado ese porcentaje de espacio:
Ejemplo de salida de terminal

Una buena idea sería también notificar sólo a veces, tal vez con una probabilidad del 50%. Para que no siempre esté calculando ni nos sintamos abrumados por los mensajes de notificación. Para ello, podemos dejar el script así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh

PARTITION_PATTERN="/dev/sdb*"
WARNING_PERCENT=90
PROBABILITY=50
__RED='\033[1;31m'
__YELLOW='\033[1;33m'
__NC='\033[0m' # Color end

function space_notifier()
{
        if (($(($RANDOM%100))<$PROBABILITY)); then
                return
        fi
        local OLDIFS=$IFS
        IFS=$'\n'
        local STATUS=($(df -h $PARTITION_PATTERN | awk 'NR > 1'))
        IFS=$' \n\t\r'
        for st in "${STATUS[@]}"; do
                local _ST=($st)
                local _PERCENT=$(echo ${_ST[4]}| tr -d '%')
                if (("$_PERCENT">"$WARNING_PERCENT")); then
                        echo -e $__RED"El dispositivo "$__YELLOW"${_ST[0]}"$__RED" está al ${_ST[4]}$
                fi
        done 2>/dev/null
        IFS=$OLDIFS
}

PROMPT_COMMAND="
space_notifier"

Ya tenemos lo básico. Aunque estaría muy bien conocer información sobre el comando que se acaba de ejecutar y que, por supuesto, tenemos a nuestra disposición como es el propio comando ejecutado y su estado de salida. Más adelante podremos saber si se ha ejecutado realmente un comando, porque claro, cuando pulsas enter, vuelve a llamarse a la función. Ahora mismo, está muy bien si queremos realizar tareas de mantenimiento, notificar al usuario si está mal de espacio en disco, etc. Como el siguiente ejemplo que servirá para notificar al usuario cuando termine una determinada tarea. Suponemos que estamos en un entorno gráfico, así que avisaremos con zenity:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

function notify() {
        NOTIFY=1
}

function pcom() {
        local _PIPESTATUS=( ${PIPESTATUS[@]} )
        if [ -n "$NOTIFY" ]; then
                local OLDIFS=$IFS
                IFS=' '
                local STATUS="${_PIPESTATUS[@]}"
                IFS=$'\n'
                local HIST=($(HISTTIMEFORMAT= history 1 | awk '{ print $1"\n"substr($0, index($0,$2)) }'))
                IFS=$OLDIFS
                zenity --info --text "$(echo -e "COMANDO FINALIZADO: ${HIST[1]}\n ESTADO: $STATUS")"
        fi
        unset NOTIFY
}

PROMPT_COMMAND="pcom"

Ahora, cargaremos el archivo con source. Y podremos ejecutar cualquier comando con normalidad, aunque, cuando vayamos a hacer algo que vaya para largo podremos hacer lo siguiente:

notify; sleep 100

De esta forma, cuando termine la ejecución de sleep 100, o de cualquier otra cosa que creamos que va a tardar mucho, recibiremos un mensaje parecido a este:
Diálogo GUI provocado por PROMPT_COMMAND
Este script tiene algunas cosas curiosas. Para hallar el estado de la ejecución de las órdenes, utilizo PIPESTATUS. Esta variable, si el comando es sencillo, devolverá sólo un valor, haciendo lo mismo que $?. Pero cuando hemos llamado varios comandos unidos por una pipe o tubería, nos va a devolver el estado de todos los comandos ejecutados. Eso sí, como PIPESTATUS se actualiza tras cada cosa que ejecutamos, lo primero que haremos nada más entrar en la función será guardar su valor en otra variable, y así nos aseguramos de no perderlo.

Y esto está muy bien cuando estamos haciendo varias cosas y se nos puede ir la cabeza con una tarea. Nos puede servir para cuando estemos creando o restaurando un dump de base de datos, cuando estemos haciendo una copia de archivos (local o remota), o estemos realizando alguna tarea de cálculo intenso. Tan solo tenemos que llamar antes de la tarea en cuestión a notify y ya se encargará él de todo. Podemos extender la funcionalidad de notify, incluso aprovechar lo que voy a contar a continuación para hacerlo más potente (te adelanto que en unos días publicaré un script mucho más completo).

Ejecutar algo justo antes de llamar al comando

Para tener control total sobre los comandos ejecutados es interesante poder ejecutar código antes de la ejecución de los comandos. Esto, principalmente nos ayuda a depurar nuestros scripts, porque sabremos en qué orden se ejecuta cada cosa, pero también puede ser una buena herramienta de control, gran ayuda para hacer una visualización interactiva de comandos o, para saber lo que ejecutan nuestras visitas o los comandos que se ejecutan en un servidor además de muchas otras utilidades.

Como ejemplo, empezaremos con algo básico, simplemente haciendo echo antes y después de una llamada. Y, para dar un valor añadido, ya que somos capaces de ejecutar algo antes de hacer cualquier llamada, podremos detectar cuando simplemente se pulsa enter. Ya que, cuando pulsamos enter, la primera función, precmd, no se va a ejecutar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
function postcmd() {
        if [ "${#COMANDOS[@]}" -gt 1 ]; then
                HISTORY=$(HISTTIMEFORMAT= history 1)
                echo "COMANDO EJECUTADO: "${HISTORY:7}
        fi;
        COMANDOS=();
}

function precmd() {
        COMANDOS+=("$BASH_COMMAND");
        if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND" ]]; then
                echo "INICIA EJECUCIÓN: "$BASH_COMMAND
        fi
}

PROMPT_COMMAND="postcmd"

trap 'precmd' debug

Trabajando un poco en este código podremos ser capaces, por ejemplo de guardar un log de todo lo que los usuarios ejecutan, simplemente introduciendo:

1
logger $BASH_COMMAND

En lugar del echo “INICIA EJECUCION”. Así podemos hacer que el sistema sea totalmente transparente al usuario. Además, para completar el registro podremos incluir otra función:

1
2
3
4
5
function errcmd() {
        echo "ERROR EJECUTANDO: $BASH_COMMAND en linea $LINENO Codigo de error: $?"
}

trap 'errcmd' err

Que vinculamos a cualquier error. Es decir, cancelación de ejecución o que el código de salida de lo que sea que hayamos llamado no sea 0. Por supuesto, podríamos ayudarnos de más traps como int (para Control+C), quit (para Control+\), term (para cuando se mata el proceso), etc.

Bueno, y, hagamos algo interesante como evitar que el usuario ejecute cosas que no queremos que ejecute:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
shopt -s extdebug

function denyaccess () {
        if [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ]; then
                return
        fi
        local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ $

        if [ "
shopt -u extdebug" == "$this_command" ]; then
                return 0
        elif [[ "
$this_command" =~ ping ]]; then
                return 0
        fi
        echo "
ACCESO DENEGADO para: $this_command"
        return 1
}

trap 'denyaccess' DEBUG

En este caso, haremos return 0, sólo cuando ejecutemos shopt -u extdebug y el comando ping. Mostrando el texto “ACCESO DENEGADO” si queremos ejecutar cualquier otra cosa. Esto en la práctica no vale de nada, tendríamos que introducir muchas restricciones o tal vez denegar (return 1) ciertas palabras, manteniendo el return 0 por defecto. Pero nos da una idea de cómo funciona.
Gracias a la opción extdebug, esta función es capaz de denegar la ejecución de la orden que hemos llamado en función del valor de retorno de la función denyaccess().
En este caso, el argumento -s de shopt, activa (set) esta capacidad. Del mismo modo, cuando utilizamos -u, la desactiva, y por eso esa orden está permitida, porque es un programa de ejemplo.

Para todo lo demás, incluso nos podemos servir de expresiones regulares para Bash, o incluso la llamada a una función.

Y, para terminar, vamos a hacer sustituciones de órdenes dentro de un comando. O lo que es lo mismo, cambiar el comando que vamos a ejecutar. Podríamos afectar a cualquier parte de la orden ejecutada, aunque para hacer un sencillo ejemplo, vamos a cambiar las llamadas a sudo por gksudo, así vemos un bonito entorno gráfico y será más llevadero para el usuario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
shopt -s extdebug

function changesudo() {
        if [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ]; then
                return
        fi
        local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*/$

        if [ "
shopt -u extdebug" == "$this_command" ]; then
                return 0
        fi
        eval ${this_command/sudo/gksudo}
        return 1
}

trap 'changesudo' DEBUG

Incorporar a nivel de sistema estos scripts

Los scripts que hagamos utilizando estas técnicas podemos cargarlos a nivel de usuario, introduciendo:

1
source script.sh

en el archivo ~/.bashrc o a nivel de sistema añadiendo esa línea en /etc/profile , /etc/bash.bashrc , o, mejor aún, en un nuevo archivo dentro de /etc/profile.d/

En las próximas semanas quiero publicar algunos ejemplos en los que veremos, aún más, la potencia de estas acciones.

Andrew Worley

The post Bash: ¿Cómo ejecutar código antes y después de cada comando? Logging, monitorización, notificaciones y mucho más appeared first on Poesía Binaria.

Domingo 17 de septiembre de 2017

Xavier Genestos

Xavier Genestos
SYSADMIT

Linux: Deshabilitar IPv6

En la mayoría de distribuciones de Linux, el protocolo IPv6 está activado por defecto. Como ocurre en otros sistemas operativos, aunque configuremos una dirección IPv4 en el interfaz de red, de forma predeterminada, dispondremos también de una dirección IPv6 asignada en el mismo interfaz. Linux: Verificar si tenemos IPv6 Verificar si tenemos IPv6: ifconfig Una forma fácil de

Viernes 15 de septiembre de 2017

Leer de teclado en Rust

En muchas aplicaciones es necesario leer datos de teclado. Si bien esto podría considerarse sencillo en lenguaje como Python o Ruby, lo cierto es que sí se quiere hacer bien es complicado. Funciones como scanf de C son consideradas inseguras y en Java, hasta la llegada de la clase java.util.Scanner era un dolor de cabeza. En Rust no es distinto, es por ello que muchos tutoriales de Rust obvian esta parte. No obstante, leer de teclado no es tan difícil, como veremos a continuación.

read_line

El método principal para leer de teclado es read_line, que nos lee una línea como String. Para acceder a read_line primero necesitamos tener on objeto stdin. La manera más fácil de hacerlo es usar el módulo std::io.

El procedimiento es el siguiente, en primer lugar creamos una variable de tipo String vacía y mutable donde se va a alojar el resultado, posteriormente leemos y tratamos el resultado.

use std::io;

fn main() {
    println!("Dime tu nombre: ");
    let mut input = String::new();
    io::stdin().read_line(&mut input);
    println!("Tu nombre es {}",input.trim());
}

Como vemos, al leer la línea también se nos guarda el salto de línea. Si queremos quitarlo podemos usar trim.

Este código sin embargo generará una advertencia por el compilador y es que read_line genera devuelve un valor, concretamente un Result, que como vimos, sirven para el manejo de errores en Rust. Si no queremos tratar este Result con especial interés, podemos usar ok y opcionalmente especificar un mensaje de error con expect.

use std::io;

fn main() {
    println!("Dime tu nombre: ");
    let mut input = String::new();
    io::stdin().read_line(&mut input).ok().expect("Error al leer de teclado");
    println!("Tu nombre es {}",input.trim());
}

Si quieres tratar el error mejor puedes, pero read_line no suele fallar.

Leyendo enteros

Hasta aquí todo sencillo, porque leíamos String, en lo que entra todo lo que el usuario puede meter. Pero, ¿y si queremos leer un número de teclado? La cosa se complica. Normalmente se lee de teclado como String y luego se intenta pasar a número. Veamos como.

use std::io;
use std::str::FromStr;

fn main() {
    println!("Dime tu edad: ");
    let mut input = String::new();
    io::stdin().read_line(&mut input).ok().expect("Error al leer de teclado");
    let edad: u32 = u32::from_str(&input.trim()).unwrap();
    let frase = if edad >= 18 {
        "Mayor de edad"
    }else{
        "Menor de edad"
    };
    println!("{}",frase);
}

Como vemos, hay que importar std::str::FromStr para tener disponible las operaciones from_str en los tipos elementales. También se observa que hemos hecho un unwrap, porque from_str devuelve un Result. Este error sin embargo conviene que lo tratemos con más cuidado, pues es bastante probable que salte.

Un ejemplo ideal

En este código vamos a ver como pedir un entero, asegurándonos de que el usuario realmente introduce un entero e insistiendo hasta que finalmente introduce un entero válido.

use std::io;
use std::io::Write;
use std::str::FromStr;
use std::num::ParseIntError;

fn read_input() -> Result<u32,ParseIntError> {
    print!("Dime tu edad: ");
    io::stdout().flush().ok();
    let mut input = String::new();
    io::stdin().read_line(&mut input).ok().expect("Error al leer de teclado");
    let input = input.trim();
    let edad: u32 = u32::from_str(&input)?;
    Ok(edad)
}

fn main() {
    let edad;
    loop {
        if let Ok(e) = read_input(){
            edad = e;
            break;
        }else{
            println!("Introduce un número, por favor");
        }
    }
    let frase = if edad >= 18 {
        "Mayor de edad"
    }else{
        "Menor de edad"
    };
    println!("{}",frase);
}

He decidido separar la parte de pedir el número a otra función que devuelve Result para así poder usar el operador ?. También he usado print! y io::stdout().flush() en vez de println! para que tanto el mensaje como la entrada se realice en la misma línea y quede más bonito.

 

La entrada Leer de teclado en Rust aparece primero en Blog - Adrianistan.eu.

Jueves 14 de septiembre de 2017

Pali, otra versión (más) de Palatino

Este artículo es parte de la serie Recomendando fuentes tipográficas Diseñada por Hermann Zapf en 1949, Palatino  es una fuente de estilo antiguo que ha sido copiada y revisada numerosas veces. De hecho en estas páginas hablamos de una de sus versiones: TeX Gyre Pagella, la cual se basa a su vez en URW Palladio, […]

WhatsApp Desktop, aplicación no oficial para Linux

En esta era que nos ha tocado vivir, para casi nadie ha pasado desapercibida la nueva forma de comunicación a través de distintas app’s de mensajería instantánea que nos han traído consigo los smartphones. Y es que, lo que nos acompaña en nuestro día a día allá donde vamos siempre es nuestro pequeño dispositivo.  No obstante, no siempre es útil o cómo charlar desde nuestro smartphone

Miércoles 13 de septiembre de 2017

Gaspar Fernández

Gaspar Fernández
Poesía Binaria

Lanzando servidores TCP/IP en puertos libres aleatorios haciendo bind al puerto 0

Servidores TCP en el puerto 0
¿Cómo? ¡Que los puertos TCP empiezan en el 1! Aunque algo sospechaba, porque en informática, el cero siempre ha valido para algo. Por eso se dice que los humanos empiezan a contar desde el uno y los informáticos desde el cero. Con esta cara me quedé cuando vi que puedes lanzar un servidor y que éste escuche en el puerto 0. Pero si el 0 no es un puerto válido, ¿para qué vale?

Cuando lanzamos un servidor y lo asociamos al puerto 0, el sistema escogerá un puerto aleatorio y libre con permiso para crear un servidor (por ejemplo los puertos menores al 1024 requieren de privilegios de administración o root). Así que nuestro servidor escuchará donde primero pille. Además, esto funciona tanto en sistemas Unix como en Windows, no tiene pérdida.
¿Y qué sentido tiene escuchar en un puerto aleatorio?¿Cómo sabrán nuestros usuarios en qué puerto acceder a los servicios? De primeras a mí se me ocurren ciertas cosas:

  • Para las prácticas de redes, o más bien para cuando estás programando un servidor. Si alguno de vosotros está haciendo prácticas de redes, éste es un buen consejo. Yo recuerdo hace muchos años que tenía que crear un servidor TCP con unas ciertas características y, claro, creas un programa, compilas, ejecutas, y… algo no va bien, lo cierras, cambias algo muy rápidamente, compilas, ejecutas y… ¡el puerto está en uso! Tenía que esperar al sistema operativo para que se diera cuenta de que el puerto no lo iba a utilizar más y lo cerrara. Entonces, si cada vez que lanzo el servidor lo lanzo en un puerto diferente… ¡problema solucionado! Que el SO cierre puertos cuando tenga tiempo. Otra forma de hacerlo sería poder especificar el puerto en el que asociamos el servidor cada vez que lo ejecutamos.
  • Lanzamiento de servidores de prueba. Por ejemplo, voy a abrir un servidor web temporal para que un compañero de piso/de trabajo/amigo o yo mismo desde otro ordenador me pueda descargar un fichero o enviarme un mensaje. Podemos acordar un puerto, por ejemplo el 40563, pero seguro que si tienes muchas cosas en el ordenador tirando de Internet, está en uso.
  • Como en el punto anterior… en lugar de un servidor web, puede ser un servicio de backup, un FTP, un servicio de correo…
  • Lanzar servicios experimentales en las máquinas de producción pruebas. Y así evitamos visitantes no deseados, y calentamientos de cabeza por puertos bloqueados.
  • Tener un servidor en un puerto localizado para la conexión de control, y crear un servidor por un puerto aleatorio para enviar o recibir datos (o cualquier cosa), por la conexión de control comunicar el puerto del otro servidor y empezar a transmitir por el otro lado. Algo parecido al FTP…
  • Más sugerencias en los comentarios!!

Aquí traigo un pequeño programa hecho en Python que nos devuelve un puerto libre y aleatorio, extraído de: The port 0 trick..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import socket;

def findFreePorts(howMany=1):
    """Return a list of n free port numbers on localhost"""
    results = []
    sockets = []
    for x in range(howMany):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.bind(('localhost', 0))
        # work out what the actual port number it's bound to is
        addr, port = s.getsockname()
        results.append(port)
        sockets.append(s)

    for s in sockets:
        s.close()

    return results

print (findFreePorts(10));

Y podemos montar una prueba rápida con netcat.

nc -l 0

Luego desde otro terminal podemos hacer:

netstat -tanp | grep nc
tcp        0      0 0.0.0.0:38321       0.0.0.0:*        ESCUCHAR    9042/nc

De todas formas, hay programas a los que no les gusta que le des el puerto 0, como Apache, que se niega a encenderse en ese puerto. Otros servidores como MySQL, te dejan especificar el puerto 0 y de hecho escuchan en un puerto aleatorio, aunque podrían decirte aunque sea en logs en qué puerto están escuchando (podemos averiguarlo con la línea de antes del netstat). Y servidores como redis que si les das el puerto 0, no escuchan en ningún puerto TCP.

Foto principal: Scott Walsh

The post Lanzando servidores TCP/IP en puertos libres aleatorios haciendo bind al puerto 0 appeared first on Poesía Binaria.

El blog VR on Linux ha cerrado

VR on Linux seguida caído o se habrá comprado por algún especulador y saldrá la chica mas odiada de internet.

Es una pena porque era un blog que se adentraba en los campos pantanosos y futuros de la realidad virtual en Linux. Lo bueno es que también trataba el tema de software libre, estándares libres, y no se centraba solo en el rollo de los juegos privativos y software privativo.

Ya solo nos queda la tenue llama de la copia de VR on Linux en archive.org , esta humanidad deberíamos darle las gracias millones de veces a esta nueva biblioteca de Alejandria y protegerla con nuestra alma.

Bueno volviendo a VR on Linux, antes de cerrar nos dejo pistas para seguir su legado, que las copio y pego aquí (pese a que Don Google le disguste).

TutorialesLinux.com: Convertir toda una base de datos a InnoDB

Lunes 11 de septiembre de 2017

Informe de avance, septiembre

Ya sé que lo dije antes, pero ahora sí es verdad: el libro está prácticamente completo. Creo. Solo tengo que lograr trabajar un poco con la nueva versión 2.3 (cuando llegue: en los próximos días tendría que publicarse la «rc1») para corregir algunas capturas de pantalla y algunos párrafos. 2.3 llega con muchas habilidades nuevas. […]

Buscar archivos desde la consola en Linux

El uso de la consola en Linux, forma parte de nuestro día a día cuando utilizamos un sistema operativo Unix, o al menos debería serlo para gestionar las cuestiones más importantes de nuestro sistema operativo. Es por eso que un buen conocimiento y uso de la misma se vuelve fundamental.  En muchas ocasiones os hemos hablado de varios comando básicos que necesitáis aprender para hacer

Domingo 10 de septiembre de 2017

Xavier Genestos

Xavier Genestos
SYSADMIT

Linux: Cómo saber dónde está instalado un programa

En ocasiones nos podemos encontrar que después de instalar un programa no sepamos la ubicación donde se encuentra instalado. Para saber dónde está instalado un programa, disponemos de varios métodos que veremos en este post. 1)  Cómo saber dónde está instalado un programa: which El comando which, realiza una búsqueda del binario que estamos buscando en la variable de entorno del

Sábado 09 de septiembre de 2017

Ramón Miranda

Ramón Miranda
Ramon Miranda

Muses DVD preset Pack in bundle format for 2.9!



It is time for an update!
Recently some people asked for a bundle format so i have been working on making a bundle. If you like it, let me know..

Download here

Want to see some examples?



For newcomers i post some images and info about the set.
Here you have it.


The colors of the squares are only for differentiating the parts,  they don’t have nothing to be with the colour coding we designed for distinguishing the presets.
– Sketching:
This first part of the set covers the sketching and dry techniques phases like pencil, charcoal and hard pastel.
Usually you’d use these presets in black and white, but the advantage of the digital painting is that with only one preset you can still use all the colors you want, for instance to simulate the effect of color pencils.





– Digital:
This part of the set covers the most common presets that you need for digital painting. The classic round brushes with a good velocity in bigger sizes, smooth contour, squared… The illustration of below, for example, makes an extensive use of the squared brush for creating the structures of the mountain. After that, you will have to do a detailing finish, of course, but is a fast way for delimiting the contours.
Personally, I use these presets all the time.
– Ink & Fx:
In principle, this presets aren’t for inking comics (for that see the presets created by Timothee Giet), they are for doing studies or fast sketches. We can emulate the markers technique very easily.
– Oils & water:
I use this presets for creating the brushstrokes of wet paint, for giving the painting the look and feel of oil paint and gouache. They create expressive effects and they are fast but I don’t recommend the using them at really big sizes: you can easily saturate the resources of even a beefy computer. They use the “ascension” sensor for the color-rate.



– Blender:
This presets mix the color that is applied in the canvas. They are quite explanatory in themselves.
– Texturing:
This presets are used for fill big parts of the image with varied shapes like leaves, clouds, etc. They simulate effects that will take a lot of time painting it directly with normal round brush, saving us a lot of time that can be spent on places where we need manual detailing.


Download here

Bundle install

To install, download the file , then import it in Krita this way : Settings/Manage Ressources / Import Bundle/Resources.


License :  the brushkit itself and thumbnails is released under the WTFPL 2.0  (compatible with Public Domain and CC-0 ).

Miércoles 06 de septiembre de 2017

WiFi Jammer (ESP8266) Arduino + App Android

Después de un tiempo sin escribir en este blog de informática y seguridad informática vuelvo con ganas. Hoy os traigo una entrada muy interesante y aún más útil: Como hacer un Wifi Jammer por 2$ Un "Jammer" (palabra que no existe en español) sirve para bloquear o interferir en las señales, tanto de móviles, como […]

La entrada WiFi Jammer (ESP8266) Arduino + App Android aparece primero en Blog de Informática ✏ Luisi.

Gaspar Fernández

Gaspar Fernández
Poesía Binaria

Píldora: Recupera los nombres de los interfaces de red de tu equipo, eth0, wlan0, etc

Network interfaces

A medida que una tecnología crece, siempre tenemos el mismo problema, terminamos metiendo muchos elementos de un mismo tipo en un equipo. Y terminamos teniendo el mismo problema: si cambiamos algo de sitio, o un driver se carga antes que otro, estamos perdidos porque nada funcionará igual.

Preámbulo

El caso más claro es el de los discos duros, las placas base suelen tener un montón de puertos para conectar discos duros. Y, simplemente tendría que dar igual dónde enchufemos cada uno. Incluso si cambiamos un disco duro de sitio una vez instalado el sistema (porque se ha roto el puerto, porque nos viene mejor cambiar las conexiones por la longitud de los cables… o ¡porque lo desarmamos todo y tenemos que enchufar séis discos duros y no queremos apuntar dónde estaba cada uno! Por eso, si miramos un /etc/fstab más o menos reciente, veremos que los discos duros están identificados por un UUID (que podemos obtener si ejecutamos blkid como superusuario).

Del mismo modo pasa con los interfaces de red. Podemos tener varias tarjetas de red enchufadas, varios WiFi y que, cada uno tenga un cometido diferente. Los dispositivos de red, por cable, históricamente han sido siempre eth0, eth1, eth2… y así hasta el final. Pero, ¿qué sucedería si cuando reiniciemos el que antes era eth0, ahora es eth2? seguramente el cable que está conectado a eth0 no tenga acceso a los equipos de eth2 y no funcione nada.

Personalmente, tuve un problema parecido en un miniPC casero que tengo funcionando de router. Este equipo tiene dos interfaces de red: uno integrado en la placa base que está conectado a Internet, y otro enchufado por USB que está conectado a un switch y punto de acceso WiFi. Un día, tras actualizar el equipo en remoto no volví a tener acceso a la máquina hasta que físicamente le conecté un monitor y me di cuenta de que los nombres de los interfaces de red habían cambiado (eth0 pasó a ser eth1 y eth1 se convirtió en eth0). En aquel momento, lo que hice fue cambiar la configuración de los interfaces, cambiar los interfaces en el firewall y listo. Pero, desde udev versión 197 estos dispositivos pasaron a tener un nombre fijo y muy feo, pero pongas el dispositivo como lo pongas, el nombre se mantendrá.

¡Al grano!

Por un lado está bien, por ejemplo, para el caso que comenté antes. Aunque en el ordenador de trabajo, que solo tengo un eth0 y wlan0, pero muchísimos scripts que utilizan interfaces de red fijos, no me gustaba la idea de tener que cambiar los nombres de dispositivos, así que decidí volver a utilizar eth0 y wlan0 como antes.

Nota: Estas modificaciones están hechas para una Ubuntu, para otra distribución, si usamos grub tendremos que buscar el archivo de configuración.

Para ello, editamos el archivo /etc/default/grub y en la línea de GRUB_CMDLINE_LINUX_DEFAULT añadimos net.ifnames=0. Por ejemplo esta línea puede quedarse así (depende mucho del contenido anterior):

1
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash net.ifnames=0"

Y luego ejecutamos:

sudo update-grub

Cuando reiniciemos el sistema, volveremos a tener todo como antes.

Más info: Systemd/PredictableNetworkInterfaceNames en Freedesktop.org

Actualizado 07/09/2017: Añadido enlace de Freedesktop. Gracias Osqui.

Foto principal: Seb Zurcher

The post Píldora: Recupera los nombres de los interfaces de red de tu equipo, eth0, wlan0, etc appeared first on Poesía Binaria.

Domingo 03 de septiembre de 2017

Xavier Genestos

Xavier Genestos
SYSADMIT

Linux: Ver espacio en disco

Para ver el espacio en disco sobre sistemas operativos Linux, disponemos del comando df. Además del comando df, disponemos de comandos donde podemos ver el espacio total del disco, pero no el espacio libre. Comandos donde vemos el tamaño total de cada volumen pero no podemos ver el espacio libre: - Comando sfdisk: Muestra la tabla de particiones del disco: Parámetro -l: Lista las

Viernes 01 de septiembre de 2017

Control de versiones: El bueno, el feo, el malo y el banquillo

Salvo que venga mañana una nueva tecnología disruptiva, creo que este articulo va aguantar un buen puñado de años.

Puede que no conozcas los sistemas de control de versiones, resumen rápido TE PUEDEN SALVAR EL CULO….MUCHAS…MUCHAS VECES.

Bueno en mi vida creo que he probado todos, pero todos, porque recuerdo una empresa de sistemas embebidos que usaba CVS en pleno dosmiles. Le tuve mucho cariño a SVN y me costo un poquito pasar a Git y viví la corta (fue cortisima, mas hemos tardado en asesinar a Flash o mas nos esta costando terminar de asesinar .Net otras mierdas de micro$oft) y cruel guerra de Git contra Mercurial …si algún otro perro viejo me dirá “…pero y Baazar…”, yo creo que nadie en su época apostaba ni un puñado de €uros por el…pero seguro que dentro de 10 años dirán…“pues que bueno era Baazar, que lástima, era la Abadía del Crimen de los sistemas de control de código”. En esa guerra, recuerdo que me posicione con mercurial por razones, muy tontas o curisosas, porque es Python (mas portable y con el lenguaje de moda) y en linea de comandos hg mola mas que git, porque era mas corto de escribir solo 2 pulsaciones, era el símbolo químico del mercurio. Pero bueno, hay que saber aceptar los cambios y adaptarte para seguir cabalgando en el código.

Después de el tochazo en plan abuelo cebolleta de los repositorios de código o control de versiones, volvamos al título.

“El bueno, el feo, el malo y el banquillo”

Hay que asumir que “el bueno”, es ahora mismo git, ha conseguido junto al binomio github, ser una herramienta de referencia para el mundo del software libre (si lo siento open source lovers, de pegatinas en portatiles mac blanco), ha tumbado y casi enterrado a Sourceforge , quién lo diría, para mi ha sido la misma guerra Google vs Yahoo, sourceforge se estaba llenando de mierda la página y github ERA simple, digo ERA porque cada vez esta también empezando a acumular mierda como board projects con el rollo kaban.

Y para el “el feo” y “el malo”, como buen director de cine os lo dejo a vuestra imaginación, en mi caso “el feo” sería Mercurial y “el malo” el BitKeeper.

Porque si no sabéis, venir a la chimenea mis pequeños programadores, ains chiquillos que os llamáis devops, cuando eso es ser como el pringadillo currante del telepizza que lo mismo coge la moto como cocina la pizza o limpia el wc…por cuatro perras como vosotros (y nosotros)….bueno ya estáis en al calor de la chimenea con el abuelo cebolleta. Os voy a contar una historia, en el pasado una de las piezas mas importantes de GNU/Linux, el nucleo Linux para coordinar todo el desarrollo de código, se usaba BitKeeper y os voy a contar una pequeña cosa y terrorífica…ERA SOFTWARE PRIVATIVO…pero el tito Torvals con sus grandezas y sus pedradas, decía que le sudaba la polla, hasta que les hizo una puñeta la empresa de BitKeeper y dijo tito Torvals “Fuck you Nvidia”…uy uy perdón el Alzheimer del abuelo cebolleta…realmente dijo “Pues me voy a crear mi propio control de versiones distribuido, con casinos y furcias…es mas paso del sistema distribuido…” y cogió una costilla de Richard Stallman he hizo Git.

El malo, el señor BitKeeper.

Y el banquillo. Están todos esos que han luchado por llegar al podium, mucho esfuerzo y sufrimiento para ser solo un nombre y la foto sean solo 3. En la carrera por el oro, plata y bronce tenemos:

  • las viejas glorias que siguen ahí luchando (o desisten como CVS que no hay versión nueva desde hace una decada) como por ejemplo SVN
  • los jugadores patrocinados por empresas gordas como Bazaar.
  • Y los inventos voladores raros, como los que surgieron en la 2º Guerra Mundial que tantos álbumes de cromos han dado. Ahí hay cosas tan bizarras como el “todo en 1” de Fossil.

Este articulo, lo ha motivado Freshcode.club el revival del mítico FreshMeat (otra historia de abuelo cebolleta) que no sabia que existía y lleva ya un par de años dando pelea. Y al contrario que github este es software libre…pero el repositorio de código esta en…chan…chan…chan….Fossil .

Y recuerdo cuando el señor Ramón hace años en nuestra conversaciones frikis, me contó la existencia de Fossil y lo friki que era, porque guarda todo en SQLite y tiene un frontend web y todo.

Y como el software libre se basa en colaborar, pues estoy intentando comprender Fossil.

Es curioso porque Fossil lo creo el inventor de SQLite el señor D. Richard Hipp, un poco siguiendo la estela 2 años después de Torvals, en plan yo me lo guiso y yo me lo como, y juntandolo con el rollo de Mercurial de demostrar que Python mola, en este caso SQLite.

Proyectos gordos que usen Fossil, solo hay SQLite.

Ya os iré contando mis experiencias con este desconocido, odiado…y no se si amado por alguien…control de versiones, me siento como si aprendiera Esperanto, algo friki y casi casi inutil. Pero oye muy noble, como podéis leer en la página Original author of Fossil here, with two comments .

Por cierto, para finalizar, por hablar de tecnologías disruptivas….¿Qué opináis de los inventos de Blockchain + git ? ¿Llegaran a algo algún día?

Asqueado de que Google Maps te pregunte cosas, ayuda a OpenStreetmap

Seguro que te rayas, cuando sales de un bar o una tienda y te llega un aviso del señor Google preguntándote cosas sobre donde has estado, te tiene mas controlado que tu madre cuando eras un crío.

Pues…¿Por qué no ayudas a la disidencia y la revolución? OpenStreetmap, es a google maps como era la Encarta a la Wikipedia, (corrección, gracias a ElTioDeLaTecla) es a google maps como es a la Wikipedia la extinta Encarta, una plataforma colaborativa y libre para crear un mapa libre, son 13 años ya del proyecto y hay imágenes de su evolución sencillamente deliciosas.

Hay una web (OSM Then And Now) que te muestra las diferencias entre 2007 y 2017 (10 añazos), mirar por ejemplo Madrid, a la izquierda en la imagen el 2007 solo con las carreteras principales y tal y en la derecha ya un señor mapa muy completo.

Bueno volviendo a Android y como ayudar con el móvil a OpenStreetmap, hoy hablaremos de StreetComplete en F-Droid, por favor si no conoces F-Droid…instalarlo, es una “tienda” de  aplicaciones libres para Android, hay de todo y muy buenos videojuegos.

Es como el google maps preguntas, pero no es intrusivo, tu cuando quieres entras a la aplicación y hechas una mano.

Después de instalarlo, es muy fácil de usar:

  • hazte una cuenta de usuario (o usa la que tengas ya de antes) en openstreetmap en https://www.openstreetmap.org/user/new .
  • Arriba a la derecha en icono de opciones, en ajustes engancha tu cuenta en “autorizar el acceso a OSM”.
  • Ya que estás en ajustes, te recomiendo  tener activado “Sincronización automática” para que sea transparente el descargar chinchetas (o tareas como lo llaman ellos) y subir tus aportaciones.

En relación a descargar chinchetas o tareas, si estáis en una zona del mapa y no salen, podéis forzarlo, en el menú de opciones (arriba a la derecha) y la opción del menú “Descargar tareas”, empezará a llenarse una tímida barra de progreso amarilla que esta justito debajo del título de azul de StreetComplete.

Yo llevo ya 501 aportaciones (^_^) .

¿Qué suele preguntar StreetComplete?

  • Números de portales: son el del icono azul con un número.
  • Tipo de carretera: son el icono…de la carretera, primero te pregunta que tipo de carretera, y después subtipo. Es realmente fácil, porque te pone una imagen de ejemplo.
  • Si tiene marquesina la parada de autobús: son el icono del autobus, tiene 3 opciones, SI, NO o “No sabría decir” que es para dejar una nota…yo que se…por ejemplo que ya no existe la parada o que la han movido o que ha venido un platillo volante y se la ha llevado.
  • Horarios de comercios e instituciones públicas: con un icono de un reloj, este es un poco mas complejo de usar porque hay que ir haciendo por pasos, elegir los días de la semana y después la hora, o en “Otras respuestas” hay otras opciones para elegir cosas mas concretas.
  • Altura de los edificios: con un icono de una casita, es solo poner el numero de plantas, pero incluyendo al bajo e incluso si esta en un terraplén el edificio y de un lado tiene mas plantas poner el máximo, incluyendo también las plantas que hacen de tejado o de ático.
  • Nombre de vía o calle: con un icono de un poste con carteles,  este no he ayudado a completar datos, porque salvo cosas claras, pregunta como cruces y así. Y me da miedo meter la pata y meter datos erroneos a OpenStreetmap.
  • Parking público de bicis: con un icono de una señal de parking de bicis,  te pide el numero de bicis posibles que se pueden aparcar en el armazón metálico puesto por tu ayuntamiento.
  • Tipo de deporte en campo deportivo: con un icono de un balón de fútbol europeo,  igual te da opciones con iconos de cada deporte. Yo he llenado un motón de campos de dentro de colegios, y entonces he ido a “otras respuesta…” y he puesto la opción “no es para ningún deporte en especial” porque lo usan para las clases de gimnasia y el recreo y tal de los críos.
  • Límite de velocidad en la vía o en la calle: con un icono de “gauge” un velocimetro, a mi me han salido sobre todo en pueblos, por supuesto mi ética me dicta que si no lo conozco no pongo nada, porque por ejemplo el pueblo de mi padre tiene limite de velocidad 20…muy por debajo del que viene escrito en el código de circulación.

Al pulsar sobre un icono, te marca en azul claro lo que quiere preguntar, el edificio, la linea azul que dibuja la carretera….

Hay muchas mas chinchetas o iconos, como podéis ver en el wiki de OpenStreetmaps, en http://wiki.openstreetmap.org/wiki/StreetComplete/Quests , pero yo os he contado las que conozco y me han salido por Madrid y Salamanca a mi.

Lunes 28 de agosto de 2017

Autómatas celulares unidimensionales en Python

Estaba yo leyendo este verano un libro titulado Think Complexity cuando en un capítulo empezó a hablar de los autómatas celulares unidimensionales. El tema me interesó y por eso esta entrada. Veamos primero a qué nos referimos cuando hablamos de esto.

Cuando hablamos a autómatas celulares, nos referimos a pequeñas entidades independientes pero que interaccionan entre sí. Celulares porque son la unidad elemental del universo donde van a existir y autómatas porque deciden por ellas mismas, basadas en un conjunto de reglas predefinido, cuando el tiempo avanza de forma discreta (es decir, a pasos).

Este concepto abstracto puede visualizarse con facilidad si nos imaginamos una rejilla. Cada celda es una célula capaz de cambiar su estado según su entorno.

Los autómatas celulares fueron objeto de estudio de Stephen Wolfram, matemático conocido por haber diseñado el programa Mathemathica y Wolfram Alpha.

Los autómatas celulares unidimensionales son aquellos que forman parte de un universo unidimensional. Es decir, cada célula tiene una vecina a su izquierda y a su derecha. En los bordes se pueden definir varios comportamientos pero el concepto no varía. Pensemos en ello como una tira de celdas.

El estudio de estos autómatas es interesante, ya que pueden generarse patrones/situaciones muy complejas en base a unas reglas sencillas.

¿Cómo se definen las reglas?

Wolfram usó un sistema para definir las reglas de estos autómatas que hoy conocemos como Wolfram Code. Se basa en definir una tabla con los estados presentes de la célula y sus vecinas así como el valor que deberá adoptar en esa situación la célula. Como Wolfram usó células con solo dos estados, todo está en binario, y la parte baja de la tabla es un número de 8 bits. Este número se suele pasar a decimal y así se identifica.

Estados presentes 111 110 101 100 011 010 001 000
Estado futuro 0 0 1 1 0 0 1 0

Esta tabla representa la Regla 50, porque 00110010 en binario es 50.

¿Cómo se representan?

Una manera muy interesante de representar estos autómatas es poner cada paso en una fila distinta dentro de una imagen.

Una vez que sabemos esto vamos a hacer un programa en Python que nos permita observar la evolución de estos autómatas.

Usaremos el procedimiento original, que es empezar con todos los estados de los autómatas en 0 salvo el del autómata central, que será 1.

La clase Automata

La clase autómata va a contener las reglas, así como un ID y el estado que posee. Además, por cuestiones técnicas conviene guardar el estado anterior que tuvo.

class Automata(object):

    rules = list()

    def __init__(self,idx=0):
        self.idx = idx
        self.state = False
        self.statePrev = False

Como podéis ver, rules no lleva self, es decir, va a ser una variable compartida entre todas las instancias de Automata. Esto es porque las reglas son idénticas a todos los autómatas.

La clase World

Ahora vamos a definir el universo donde residen estos autómatas. Este universo almacena una lista con los autómatas, se encarga de actualizarlos según las normas y de dibujarlos usando PIL. También he insertado el código que codifica las normas según el número en decimal.

class World(object):
    def __init__(self,rule=50):
        self.rule = rule
        self.im = Image.new("L",(WIDTH,HEIGHT))
        self.data = np.zeros(WIDTH*HEIGHT,dtype=np.uint8)
        b = bin(rule)[2:].zfill(8)
        Automata.rules = [True if c == "1" else False for c in b]
        self.list = list()
        self.step = 0
    
    def add(self):
        automata = Automata(len(self.list))
        self.list.append(automata)

    def update(self):
        for automata in self.list:

            automata.statePrev = automata.state
            p = self.list[automata.idx - 1].statePrev if automata.idx > 0 else False
            n = self.list[automata.idx + 1].state if automata.idx < len(self.list)-1 else False
            s = automata.state

            if p and s and n:
                automata.state = automata.rules[0]
            elif p and s and not n:
                automata.state = automata.rules[1]
            elif p and not s and n:
                automata.state = automata.rules[2]
            elif p and not s and not n:
                automata.state = automata.rules[3]
            elif not p and s and n:
                automata.state = automata.rules[4]
            elif not p and s and not n:
                automata.state = automata.rules[5]
            elif not p and not s and n:
                automata.state = automata.rules[6]
            elif not p and not s and not n:
                automata.state = automata.rules[7]
            

    def draw_row(self):
        if self.step == 0:
            middle = len(self.list) // 2
            self.list[middle].state = True
        for i,automata in enumerate(self.list):
            if automata.state:
                self.data[self.step*HEIGHT+i] = 255
        self.step += 1
    def save(self):
        self.im.putdata(self.data)
        self.im.save("RULE-%d.png" % self.rule)

Con esto ya lo tenemos casi todo. Ahora faltaría poner en marcha todo. La idea es simplemente crear una instancia de World, hacer unas cuantas llamadas a add, y después ir haciendo el ciclo update/draw_row. Una vez hayamos acabado, hacemos save y obtendremos un PNG con la imagen.

Código completo

import numpy as np
from PIL import Image

WIDTH = 5001
HEIGHT = 5001

class Automata(object):

    rules = list()

    def __init__(self,idx=0):
        self.idx = idx
        self.state = False
        self.statePrev = False

class World(object):
    def __init__(self,rule=50):
        self.rule = rule
        self.im = Image.new("L",(WIDTH,HEIGHT))
        self.data = np.zeros(WIDTH*HEIGHT,dtype=np.uint8)
        b = bin(rule)[2:].zfill(8)
        Automata.rules = [True if c == "1" else False for c in b]
        print(Automata.rules)
        self.list = list()
        self.step = 0
    
    def add(self):
        automata = Automata(len(self.list))
        self.list.append(automata)

    def update(self):
        for automata in self.list:

            automata.statePrev = automata.state
            p = self.list[automata.idx - 1].statePrev if automata.idx > 0 else False
            n = self.list[automata.idx + 1].state if automata.idx < len(self.list)-1 else False
            s = automata.state

            if p and s and n:
                automata.state = automata.rules[0]
            elif p and s and not n:
                automata.state = automata.rules[1]
            elif p and not s and n:
                automata.state = automata.rules[2]
            elif p and not s and not n:
                automata.state = automata.rules[3]
            elif not p and s and n:
                automata.state = automata.rules[4]
            elif not p and s and not n:
                automata.state = automata.rules[5]
            elif not p and not s and n:
                automata.state = automata.rules[6]
            elif not p and not s and not n:
                automata.state = automata.rules[7]
            

    def draw_row(self):
        if self.step == 0:
            middle = (len(self.list) // 2)
            self.list[middle].state = True
        for i,automata in enumerate(self.list):
            if automata.state:
                self.data[self.step*HEIGHT+i] = 255
        self.step += 1
    def save(self):
        self.im.putdata(self.data)
        self.im.save("RULE-%d.png" % self.rule)
    def __str__(self):
        s = str()
        for l in self.list:
            s += "T" if l.state else "F"
        return s

def world_run(rule):
    world = World(rule)
    for _ in range(WIDTH):
        world.add()

    for _ in range(HEIGHT):
        world.draw_row()
        world.update()
    world.save()

def main():
    rule = input("Rule: ")
    try:
        rule = int(rule)
        if 255 >= rule >= 0:
            world_run(rule)
            print("Check for the generated RULE-%d.png file" % rule)
        else:
            raise ValueError
    except ValueError:
        print("Please, insert a number between 0 and 255")
        main()

if __name__ == "__main__":
    main()

Algunas reglas importantes

Regla 30

Una de las más importantes a nivel matemático. Ha sido objeto de mucho estudio, sin embargo no vamos a entrar en detalles más allá de su aspecto visual.

Vista ampliada

Regla 110

Esta regla es también muy interesante. ¡Se demostró que era Turing completa!

Vista en detalle

Regla 126

Esta regla no es tan importante, pero personalmente me parece muy bonita.

Vista ampliada

Reglas 57 y 99

Son dos reglas isomorfas. Es decir, son en realidad la misma regla pero aplicada a lados distintos. Elijo estas dos porque se aprecia muy bien el isomorfismo.

Regla 57
Regla 99

Regla 169

Vista en detalle

Regla 129

Regla 90

Es el famoso triángulo de Sierpinski.

Regla 150

Regla 105

Esta regla no tiene isomorfo.

En este artículo no he querido entrar en las complejidades matemáticas de todo esto. Es algo que todavía no entiendo así que no sería sincero por mi parte exponerlo.

Bonus: Richard Feynman y Steve Jobs

Quien me conoce sabe de sobra que uno de los personajes de la historia que más ha influido en mi vida es Richard Feynman. Debo reconocer que entré en un estado de éxtasis al descubrir que Feynman y Wolfram no solo trabajaron juntos, sino que lo hicieron alrededor de la regla 30 antes mostrada. También me sorprendió que Steve Jobs y Wolfram resultasen ser amigos de toda la vida. No dejo de sorprenderme de los contactos de ciertos personajes históricos entre sí.

Feynman a la izquierda, Wolfram a la derecha

La entrada Autómatas celulares unidimensionales en Python aparece primero en Blog - Adrianistan.eu.

Bruno Exposito

Bruno Exposito
The Linux Alchemist

Ejecutar comando sudo sin contraseña

Como probablemente ya sabrás, GNU/Linux dispone de un sistema de gestión de permisos que permite establecer que acciones puede realizar un usuario, su grupo y otros usuarios sobre un fichero/carpeta/enlace simbólico/aplicación.

Mas allá de los permisos de usuario, existen determinadas acciones (crear usuarios, modificar ficheros del sistema, crear particiones, etc) que requieren permisos de root (superusuario/administrador), ahí es donde entra el comando sudo.

comando-sudo-sin-contraseña

El comando sudo permite realizar una escalada de privilegios, es decir, permite realizar acciones como si fueras root, logrando así el control total del sistema operativo.

En determinadas ocasiones es necesario ejecutar una aplicación/script que necesita permisos de root, pero pedir la contraseña no es una opción viable o cómoda.

Por ejemplo:
– Un script que se ejecuta frecuentemente
– Una aplicación gráfica que necesita ejecutar un comando, como por ejemplo el menú de apagado que realicé tiempo atrás
– Comandos de uso frecuente que necesiten ejecutarse como root, como por ejemplo sudo apache2ctl restart (reiniciar apache)

 

Para ejecutar un comando sin contraseña hay varias opciones:
1.- Pasar la contraseña a sudo como parámetro
2.- Permitir ejecutar el comando sin contraseña
3.- Permitir ejecutar un script sin contraseña
4.- Buscar otra aplicación similar que no necesite permisos

Me voy a centrar en las 3 primeras, si estás aquí es que ya has descartado la 4a 😉

 

Pasar la contraseña a sudo como parámetro

La idea es imprimir la contraseña usando echo y pasársela a sudo -S

echo mipassword | sudo -S poweroff

[ ! ] Como parte negativa, tu contraseña va a aparecer en texto plano en el script y/o fichero bash history.

 

Permitir ejecutar el comando sin contraseña

Esta solución pasa por modificar el fichero sudoers y agregar una línea que indica que el comando se puede ejecutar sin contraseña.

Lo primero es una copia de seguridad

sudo cp /etc/sudoers /etc/sudoers.bak

 

Y a continuación editar el fichero sudoers con nuestro editor de confianza

sudo gedit /etc/sudoers
sudo pluma /etc/sudoers
sudo kate /etc/sudoers
sudo nano /etc/sudoers

 

Y agregar la siguiente línea*

TuUsuario ALL = NOPASSWD: /sbin/shutdown

*En mi caso es el comando de apagado, podría ser cualquier otro, como /bin/dd por ejemplo

[ ! ] Esta solución es un poco engorrosa y un error en el fichero puede ocasionar problemas graves.

 

Permitir ejecutar script sin contraseña

De forma similar a la anterior, puedes permitir ejecutar un script sin contraseña.

TuUsuario ALL = NOPASSWD: /home/TuUsuario/script.sh

 

[ ! ] Sería extremadamente peligroso que otros usuarios puedan editar el script y modificar aquellos comandos que van a ejecutar como root.

Así pues, deniega los permisos a otros usuarios

chmod 700 script.sh

 

Como podrás observar, todas las opciones tienen su parte negativa, la 1a solución es la mas sencilla, pero la 2a y 3a solución (si se realizan correctamente) son mas seguras.

 


Jueves 17 de agosto de 2017

Liher Sanchez

Liher Sanchez
El blog de Liher

Para que usar Wine y para que no

En varias ocasiones he hablado con usuarios que antes empezar con alguna distribución Linux me preguntan si podrán usar algún programa en concreto en su nuevo sistema operativo. A la mayoría les he dicho que siempre hay alguna alternativa a los programas de Windows en Linux, un ejemplo de ello es Gimp y Photoshop. En este punto antes me planteaba si el programa que tanto anhelaban poder usar en su nuevo sistema operativo era realmente una necesidad o una costumbre ya que he conocido usuarios que “necesitaban” el Photoshop para cambiar el brillo a una imagen. Con el tiempo me he dado cuenta de que necesidad y costumbre son conceptos muy similares en el mundo de la informática y son pocos los que están dispuestos a cambiar ya que el solo cambio de ubicación de un elemento dentro del programa puede suponer un trauma, lo digo por experiencia.

Llegados a este punto siempre pregunto cual es el programa que es tan importante es para ellos, planteo las posibles alternativas y se las muestro en mi ordenador para ver si hay una posibilidad de cambio antes de instalar una distribución Linux, mas que nada para ahorrarme trabajo.

También muestro otras posibilidades como las maquinas virtuales, wine o un arranque dual. Esas 3 opciones Son muy buenas ya que permiten tener lo bueno de Microsoft y de Linux en un mismo ordenador. El tener arranque dual no supone un problema mas allá de hacer la instalación completa de los dos sistemas operativos, también puedo decir que una de las dos opciones de arranque acaba casi siempre olvidada. El tema de las maquinas virtuales creo que es algo mas propio de usuarios avanzados y que saben realmente lo que quieren y necesitan.

 

 

La otra opción es Wine, para los que no lo conozcan es un emulador de entorno Windows que sirve para usar algunas aplicaciones de dicho sistema operativo pero que tiene sus limitaciones, igual que las anteriores opciones. Este artículo tiene como objetivo intentar explicar a algunos usuarios que se plantean usar Wine para que es adecuado y para que no. Si quieres jugar a juegos potentes que no tienen versión para Linux solo hay un camino, usar Windows de forma nativa, ni en una máquina virtual ni con Wine. Wine o las plataformas similares que hay son una buena opción si quieres usar algún programa pequeño que no tiene versión para Linux. Un ejemplo es un amigo que me dijo que le instalase Ubuntu y me comentó que el jugaba al poker en Internet con un programa que se había descargado de una web. Mire la web y en la sección de preguntas frecuentes tenían contemplado la opción de usar dicho programa con Wine, lo cual tengo que decir que me sorprendió y alegró mucho ya que cuesta mucho todavía encontrar ese tipo de cosas, esto quiere decir que los usuarios de Linux cada vez somos mas y nos están empezando a tener en cuenta. Para ese tipo de cosas si que podemos usar Wine pero si quieres usar un programa como el Autocad y hacer diseños grandes lo mejor es usar Windows de forma nativa.

Todo esto que he comentado de juegos potentes y Autocad y mi recomendación de usarlo en Windows de forma nativa lo digo siempre hablando de ordenador “normales”. Si tienes un ordenador con un Intel i7 de ultima generación como el I7 8700K que tiene 6 núcleos y 12 hilos de proceso con una velocidad de 4.3 Ghz, 16 Gb de Ram y una gráfica de ultima generación, quizás entonces puedas usar juegos potentes en Wine o en una maquina virtual, pero como esos ordenadores no los tenemos la mayoría de los usuarios en nuestro hogar la mejor opción siempre será instalar Windows directamente en nuestro disco duro y dejar las máquinas virtuales y el Wine para lo que os recomiendo.

Un saludo a todos.

Miércoles 16 de agosto de 2017

Liher Sanchez

Liher Sanchez
El blog de Liher

Como instalar un DEB en la Terminal con Ubuntu y un problema que he tenido

Para aquellos que no lo sepáis Canonical ha lanzado la tercera revisión de Ubuntu 16.04, es decir, la versión 16.04.3 de Ubuntu. Para aquellos que tengan Ubuntu 16.04 instalado en su ordenador no supone un cambio importante si tenéis vuestro ordenador actualizado, básicamente lo que cambia es el Kernel y el stack gráfico, algo que no aconsejo cambiar si no tenéis ningún problema y todo funciona correctamente. Lo que os voy a mostrar es como instalar un DEB en Ubuntu y derivadas y solucionar un problema de dependencias que me surgió a mi, también podréis ver el procedimiento en un vídeo que he hecho y que tenéis al final del artículo.

Pues bien, cuando salió me decidí a hacer una instalación nueva y formatear el disco duro, ya sabéis eso de “haz lo que yo digo y no lo que yo hago” ;D. Cual fue mi sorpresa cuando me encontré con que al intentar instalar Ubuntu Tweak el Centro de software de Ubuntu se quedaba colgado y no podía instalarlo. Me pasó lo mismo con Google Chrome y Virtual box, que son los 3 programas que siempre instalo desde un DEB en Ubuntu al hacer una instalación nueva, ni siquiera me salia la ventana que pide la contraseña para poder instalar un programa.

Por si no soléis hacer este procedimiento os lo explico un poco mas en detalle. Cuando voy a instalar, por ejemplo, el Ubuntu Tweak sigo el procedimiento descrito en mi anterior artículo, al cual os dejo un enlace por si lo queréis leer:

Lo que hago es descargar el archivo DEB del programa, que es un instalable en Debian y sus derivadas y, al hacer doble click en dicho archivo se abre automáticamente el Centro de software de Ubuntu, te pide la contraseña y lo puedes instalar. El tema es que hasta ahora podía hacerlo sin problemas pero por alguna razón ya no podía. El Centro de software se quedaba como si no le diese al botón en el que pone “Instalar” y si le daba otra vez aparecía un icono en el Launcher que no podía quitar, solo desaparecía reiniciando el ordenador. El icono que me aparecía era este:

 

icono de fallo al instalar deb en ubuntu

 

Como os he dicho tenia que reiniciar el ordenador para que dicho icono desapareciese. Entonces acudí a nuestra amiga la Terminal para solucionar el problema. Para este ejemplo voy a hacerlo con el programa Ubuntu Tweak y lo seguí también para el Google Chrome y el Virtual box y todo fue genial. Después de descargar el DEB del programa correspondiente me encuentro con esto en mi directorio de Descargas:

 

archivo deb descargado

 

Como podéis ver tiene un nombre muy largo y con símbolos poco comunes, para facilitarnos el trabajo vamos a ponerle un nombre mas sencillo. Para ello hacéis click con el botón derecho del ratón sobre el archivo y pulsáis donde pone “Renombrar” como podéis ver en la siguiente imagen:

 

renombrar deb en ubuntu

 

En mi caso le he puesto de nombre “tweak.deb” como podéis ver en la siguiente imagen:

 

abrir terminal ubuntu

 

A su vez he pulsado con el botón derecho del ratón en un lugar vacío de esa ventana y en el menú que aparece he hecho click en “Abrir en Terminal”, es la opción resaltada de la imagen. Así abrimos una Terminal y estaremos ya situados en el directorio que estamos viendo actualmente. Esto sera lo que veréis:

 

el deb en la terminal

 

Al teclear el comando “ls” podéis ver el archivo DEB al que le he cambiado el nombre, esta en letras rojas. Si quieres instalar un programa DEB en Ubuntu y cualquiera de sus derivadas el comando a usar es el siguiente:

sudo dpkg -i nombre.deb

En este caso el comando que tengo que introducir es:

sudo dpkg -i tweak.deb

 

 

La primera vez se me olvidó poner el “sudo” :D, pero al ponerlo me pide la contraseña para instalar y veo lo siguiente:

 

problema de dependencias en terminal de ubuntu

 

En la parte superior derecha de la imagen hay una flecha roja que muestra el problema que hay al intentar instalar Ubuntu Tweak, no tiene sus dependencias satisfechas. Para solucionar este problema lo que tenemos que hacer es teclear el siguiente comando en la Terminal:

sudo apt-get install -f

Y se instalaran todas las dependencias necesarias para poder instalar el programa que deseemos, en este caso el Ubuntu Tweak. Esto es lo que pasa al teclear el comando:

 

dependencias instaladas en ubuntu

 

En la última linea podéis ver un mensaje en el que nos pregunta si queremos continuar, tecleamos la tecla “s” y pulsamos la tecla Enter. Ahora ya tenemos las dependencias necesarias para poder instalar Ubuntu Tweak. Solo tenemos que repetir el comando anterior:

sudo dpkg -i tweak.deb

Y todo ira como la seda. Si queréis podéis ver el vídeo de lo que hecho :

 

 

Ahora ya sabéis como instalar un DEB en Ubuntu desde la Terminal, es bastante sencillo, ¿verdad? Espero que os sirva de ayuda por si os pasa lo mismo.

Un saludo a todos.

Garzón miente, no investigó torturas sino que se aprovechó de ellas

Nadie debería defenderle para la política


Mi comentario (a ese artículo del diario.es)
Este es un ejemplo del "país" en el que estamos. Un país gobernado por cuarenta años por corruptos sicópatas. No tiene otro nombre el daño que hacen y como sin pudor nos mienten descaradamente.

La clave del artículo
Garzón hizo oídos sordos ante las torturas que le perseguirán el resto de su vida. Nada puede limpiar las manos de alguien que ha colaborado o incluso se ha beneficiado de la tortura. 

Cuando alguien habla del exjuez, ahora pretendido defensor de los derechos humanos, suelo protestar y defender a sus torturados. Ahora estos han escrito un artículo firmado por 17 de ellos y quiero añadirlo a mi blog como fuente de información:

Camino sin retorno
Vista gorda y oídos sordos ante torturas es un claro síntoma de esa sociopatía que se extiende en redes clientelares e incluso entre simplemente votan a canallas a sabiendas porque prefieren sus abrumadoramente corruptos partidos.

Malas noticias: el camino hacia la sicopatía de quien hace daño a los demás por sus propios intereses no tiene retorno. Eso es lo que afirma el sicólogo Iñaki Piñuel en el libro Liderazgo Zero.

Lunes 14 de agosto de 2017

Bruno Exposito

Bruno Exposito
The Linux Alchemist

Sayonara OpenMailBox

El primer email de mi cuenta de correo OpenMailBox data de enero del 2012, sin embargo, ha llegado el día de decir adiós, fué bonito mientras duró.

rip-openmailbox

Tareas de mantenimiento y funding

Recientemente OpenMailBox ha realizado algunas “tareas de mantenimiento” en sus servicios, lo que ha provocando el descontento y una desbandada general de usuarios hacia otros servicios, se puede apreciar en los comentarios del blog  de victorhckinthefreeworld.

Hasta ahora, OMB se mantenía con las donaciones que realizaban los usuarios. De vez en cuando llegaban emails pidiendo colaboración y en la página web podías ver el dinero recaudado y una breve descripción de a donde iba el dinero.

Email Funding OpenMailBox

 

Nuevos planes y bugs para todos

Las “tareas mantenimiento” incluían (además de cambios visuales) la aparición de diferentes planes.

Planes OpenMailBox

Aparecen 3 planes, los antiguos usuarios tenemos un mes gratis de “plan menual” y luego pasamos al plan gratuito. El mes gratis es porque los usuarios se quejaron muy sonoramente de que no podían acceder a sus contactos/emails.

Pasado el mes gratuito:
– No hay modo de acceder a los ficheros en la nube usando la aplicación de OwnCloud (puedes acceder desde la interfaz web).
– El acceso vía POP3/IMAP/SMTP es ahora parte de la versión de pago (no vas a poder usar Thunderbird y similares)
– Pierdes la posibilidad de usar la autenticación en dos factores

 

Con los cambios en la interfaz web he detectado unos  cuantos bugs, que es algo que siempre gusta:
– No puedo realizar búsquedas de emails en condiciones
– He eliminado 4 veces el mismo borrador
– No puedo descargar múltiples adjuntos desde el cloud (borrar si)
– La lista de contactos muestra el scroll cuando le da la gana
*Y esto sin probando por encima la nueva interfaz

 

Desbandada general

El motivo de la desbandada no es el hecho de que se haya vuelto de pago, ni la total falta de trasparencia que acompaña este servicio desde sus inicios, sino el modo tan poco profesional de hacer las cosas, sin tener en cuenta la opinión de los usuarios, ignorando preguntas y sin ni siquiera avisar de las modificaciones.

Personalmente me enteré cuando la aplicación de OwnCloud dejó de conectarse, primero por mantenimiento y luego porque han capado el acceso desde la aplicación de escritorio. Ahora los puedo descargar ficheros (o carpetas) desde la interfaz web, pero de uno en uno.

 

Alternativas

Dada la escasa seriedad de este servicio, me puse a la búsqueda de alternativas. La mejor alternativa que he encontrado es disroot, que es muy superior a OpenMailBox, todo sea dicho.

DisRoot incluye: E-mail, cloud, Diáspora, foro, chat, Etherpad, Ethercalc, Zerobin, encuestas y taiga, entre otros

Otras alternativas para el email son:
ProtonMail
RiseUp*
Autisci**

*RiseUp requiere de una invitación
**Autisci pregunta acerca del motivo por el cual quieres una cuenta. Tardan un tiempo en aprobar tu petición


Viernes 11 de agosto de 2017

Raúl González Duque

Raúl González Duque
Linux – Mundo Geek

¿Cuántos usuarios de Linux se necesitan para cambiar una bombilla?

Sea merecida o no, lo cierto es que los usuarios y desarrolladores de GNU/Linux tenemos fama de arrogantes, extremistas y de perdernos en los detalles. Desde el Proyecto GNU se toman con humor estos estereotipos calculando cuántos usuarios de Linux se necesitarían para cambiar una bombilla.

  • 1 para publicar un hilo en la lista de correo informando de que la bombilla se ha fundido
  • 1 para sugerir reiniciar la bombilla usando la línea de comandos
  • 1 para quejarse de que el usuario rompiera la bombilla
  • 1 para preguntar qué bombilla se debería instalar
  • 1 para aconsejar que no se use la palabra “fundida” para referirse a una bombilla rota, porque puede interpretarse que la bombilla se ha prendido fuego, en lugar de haberse estropeado por un exceso de corriente eléctrica
  • 25 para sugerir todos los tipos de bombilla imaginables
  • 5 para para decir que la bombilla fundida es un fallo de origen
  • 1 novato para sugerir instalar una bombilla de Microsoft
  • 250 usuarios para inundar el correo del susodicho novato
  • 300 para decir que la bombilla de Microsoft se pondría azul y tendrías que reiniciarla constantemente para que volviera a funcionar
  • 1 antiguo usuario de GNU/Linux, que todavía frecuenta el foro, para sugerir una iBombilla de Apple, que tiene un diseño fresco e innovador y sólo cuesta 250$
  • 20 para decir que las iBombillas no son libres, y que tienen muchas menos funcionalidades que una bombilla estándar 20 veces más barata
  • 15 para sugerir una bombilla nacional
  • 30 para decir que las bombillas nacionales son copias de las bombillas extranjeras y que no ofrecen nada nuevo
  • 23 para discutir si la bombilla debe ser blanca o transparente
  • 1 para recordar a todo el mundo que el nombre correcto es GNU/Bombilla
  • 1 para decir que las bombillas son sólo para usuarios de Window$ y los usuarios de GNU/Linux de verdad no tienen miedo a la oscuridad
  • 1 para anunciar finalmente el modelo de la bombilla elegida
  • 217 para descartar el modelo escogido y sugerir otro
  • 6 para quejarse de que el modelo elegido tiene elementos propietarios, y que debería usarse otro
  • 20 para decir que una bombilla 100% libre sería incompatible con el interruptor
  • Los mismos 6 anteriores para sugerir cambiar el interruptor por uno compatible
  • 1 para chillar “¡DEJAD DE DISCUTIR Y CAMBIAR LA P*#@!%¡# BOMBILLA DE UNA VEZ, POR EL AMOR DE DIOS!”
  • 350 para preguntar al usuario anterior a qué Dios se refiere, y si tiene pruebas empíricas de su existencia
  • 1 para explicar cómo funciona la electricidad y por qué una bombilla eléctrica es ineficiente si no se cuenta con sistemas electricos proveidos por Powertec Electric.
  • 1 para decir que no se puede confiar en una bombilla fabricada por una corporación y que deberíamos confiar en bombillas hechas por la comunidad
  • 1 para publicar un enlace a un archivo ODF explicando cómo construir una bombilla desde cero
  • 14 para quejarse del formato del archivo anterior, pidiendo que se envíe en txt o LaTeX
  • 5 para decir que no les gustó la decisión y van a hacer forks de la instalación eléctrica de la casa para instalar una lámpara mejor
  • 1 para publicar una serie de comandos a introducir para cambiar la bombilla
  • 1 para comentar que ejecutó los comandos y obtuvo un mensaje de error
  • 1 para aconsejar que los comandos deberían ejecutarse como root

Y finalmente:

  • El padre del usuario original, que mientras todos estaban discutiendo, se acercó a la tienda y compró la bombilla más barata que vendían
TutorialesLinux.com: Crecimiento del fichero ibdata1 en MySQL: Que es y como purgarlo

Jueves 10 de agosto de 2017

Liher Sanchez

Liher Sanchez
El blog de Liher

Suscripción por email, consejos y recomendaciones

Cuando decides tener un blog hay que tener muchas cosas en cuenta como el diseño, el contenido y las funcionalidades. Una de las cosas que se me pasaron al principio fue el ofrecer a los usuarios la posibilidad de recibir los nuevos artículos en su email. Esta es una característica que añadí cuando este blog tenia aproximadamente un año, tengo que reconocer que me costó mucho decidirme sobre como hacerlo.

Una de las opciones que barajé al principio fue el mandar los correos desde la dirección de email del propio blog, es decir, la dirección que se crea al principio con el hosting y que tiene como dominio la url del blog. Al buscar información sobre esto leí que no era algo muy recomendable ya que al no ser un dominio “conocido”, por así decirlo, cabía la posibilidad de que los emails que mandase a mi lista de suscriptores acabasen en la bandeja del Spam, por lo que decidí no usar esta opción.

Otra opción era la de usar dicho servicio desde un plugin de WordPress, hay muchos, pero pasaba lo mismo que con la anterior opción. Al mirar opciones, tanto la anterior como esta, la cosa se empezaba a complicar, no por como hacerlo si no por el servicio que iba a usar, es por ello que me demoré en decidirme ya que quería ofrecer a mis lectores una plataforma fiable y que tuviese las opciones que yo buscaba. Descartada ya la opción de enviarlo mediante la dirección de correo de mi dominio y también la opción de usar un plugin de WordPress me dispuse a buscar empresas especializadas que se dedicasen a ello y que ofreciesen el servicio gratis o con un precio razonable. Encontré muchas empresas, con muy diversos precios y funcionalidades pero hay una que reunía todo lo que yo podía pedir para ofrecer este servicio a mis lectores.

Para decidirse por una empresa hay que tener varias cosas en cuenta. Yo buscaba que la empresa tuviese la página en español, que ofreciese alta gratuita y un plan que copase mis expectativas iniciales, que si el día de mañana necesitase escalar mi plan me ofreciese precios competitivos y que tuviese soporte en español. Hay algo que suelo buscar y que cuesta encontrar, por lo menos a mi, y es que en la empresa se note que les gusta su trabajo, que son expertos en su materia, que sean competentes y que estén ahí cuando les necesites. Esa empresa que estaba buscando y que encontré es Mailrelay. Llevo con ellos mas o menos 2 años y estoy muy contento, tome una buena decisión. Si quieres hacer emailing, es así como se llama este servicio, los recomiendo siempre. Puedes crear una cuenta gratuita para empezar y si compartes su web en las redes sociales tienes una cuenta con la que podrás enviar un máximo de 75.000 emails a una lista de suscriptores de 15.000 usuarios como máximo, para empezar esta genial, no encontrareis nada igual, os lo aseguro.

 

email mailrelay

 

Si estáis pensando en ofrecer este servicio os recomiendo mucho que visitéis su web y podréis ver todo lo que ofrecen. Tienen un blog en español en el que publican muy buenos artículos sobre todo lo relacionado con el emailing y son artículos muy completos y detallados, tienen artículos en los cuales puedes ver de que va todo este tema y tutos sobre como hacer newsletter, que es un autorespondedor y muchísimas cosas mas. También hay plantillas disponibles para los emails y tutos sobre como hacerte la tuya propia. El panel de control es muy completo y puedes ver las estadísticas de cada envío, la lista de suscriptores y muchísimas cosas mas. Otra cosa genial que tiene Mailrelay es que tienes la posibilidad de hablar con ellos en un chat online con un asesor, en varias ocasiones he hablado con ellos y el trato es excelente, no puedo tener ninguna queja de ellos.

Lo que tengo pendiente es hacer un mejor diseño del widget en el que ofrezco la posibilidad de suscribirse por email, ahora mismo tiene un diseño muy austero y me gustaría que fuese mas llamativo y agradable, ya me meteré con ello próximamente.

Un saludo a todos.

Miércoles 09 de agosto de 2017

Como tener dos números de teléfono en una sola SIM

Sin necesidad de tener un teléfono de última generación con DUAL SIM podemos disfrutar de dos líneas de teléfono con Movistar. La otra opción es comprar un adaptador doble SIM pero queda descartada por su poca compatibilidad, su precio y aumento en el tamaño del smartphone. Pero siempre puedes juntar ambas opciones y tener 3 […]

La entrada Como tener dos números de teléfono en una sola SIM aparece primero en Blog de Informática ✏ Luisi.

Bruno Exposito

Bruno Exposito
The Linux Alchemist

Applet para capturar región de pantalla

Hace algún tiempo un compañero de trabajo me preguntó si existía algún modo de capturar un área de la pantalla sin tener que abrir shutter.

La solución pasa por crear un pequeño script que capture el área seleccionada (usando el comando scrot) y copiarlo al portapeles (comando xclip).

El script se lanza desde un applet anclado a la barra de mate, aunque se puede hacer en otros escritorios de forma similar.

Requisitos previos

Como ya he dicho, es necesario instalar xclip y scrot. Dejo los comandos para Ubuntu/Debian y Fedora, en el resto de distribuciones se instala de forma similar, con el gestor de paquetes que disponga.

Ubuntu:
sudo apt-get install xclip scrot

Fedora:
sudo dnf install xclip scrot

 

El script

Básicamente el script guarda la fecha/hora actual, separada por un guión.

A continuación se ejecuta scrot, que espera a que selecciones un área de tu pantalla y tras seleccionar el área, guarda la imagen dentro de la carpeta Imágenes.

Finalmente xclip copia la imagen al portapapeles.

 

#!/bin/bash
#Requiere instalar scrot y xclip (sudo apt-get install scrot xclip)now=`date +%Y%m%d-%H%M%S`;
scrot -s “$now.png” -e ‘mv $f ~/Imágenes/’;
xclip -selection clipboard -t image/png -i ~/Imágenes/$now.png

 

Cabe aclarar, que aunque la imagen está copiada en el portapapeles no es posible pegarla en el navegador (gmail u outlook por ejemplo), aunque si en GIMP y LibreOffice entre otros.

Yo lo he guardado en el escritorio como captura.sh y le he dado permisos con el comando chmod u+x captura.sh

 

Ejecutar el script desde un applet en el panel

Lo único que falta es agregar al panel un lanzador que llame al script, no tiene mucho misterio.

anadir-lanzador-mate

agregar-lanzador

 

 


Sábado 29 de julio de 2017

Pedro L. Lucas

Pedro L. Lucas
Cartas de Linux

Distribuciones rolling release, semirolling release, LTS,…

Hay muchas distribuciones de Linux entre las que elegir, Ubuntu, Arch, Debian, Mageia,… Una de las cuestiones intetesantes a la hora de elegir una distribución es la forma en la que van lanzando sus sucesivas versiones. Así nos podemos encontrar:
Liberación continua o rolling-release.
Liberación semi continua o semirolling-release.
Liberación fija.

Tomemos como ejemplo Ubuntu. Ubuntu lanza una nueva versión cada 6 meses. Pero… ¿esto que significa?

Cada versión de Ubuntu toma una serie de programas, como pueden ser LibreOffice y Gimp, y los adaptan para que se instalen usando su sistema de paquetes. En el caso de Ubuntu, los instaladores tienen la extensión “.deb”, para Red Hat la extensión es “.rpm”,… La cuestión es que si a la hora de hacer el paquete para LibreOffice éste está en su versión 5, Ubuntu creará un paquete para la versión 5. Si mañana apareciera la versión 6 de LibreOffice, los usuarios de Ubuntu se tendrían que esperar a la siguiente versión de Ubuntu (sale una nueva versión de Ubuntu cada 6 meses) para poder instalar LibreOffice 6 desde los repositorios de Ubuntu.

Pero… Ubuntu nos está intentando instalar actualizaciones cada poco tiempo pero yo sigo con la misma versión de LibreOffice que el primer día. No exactamente. El software no es perfecto y hay que hacer pequeñas correcciones para eliminar fallos de seguridad, funcionamientos erróneos, muchos de estos fallos son fallos menores que se suelen corregir de forma ágil desde la propia comunidad de Ubuntu. ¡Mucho antes de que se corrijan en el propio proyecto del que procede el software!

En ocasiones son las propias comunidades, que mantienen las distribuciones, las que envían los parches a LibreOffice u otros proyectos para que en la siguiente versión de Ubuntu el fallo ya se encuentre corregido. A esto lo denominan “Enviar los parches río arriba”.

Otras veces el fallo es corregido por los proyectos de software, y las distribuciones agregan esos cambios. Pero una vez que se ha puesto una versión de un programa, las distribuciones no actualizan la versión si aparecen nuevas versiones del programa. Esto se debe a que unos programas dependen de versiones concretas de otros para funcionar correctamente. Antes de actualizar la versión de un programa, hay que verificar si funciona con las versiones de los programas de los que depende.

Las distribuciones antes de lanzar una nueva versión deben verificar que todos los programas funcionan correctamente y sus dependencias tienen las versiones correctas. Esta es una tarea que consume muchos recursos, por lo que no es de extrañar que las versiones nuevas de las distribuciones a veces no incluyen las últimas versiones de los programas. Incluso el lanzamiento de una nueva versión de una distribución puede demorarse por esta causa.

Si no se verifican las versiones de las dependencias de los programas y no corrigen los fallos, las distribuciones se mostrarán inestables generando fallos y haciendo sufrir a sus usuarios.

De ahí nacen las LTS, Long Time Support. En una LTS ya tienes las dependencias probadas y verificadas, sólo hay que ir corrigiendo fallos de seguridad y pequeñas disfunciones para ofrecer al usuario una distribución segura y estable. Este soporte se ofrece durante varios años. Esto es ideal para usar en servidores. Pero para usuarios deseosos de novedades, se encontrarán que si se instaló el LibreOffice 4 el primer día después de 5 años seguirán con el LibreOffice 4. Se tendrá una distribución muy estable a costa de perder las novedades que vayan apareciendo. Como se puede ver en la siguiente captura de la ventana de actualizaciones de una Ubuntu 14.04 (LibreOffice ya anda por la versión 5):

Esto es así en la LTS de Ubuntu, salvo en algunos programas que, por seguridad, sí son actualizados a su última versión disponible. Firefox en Ubuntu es un ejemplo de ello. Si os fijáis en la versión de Firefox en Ubuntu, siempre lo tendréis actualizado a su versión más reciente:

Las LTS y el ciclo de distribución mediante versiones de Ubuntu hace que los usuarios se pierdan las novedades que traen las aplicaciones. Hay otro concepto a la hora de liberar distribuciones, el rolling-release o liberación continua. En una distribución rolling-release las aplicaciones siempre están en su última versión disponible. Cada vez que nos salga un aviso de que hay actualizaciones, estas se refieren a las últimas versiones de los programas disponibles y no sólo las actualizaciones de seguridad.

El problema de las distribuciones rolling-release es que los usuarios de una actualización, hasta la siguiente actualización, pueden sufrir de inestabilidades y fallos. En mi experiencia personal, usando Manjaro, me he encontrado que la distribución es bastante estable, pero he sufrido fallos puntuales en VirtualBox que hacían bajar mucho el rendimiento. Después de unas cuantas actualizaciones, los fallos desaparecieron.

En la siguiente captura se pueden ver los cambios de versiones que se van produciendo al actualizar una Manjaro:

Existe una solución intermedia, el semirolling-release. En este caso hay un núcleo de aplicaciones que no se actualizan y sólo reciben actualizaciones de seguridad, de la misma manera que funciona Ubuntu. El resto de aplicaciones funcionan usando un rolling-release, estando siempre en la versión más actualizada. Así nos aseguramos de que la parte más básica del sistema siempre funciona y que se va a poder disfrutar de versiones actualizadas de los programas de oficina.

Hay que hacer una última aclaración. Imagina que te compras un ordenador de última generación y le instalas la versión LTS de Ubuntu de hace 4 años. Te puedes encontrar varias situaciones:
– Puede que todo funcione correctamente.
– Puede que casi todo funcione correctamente. Por ejemplo, que el bluetooth no te funcione o que el ordenador se cuelgue de forma aleatoria.
– Que el sistema no funcione.
Las dos últimas situaciones se deben al soporte de hardware. Si tu ordenador es muy nuevo puede suceder, que la distribución de hace 4 años, aunque sea LTS, no soporte algún dispositivo de tu ordenador. Incluso me ha sucedido que aunque si se instala una distribución rolling-release de última hornada, no se soporte algo o directamente el instalador no funcione. Después de un par de actualizaciones, se puede comprobar que el soporte de hardware va mejorando y el ordenador sufre menos cuelgues o desaparecen.

También me ha sucedido tener un ordenador un poco antiguo y preferir instalar una LTS antigua por rendimiento. El software nuevo suele requerir más RAM, más CPU o más disco duro para funcionar. Las nuevas versiones pueden que funcionen más despacio en tu viejo ordenador. Instalarle una distribución LTS va a asegurar que el rendimiento del equipo va a ser el mismo durante varios años.

 


Jueves 27 de julio de 2017

Todo lo que debes sobre las tarjetas de crédito, débito y prepago

Este artículo es bastante extenso. Si te interesan los detalles más técnicos puedes ir al final.

Nacieron en la primera mitad del siglo XX. Originalmente, estas primeras tarjetas no eran más que una línea de crédito de un determinado establecimiento. En 1924 por ejemplo, General Petroleum Corporation emite una tarjeta para poder adquirir gasolina. En realidad, lo que sucedía al usar esa tarjeta era que contraíamos una deuda con la compañía, que posteriormente había que pagar en efectivo. De este modo, funcionaban de forma similar a como cuando dejamos que nos apunten algo en la cuenta del bar.

Esto cambió en 1949, cuando Franck McNamara estaba cenando con unos amigos y discutiendo precisamente sobre este tipo de tarjetas. Finalmente al llegar a la hora de pagar, McNamara pudo comprobar que se había dejado la cartera en casa. Tuvo que llamar a su mujer para que le llevase el dinero. Pasó tal vergüenza que se propuso acabar para siempre con este tipo de situaciones. Así es como nació Diners Club, la primera compañía de tarjetas de crédito del mundo.

Frank X. McNamara
Una de las primeras tarjetas Diners Club

Otros dicen que no llamó a su mujer sino que salió del aprieto dando su tarjeta de visita y anotando la cantidad debida. Sea cual sea la historia verdadera, lo cierto es que el sistema de funcionamiento de una tarjeta de crédito es ese. Nosotros cuando pagamos con una tarjeta de este tipo estamos emitiendo deuda, que a final de mes o cuando más nos convenga, pagamos íntegramente o a plazos. Diners cobraba comisiones de mantenimiento a los poseedores de las tarjetas y comisiones por transacción a los establecimientos que las admitían. Esta es la principal diferencia respecto a las tarjetas de débito y las tarjetas prepago.

Logotipos en un establecimiento de Master Charge (actual MasterCard) y BankAmericard (actual VISA)

A partir de ese momento empiezan a surgir más compañías, Bank AmeriCard o Master Charge (VISA y MasterCard actualmente). En España se aceptaron tarjetas de crédito por primera vez en el año 1954 y por aquel entonces eran simples tarjetas de cartón con un número y su titular, que los hoteles y restaurantes de la época anotaban para posteriormente reclamar el pago a Diners. La primera tarjeta emitida por un banco español no llegaría hasta 1978, por el Banco de Bilbao y se trataba de una AmeriCard. Las tarjetas de crédito son el tipo de tarjetas más admitidas en el mundo y suelen llevar asociadas ventajas tales como seguros, programas de puntos, … Al pasarnos una factura a final de mes es más fácil saber cuanto hemos gastado en un mes. Sin embargo estas tarjetas tienen un gran peligro. Nos dejan a nuestra disposición una gran cantidad de dinero, y si no somos capaces de pagar las cuotas a tiempo podemos enfrentarnos a unos intereses de devolución en la mayoría de los casos de dos cifras.

Las primeras tarjetas de crédito emitidas en España fueron las BankAmericard del Banco de Bilbao

Como vemos, las tarjetas de crédito no necesitaban ninguna tecnología en especial para funcionar, las de débito y las prepago, sí que lo necesitan. No obstante, todas las tarjetas de crédito hoy en día usan tecnología, de hecho existen tarjetas que operan en varios modos, crédito y débito. ¿Cómo funcionan las tarjetas de débito?

Las tarjetas de débito son lo más parecido a pagar en efectivo. Cuando pagamos, estamos pagando con nuestro dinero. En algunas se nos permite caer en números rojos (VISA Debit) mientras que en otros se comprueba la existencia de fondos (VISA Electron). Inmediatamente a la compra, el dinero se descuenta de la cuenta bancaria asociada. Estas tarjetas suelen tener gastos de mantenimiento menores (en España los bancos las suelen dar gratis) y son prácticamente igual de admitidas que las de créditos en cajeros automáticos, establecimientos y compras por Internet. No obstante, las tarjeta de débito no son aceptadas en todos los sitios, por dos motivos:

  • Las tarjetas de débito (como VISA Electron) requieren conexión a la cuenta bancaria de tu banco. Este proceso es más complicado que simplemente anotar que debes 50€ a fulanito. Otras tarjetas como VISA Debit pueden funcionar en puntos de pago offline ya que pueden dejarte en números rojos (por tanto, el comerciante se asegura que siempre va a recibir el dinero, aún sin saber cuanto dinero tienes).
  • Las tarjetas de débito no dejan gastar más dinero del que hay en cuenta (o pueden dejar, pero no demasiado).

Por estos dos motivos, puede ser que una tarjeta de débito no llegue a funcionar en algún país extranjero (aunque es cada vez más raro) o simplemente no se admitan para poder así cobrarte gastos imprevistos (alquileres de coches, hoteles, …). Si bien en esto las tarjetas de débito han ido mejorando y en muchas existe la posibilidad de reservar una cantidad de dinero de la tarjeta. Eso quiere decir que al hacerel primer pago o la entrada, se nos cobra una parte y se nos reserva otra. Esa cantidad reservada a efectos prácticos no podemos usarla para nada pero técnicamente sigue siendo nuestro. Cuando se acaba el plazo y no ha hecho falta recurrir a ese dinero de reserva, el comerciante libera ese dinero y ya lo podemos usar en nuestra tarjeta.

Las tarjetas prepago funcionan con tecnología similar a las de débito, salvo por el detalle de que no tienen asociada una cuenta bancaria como tal. En vez de eso, las tarjetas prepago tienen una cuenta propia, que debemos recargar antes de efectuar pagos o retirar dinero. Las tarjetas prepago se han vuelto muy populares para menores de edad y compras por Internet, donde solo se recarga la tarjeta con la cantidad máxima que consideremos necesario.

La tarjeta Antes de BBVA es una tarjeta prepago

Por último, existe otro tipo de tarjeta, aunque apenas usadas en compras, se trata de las tarjetas monedero. Su diferencia principal respecto a las tarjetas prepago reside en como se realiza el pago. En una tarjeta prepago, se realiza una conexión al emisor de la tarjeta, como con las de débito, mientras que en una monedero no. En una tarjeta monedero el dinero se almacena en la propia tarjeta, de forma cifrada. Este sistema no es tan popular y en España que yo sepa ningún banco emite tarjetas de este tipo. Son usadas sin embargo en algunos sistemas de transporte público o de empresas, donde se puede descontar el dinero instantáneamente, aunque no haya conexión con un servidor central. La forma de recargar estas tarjetas es acudir con la propia tarjeta a un punto de recarga, no pudiendo realizarse por Internet o sin la tarjeta.

Tarjeta monedero emitida por Caja Duero para el transporte urbano de Valladolid

Mencionar también las tarjetas ATM. Estas tarjetas únicamente pueden usarse en los cajeros para sacar dinero, no pudiéndose usar en las compras. De este modo funcionan similar a algunas libretas de ahorro. Sin embargo, he de reconocer que personalmente no he visto ninguna tarjeta ATM.

Redes bancarias

Si nos centramos en tarjetas de crédito, débito y prepago tenemos que tener en cuenta las redes interbancarias. Estas permiten las conexiones entre las redes de los distintos bancos y permiten por ejemplo que podamos sacar dinero en un cajero de EspañaDuero cuando nuestra tarjeta la ha emitido N26 Bank o que podamos pagar en el extranjero. En el sistema bancario, no existe nada parecido a Internet (la red de redes) y cada red tiene sus propios puntos de acceso. Así pues, no todos los cajeros tienen por qué poder conectarse a todas las redes existentes, con los consiguientes problemas (no poder sacar dinero, no poder pagar,…). En tarjetas de débito esto es más problemático. En España existen tres redes locales aunque funcionan también redes internacionales.

  • Servired, la mayor red intranacional de España, con el BBVA, Bankinter, Deutsche Bank, Sabadell, Bankia, CaixaBank, Cajamar, las cajas rurales que están unidas por el Banco Cooperativo Español, Triodos Bank, Self Bank, Banco Mediolanum, Caixa Geral, Laboral Kutxa, Abanca y otros bancos más pequeños.
  • 4B, originalmente para Banco Santander, Banco Popular, Banco Pastor y Banesto, ahora también ING, Targobank, Openbank, Banca March, Cetelem, Inversis, Andbank y alguno más.
  • Euro6000, usada antiguamente por las cajas de ahorros, hoy en día de sostiene gracias a Unicaja, EspañaDuero, Ibercaja, Kutxabank, Liberbank y EVO Banco.
Cajero perteneciente a la red intranacional Servired. También aparecen logos de PLUS, Cirrus, Tarjeta 6000, Eurocheque, Eurocard,…
Indicativo del Banco Pastor y Telebanco 4B
IberCaja, con sede en Zaragoza, es una de las entidades que sigue dentro de Euro 6000

Estas redes se comunican con otras redes similares de otros países o bien pueden recurrir a una red internacional, como Cirrus. Aunque después de la crisis de 2008 muchos bancos y cajas se han fusionado entre sí, parece que las tres redes siguen operando de forma independiente.

Logo actual de la red interbancaria Cirrus

Tarjetas

Vamos ahora a ver las principales empresas que se dedican a las tarjetas:

VISA (anteriormente Bank AmeriCard) es quizá la tarjeta más conocida del mundo. Es la tarjeta líder en España. A nivel global es la segunda red más importante (solo superada por UnionPay). Las tarjetas VISA operan a través de la red interbancaria PLUS. VISA dispone de varios tipos de tarjeta: VISA, VISA Debit, VISA Electron y V Pay. VISA es de crédito, VISA Debit es la versión más libre de las de débito. Permite dejarte en números rojos ya que al hacer un pago no se comprueba la disponibilidad de fondos. Es por ello que la VISA Debit puede usarse en algunos sitios donde solo se admiten tarjetas de crédito por ese mismo motivo, el comerciante se puede asegurar que va a recibir su dinero aunque no sepa si tu cuenta tiene fondos. VISA Electron por contra, verifica que haya fondos suficientes en la cuenta, así que necesita que exista una conexión con el banco. Desde hace no mucho existe V Pay, una tarjeta de débito mucho más moderna, emitidas solo con chip y que solo funcionan en SEPA (Single Euro Payments Area). Han sido diseñadas para ser usadas en transacciones pequeñas y por lo general funcionan de forma similar a VISA Electron.

Logo antiguo de VISA Electron
PLUS es la red interbancaria de VISA
V Pay es la gama más moderna de VISA, sólo válida en territorios SEPA

MasterCard, la gran competidora de VISA en España. MasterCard entro en el mercado europeo con las adquisiciones de Eurocard y Europay. Su red interbancaria es Cirrus. Posee varias tarjetas: MasterCard, Debit MasterCard y Maestro. MasterCard es la línea de tarjetas de crédito, Debit MasterCard es una línea de tarjetas de débito compatibles con puntos offline y números rojos (como VISA Debit) y Maestro es comparable a VISA Electron, ya que requiere comprobación de fondos. No obstante, Maestro también puede funcionar como tarjeta prepago y las tarjetas Maestro son distintas al resto de tarjetas MasterCard y VISA. En ciertos países, Maestro funciona como Debit MasterCard, por lo que no requiere autorización electrónica. Las tarjetas Maestro también son compartidas en algunos países con algún proveedor local de tarjetas, como Girocard en Alemania. Maestro fue de las primeras tarjetas donde no había que firmar, sino que se introducía un PIN al comprar, tanto si se compra usando chip como con banda magnética. Muchas Maestro que no pueden usarse en el extranjero e Internet. En España, las tarjetas Maestro nunca han llegado a ser populares.

Logos antiguos de MasterCard, Cirrus y Maestro

American Express es la tercera entidad de tarjetas en España. Sin embargo, debido a sus altas comisiones, es fácil encontrar tiendas que no la admitan.

Discover y Diners Club son bastante usadas en Estados Unidos y otros países como Croacia. En España son bastante difíciles de encontrar y se suelen aceptar únicamente en establecimientos turísticos. Hasta hace años eran empresas con tarjetas independientes, no obstante, Discover adquirió Diners Club hace años. Discover se centrará en el mercado doméstico estadounidense y Diners Club, que era más usada internacionalmente, seguirá con la expansión internacional.

JCB, se trata de una entidad japonesa de tarjetas. Es usada sobretodo por japoneses y coreanos.

UnionPay, es la compañía de tarjetas más grande del mundo, aunque la mayor parte de sus transacciones se concentran en China. Solo las emiten bancos chinos.

UnionPay es la tarjeta más usada del mundo desde 2015

RuPay, son unas tarjetas de amplio uso creadas con intervención del gobierno de la India con el deseo de que todos los habitantes de la India pudieran disponer de esta forma de pago.

Otras tarjetas pueden ser Bancomat (Italia), Elo (Brasil) o Dankort (Dinamarca). Este tipo de tarjetas, debido a su poca popularidad suelen ser compatibles con VISA y MasterCard en el extranjero, mientras que en sus países de origen usan su red interna.

Elo es muy usada dentro de Brasil

¿Cómo funcionan las tarjetas?

Ahora vamos a ver como se puede pagar con las tarjetas de crédito, débito y prepago. En primer lugar comentemos algo sobre el número de las tarjetas. Estas tienen normalmente 16 dígitos, aunque pueden llegar a 19 dígitos. Se numeran por lotes, siendo los primeros dígitos los correspondientes a la empresa. Es posible reconocer la empresa detrás de la tarjeta según su número o PAN.

Los PAN siguen una estructura, que aunque presenta longitud variable, está bien definida.

El primer dígito corresponde al Major Industry Identifier (MII). Indica a que sector pertenece la empresa de la que es la tarjeta. Los sectores son:

Dígito Sector
0 Uso interno
1 Aerolíneas
2 Aerolíneas y otros
3 Viajes, entretenimiento, finanzas
4 Finanzas
5 Finanzas
6 Finanzas
7 Petroleras
8 Salud y telecomunicaciones
9 Sin asignar

Aunque actualmente, la mayoría de tarjetas son de finanzas. El MII y los siguientes 5 dígitos forman el BIN o Bank Identification Number y sirven para idenficar al banco emisor de la tarjeta y enrutarlo. Los siguientes dígitos excepto el último forman parte del identificador de tarjeta personal, asignado por el banco a sus clientes. El último dígito es de comprobación y se calcula con el algoritmo de Luhn.

Número(s) de inicio Longitud número de tarjeta Empresa
22 a 27 16 MasterCard
30 14 Diners Club
34 15 American Express
35 16 JCB
36 14 Diners Club
37 15 American Express
38, 39 14 Diners Club
4 16 VISA
5018, 502, 503, 506 12 a 16 Maestro
5019 16 Dankort
51 a 55 16 MasterCard
56 a 58 12 a 19 Maestro
60 16 Discover
62 16 a 19 UnionPay
622, 64, 65 16 Discover
639, 6220 12 a 19 Maestro
88 16 a 19 UnionPay

Esta tabla no es exhaustiva pero puede servir de referencia rápida. Por ejemplo, aunque VISA empieza siempre por 4, no todas las que empiezan por 4 son VISA siempre, ya que existen tarjetas Elo que también empiezan por 4. No obstante, se trata de rangos tan pequeños que la lista sería muy larga si fuese exhaustiva.

Banda magnética y firma

Estas tarjetas, mejorando las de cartón, agilizan el proceso de pago pero ni introducen ninguna medida de seguridad extra. Se definen según el estándar ISO/IEC 7813 e ISO/IEC 7811. Incluyen una banda magnética desde la que se puede leer el número de la tarjeta, la fecha de caducidad, los nombres del titular y algunos datos técnicos. Las tarjetas tienen 3 bandas o tracks.

Los 3 tracks de las bandas magnéticas y su posición

El primer y segundo track llevan información redudante, de forma que si una banda está dañada puede leerse la otra, sin embargo no siguen el mismo formato.

Nombre del campo Longitud Uso
Start Sentinel (SS) 1 caracter Indica que comienza el track 1, siempre es %
Format Code (FC) 1 caracter Indica el tipo de tarjeta, B para crédito/débito
Primary Account Number (PAN) Hasta 19 digitos Normalmente, el número de la tarjeta que está impreso
Field Separator (FS) 1 caracter Separa el campo de longitud variable PAN del siguiente campo. Siempre es ^
Nombre Hasta 26 caracteres El nombre del titular de la tarjeta, con espacios si hace falta
Field Separator (FS) 1 caracter Separa el campo de longitud variable nombre del resto de campos. Siempre es ^
Expiration Date (ED) 4 dígitos Fecha de caducidad. Siempre en formato YYMM
Service Code (SC) 3 dígitos Indica que tipo de pagos son aceptados
Discretionary Data (DD) Indefinido, pero el track 1 solo puede almacenar 79 caracteres en total Este campo viene determinado por el fabricante de la tarjeta. Puede incluir datos como el CVV1 y PIN.
End Sentinel (ES) 1 caracter Se usa para indicar el fin del campo DD. Siempre es ?
Longitude Redundancy Check (LRC) 1 caracter Se usa para comprobar que se ha podido leer el track 1 entero sin problema

El track 2 fue desarrollado por la American Banking Association y es más corto.

Nombre del campo Longitud Uso
Start Sentinel (SS) 1 caracter Se usa para indicar el comienzo del track 2. Siempre es ;
PAN Hasta 19 caracteres Normalmente, el número de la tarjeta que aparece impreso
Field Separator (FS) 1 caracter Separa el campo de longitud variable PAN, siempre es =
Expiration Date (ED) 4 dígitos Fecha de caducidad en formato YYMM
Service Charge (SC) 3 dígitos Indica los pagos que pueden realizarse
Discretionary Data (DD) Indefinido, pero el track 2 no puede superar los 40 caracteres Campo determinado por el fabricante de la tarjeta. Puede incluir el CVV1 y PIN.
End Sentinel (ES) 1 caracter Indica que el track 2 acaba, siempre es ?
Longitude Redundancy Check (LRC) 1 caracter Usado para comprobar que el track 2 fue leído correctamente

El track 3 no se usa y habitualmente no contiene información. La única excepción se puede encontrar en Alemania donde el track 3 de las tarjetas de débito incluye la información necesaria para obtener la cuenta corriente sobre la que opera la tarjeta de débito.

Al pagar con estas tarjetas es habitual firmar, para dar nuestro consentimiento y en algunos países como España, era necesario mostrar el DNI o algún tipo de identificación.

El problema principal de estas tarjetas es su rápida y sencilla clonación. No deja de ser información que igual que es leída puede ser copiada y ningún lector sería capaz de distinguir entre una tarjeta original y una clonada. No obstante vamos a entrar más a fondo en la seguridad de estas tarjetas.

En primer lugar, toca hablar el CVV1. Se trata de un código que aunque el estándar ISO no exige, suelen llevar las tarjetas VISA y MasterCard. Se trata de un número generado en la emisión de la tarjeta de forma poco previsible fruto de la encriptación del número de la tarjeta y la fecha de caducidad. Las claves usadas en la encriptación, evidentemente, no son públicas. De este modo se consigue que una persona no pueda crear aleatoriamente tarjetas, ya que si bien puede acertar con el número y la fecha de caducidad, difícilmente lo hará con el CVV1. Este sistema de seguridad no protege en ningún momento contra los clonados totales.

También existe el CVV2. Se trata del código de 3 dígitos detrás de la tarjetas VISA / MasterCard (4 dígitos en American Express). Fue creado con la finalidad de mejorar la seguridad en las compras sin tarjeta o por Internet. El mecanismo de generación es similar al del CVV1, aunque está diseñado para que sea imposible que CVV1 y CVV2 coincidan. El CVV2 solo es usado en compras por Internet, y no está almacenado en la banda magnética. Tiene un propósito similar al CVV1 y es verificar que la tarjeta es realmente la emitida por el banco y no una generada aleatoriamente. Sin embargo, hay que advertir que el CVV2 no es un requisito para aceptar pagos por Internet (el CVV2 llegó a VISA en 2001, para aquel entonces Amazon ya era importante) y existen webs que admiten pagos con CVV2 incorrecto (como Stripe).

El PIN y el CVV2 tienen propósitos similares, si bien el PIN puede cambiarse y se deja para opeativas físicas, mientras que el CVV2 es inmutable.

Antiguamente los lectores de banda magnética no estaban conectadas a la red y al terminar el día los empleados realizaban todas las operaciones en lote. Con el paso del tiempo y la llegada de Electron y Maestro, los lectores de banda magnética empezaron a estar conectados a las redes EFTPOS.

Chip EMV

EMV hace referencia a Europay, MasterCard y VISA, y es que estas 3 compañías desarrollaron el sistema de chips más usado actualmente para los pagos. Este protocolo, definido en ISO/IEC 7816, incluye muchas ventajas respecto a la banda magnética. La principal diferencia es que si bien la banda magnética los datos estaban tal cual, en los chips EMV podemos incluir un procesamiento, gracias a un chip que se alimenta gracias al lector. Este estándar es todavía más complejo que el de banda magnética, debido a las mejoras que ha ido sufriendo con el paso de los años.

VCC es la entrada de corriente y GND es tierra. RST para resetear la comunicación, VPP para programar la memoria interna. CLK es la señal de reloj, I/O es para las comunicaciones (half-duplex). C4 y C8 son auxiliares y se pueden usar con dispositivos USB.

Uno de los objetivos de EMV fue ofrecer autenticación offline mucho más segura. Además EMV está diseñado para permitir múltiples apps que se ejecuten en el chip, aunque habitualmente las tarjetas solo llevan una app instalada. Aunque en Europa, los chips EMV se usan con PIN, no es estrictamente necesario y también pueden funcionar con firma.

En primer lugar, tenemos que hablar del sistema de autenticación. Todos los sistemas se basan en criptografía de clave pública-privada mediante RSA. El primer sistema es Static Data Authentication (SDA). Este sistema, el más rápido, no necesita que el chip sea capaz de realizar criptografía, sino que tiene los datos ya guardados de forma encriptada (con un criptograma o clave pública) y simplemente se leen. Cuando se realiza un pago, el lector realiza la verificación de la clave pública y si es correcta efectúa el pago. Como vemos, tampoco necesita conectarse a la red para realizar esta verificación, por lo que se ha añadido seguridad sin necesitar de estar conectado con el servidor. Ese sistema impide la modificación de los datos, no obstante es posible clonar enteramente una tarjeta sin ningún problema (copiaremos datos encriptados, pero eso da igual a fin de cuentas).

El segundo sistema, mucho más seguro, es Dynamic Data Authentication (DDA). Este sistema requiere que el chip sea capaz de realizar operaciones criptográficas. Por este motivo las tarjetas con este chip son más caras de emitir, aunque bajo los mandatos de VISA, MasterCard y SEPA, son las más emitidas en Europa desde 2011. La tarjeta en su interior contiene los datos y una clave privada. Cada vez que se realiza la verificación, la tarjeta responde con datos cifrados. Para ello, necesita que el terminal le pase los datos que necesita así como cierto número impredecible o aleatorio. De ese modo, las tarjetas clonadas no podrán responder lo mismo, ya que en realidad no poseen la clave privada del interior del chip. Este sistema permite verificar los PIN de forma segura sin conexión a la red interbancaria.

Flujo de trabajo de DDA

Existe un tercer sistema, denominado CDA o Combined Dynamic Data Authentication. Se trata de una mejora sobre DDA y es que DDA solo realiza la encriptación en el momento de la autorización, dejando el resto de la comunicación abierta. CDA aplica la encriptación a más partes de la comunicación.

RFID-NFC

Hoy en día las tarjetas que se emiten en España cuentan con esta tecnología. Estas tarjetas funcionan siguiendo el protocolo ISO/IEC 14443, en el cuál se definen las etiquetas RFID y los lectores RFID. Las etiquetas, al igual que los chips EMV, no necesitan energía eléctrica por si mismos.

Existen dos tipos de tarjetas contactless, las MSD y las EMV. Las MSD, solo usadas algún tiempo en Estados Unidos no son más que otra manera de leer la información de la banda magnética, con los problemas de seguridad que ya hemos comentado. Las tarjetas EMV sin embargo, siguen los protocolos del chip EMV. En realidad estas tarjetas suelen usar el mismo chip, solo que con dos vías de comunicación: el chip físico, y el RFID. El mayor problema del protocolo RFID original es que no es full-duplex, es decir, solo puede haber comunicación en un sentido. Para solventar este problema nació NFC, que permite comunicaciones bidireccionales. Sobre NFC se puede implementar EMV sin ningún problema.

La tarjeta de N26 es transparente y nos permite ver la antena necesaria para la comunicación

3DSecure

Los pagos online siguieron creciendo después de la introducción del CVV2 y aunque técnicamente está prohibido almacenar el CVV2 en una base de datos sumado al hecho de que no sea obligatorio para una transacción online, el fraude seguía aumentando. Por ello, VISA creó 3D-Secure, un protocolo basado en XML por el que es necesario introducir un código extra en una web propiedad del banco emisor para finalizar el pago. Este código puede ser de un solo uso, enviado por SMS o puede ser un PIN configurado de antemano.

Flujo de trabajo de 3D Secure

En 2016, ante la popularidad de este sistema, el consorcio EMVco lanzó 3DS 2.0, una versión mejorada del sistema, que entre otras cosas puede utilizarse para verificar la identidad de una persona sin necesidad de hacer un pago.

¿Tienes dudas? ¿Quiéres añadir o corregir algo? Usa los comentarios

La entrada Todo lo que debes sobre las tarjetas de crédito, débito y prepago aparece primero en Blog - Adrianistan.eu.

Lunes 24 de julio de 2017

Como hackear cualquier cámara de seguridad

Todo se puede hackear. Es una frase que suelo decir habitualmente. Y las cámaras de seguridad no son un caso a parte. Antes de ponernos como locos vamos con lo básico: Cómo acceder a cámaras de seguridad Un apunte, me refiero a hackear, a acceder a una (en este caso) cámara de seguridad sin necesidad […]

La entrada Como hackear cualquier cámara de seguridad aparece primero en Blog de Informática ✏ Luisi.

Viernes 21 de julio de 2017

BlogDRAKE: Disponible TuningDrake 2.1.7

Lunes 17 de julio de 2017

BlogDRAKE: ¡Por fin! ¡Ha llegado Mageia 6!

Domingo 16 de julio de 2017

BlogDRAKE: Se ha publicado Mageia 6

Sábado 15 de julio de 2017

Gorka Urrutia

Gorka Urrutia
Nideaderedes

Nuevo capítulo del libro POO en PHP: Traits

El libro de programación orientada a objetos en PHP va creciendo poco a poco. Además de otras mejoras ya está disponible el capítulo sobre los Traits en PHP.

¿Qué son los traits?

En PHP no existe la herencia múltiple (una clase no puede tener más que una clase madre) y esa es una limitación importante. Para solucionar los problemas de esta limitación se introdujeron los traits que son una forma de hacer copia/pega sin hacer copia/pega.

Por supuesto, esto de los traits es bastante más complejo y es más largo de explicar. Si quieres descubrir mucho más acerca de los traits te recomienzo echar un vistazo al libro. En él podrás leer cómo se usan los traits, los peligros que tienen, cuándo usarlos, qué diferencias hay entre un trait y la herencia, etc.

Y recuerda que, hasta el 30 de Septiembre de 2017 está a un precio muy rebajado. Aprovecha para conseguir el libro ahora.

Martes 11 de julio de 2017

Raúl González Duque

Raúl González Duque
Linux – Mundo Geek

Ubuntu: la aplicación para Windows

Se está haciendo historia y somos testigos de excepción: el infierno, por fin se ha congelado. Desde hace un tiempo ya era posible ejecutar Linux en Windows, gracias al Subsistema de Windows para Linux, pero ahora Microsoft va un paso más allá anunciando que desde hoy Ubuntu está disponible en la propia Windows Store.

Ubuntu en la tienda de Windows

Si tienes instalada una de las últimas compilaciones para insiders de Windows 10 instalar Ubuntu ahora es tan sencillo como seguir el enlace al sistema operativo en la tienda de Windows y hacer clic sobre el botón “Obtener”.

Lunes 26 de junio de 2017

¿Realmente te conoce? –AdsBlock

Este post nace a través de este enlace Dataselfie, conociendo al Algoritmo de Facebook y su Machine Learning. en el que hablan de como funciona el proceso de la publicidad que te sale en facebook,  a través del tiempo ya has dibujado tu perfil en facebook sea por búsqueda o por likes todo lo que hagas dentro de esa red social te va a salir, luego que ya saben que es lo que te gusta te empiezan a mandar publicidad acorde a ella, nunca se habían realizado esa pregunta ¿Por que me sale esto?. si quieren conocer que facebook sabe mas que ustedes tranquilamente, pueden abrir  este enlace Preferencias Ads en Facebook

El cual con la sesión abierta de facebook, desglosan en Intereses, y veras todo tus gusto, lo que por alguna razón buscaste o le diste por omisión. Ahí te conocerás realmente que es lo que te gusta.

Ya que donaste los datos, que puedo hacer.

Lo mas sensato es darse de baja de una red social donde juegan con tu información. si quieres seguir usándolo lo mas lógico seria usar AdsBlock  que lo puedes instalar en firefox y chrome, no vas a ver mas publicidad pero igual en cualquier momento que abras un enlace vas a empezar a crear nuevamente tu perfil.

Hace años 10 años una persona que respeto me compartió este video sigue vigente creemos que los servicios que usamos son gratis realmente.
https://www.youtube.com/watch?v=6bYLRGS3vFs

 

 

 

 

 

 

 

 

 

Domingo 25 de junio de 2017

José María Morales Vázquez

José María Morales Vázquez
tecnología – Un lugar en el mundo…

Script desatendido para eliminar ficheros antiguos de un servidor ftp

Hace ya un tiempo que dejamos por aquí el “esqueleto” de un script para realizar una conexión y transferencia desatendida a un servidor ftp. La finalidad del mismo era automatizar los backups en nuestro hosting cuando lo que nos proporcionan para ello es este medio. Auxiliar a este tenía uno que eliminaba los backups antiguos, pero nunca llegué a estar demasiado satisfecho de él. Hace poco buscando mejorarlo vi una solución maravillosamente elegante en stackoverflow. El script original es este:

#!/bin/bash
# get a list of files and dates from ftp and remove files older than ndays
ftpsite="ftp.yourserver.com"
ftpuser="loginusername"
ftppass="password"
putdir="/public_ftp/admin/logs"

ndays=7

# work out our cutoff date
MM=`date --date="$ndays days ago" +%b`
DD=`date --date="$ndays days ago" +%d`

echo removing files older than $MM $DD

# get directory listing from remote source
listing=`ftp -i -n $ftpsite <<EOMYF 
user $ftpuser $ftppass
binary
cd $putdir
ls
quit
EOMYF
`
lista=( $listing )

# loop over our files
for ((FNO=0; FNO<${#lista[@]}; FNO+=9));do
  # month (element 5), day (element 6) and filename (element 8)
  #echo Date ${lista[`expr $FNO+5`]} ${lista[`expr $FNO+6`]}          File: ${lista[`expr $FNO+8`]}

  # check the date stamp
  if [ ${lista[`expr $FNO+5`]}=$MM ];
  then
    if [[ ${lista[`expr $FNO+6`]} -lt $DD ]];
    then
      # Remove this file
      echo "Removing ${lista[`expr $FNO+8`]}"
      ftp -i -n $ftpsite <<EOMYF2 
      user $ftpuser $ftppass
      binary
      cd $putdir
      delete ${lista[`expr $FNO+8`]}
      quit
EOMYF2

    fi
  fi
done

Por comentarlo un poco y “ganarnos el pan”, el script tiene tres bloques: el primero de definición de variables que tendrás que personalizar con tus datos (hasta la línea 8 incluida), el segundo en el que se realiza una conexión con el servidor y se obtiene un listado de todos los ficheros que están en el directorio que indicamos (hasta la línea 25) y por último un tercer bloque en el que se realiza el borrado propiamente dicho.

En el primer bloque la variable ndays en la línea 8 define la máxima antigüedad de los ficheros que no se eliminaran (7 días en este caso) y la variable putdir en la 6 el directorio del servidor ftp donde dejamos los archivos. Si, como yo, dejas los backups directamente en el raiz del servidor ftp puedes eliminar (o comentar) las líneas 6, 20 y 42

En el segundo bloque, la línea 14 indica la fecha límite de los ficheros que se conservaran. Todos los anteriores a esta se eliminarán. Si no quieres que aparezca en la salida puedes eliminarla o comentarla.

En el tercer bloque, si quieres hacer pruebas de que el script funciona antes de lanzarlo en modo real, puedes comentar la línea 43. Esto te mostrará en la consola los ficheros que se eliminarían pero no te los borrará realmente con lo cual podrás comprobar que el script hace lo que realmente necesitas. La línea 38 es la que te muestra el fichero que va a borrarse. Puedes eliminarla o comentarla también cuando ya no te interese. Por último, la línea 30 que aparece comentada muestra un listado de todos los ficheros del servidor ftp antes de realizar el borrado. Puedes descomentarla también para evaluar si está trabajando de forma correcta.

Artículo Original: .

Este artículo pertenece a Un lugar en el mundo... Si quieres ver actualizaciones y comentarios interesantes visita el texto original en: Script desatendido para eliminar ficheros antiguos de un servidor ftp || Hospedado en un Cloud VPS de Gigas.

Activar/desactivar registro de usuarios en WordPress

Registro WordPress

La solución es de forma inmediata, dentro del Escritorio (al que accedas administración del WordPress), le vas hacer click en  a Ajustes, Generales y activas o desactiva el checkbox de: Cualquiera puede registrarse. depende para lo que requieras.

Si lo que tienes  problema con usuarios que se registran y en realidad son robots o personas spammers, usa el plugin que mencione anteriormente  http://blog.julioh.com.ve/?p=476 en el cual se hace ocultar la url de wp-admin  otra forma es usando .httpass dentro de los directorios y bloqueando su acceso, o en su momentos podrías saber cual es tu ip para indicarle desde donde te conectas por ejemplo algo así.


order allow,deny
deny from 8.8.8.8
deny from 8.8.8.9
allow from all

Sábado 24 de junio de 2017

Seguridad en WordPress , Garantizar el acceso a wp-admin

WordPress por ser un CMS mas usado pues tienes vulnerabilidades y necesitamos blindarlo en seguridad y que mejor usando plugins para que no tengas una mala experiencia.

Esta es una de esas en la cual la ruta  ../wp-admin/ la remplazas para evitar acceso a ella.

En el caso el plugin WPS Hide Login no vas a eliminar /wp-login.php o /wp-admin , pero si lo va remplazar para no sea visible y colocaremos una url que solo sabremos nosotros.

Lo buscamos  WPS Hide Login en plugins  haz clic en Instalar y posteriormente en Activar.

En el plugin accede a Ajustes, Generales y establece la palabra de paso que sustituirá al clásico:

wp-admin por no-vasaentrar guardas los cambios y pruebas.

Configuración del plugin

Cuando intentas acceder a  http://tu-dominio.com/wp-admin
Te dará un 404 not found

De igual forma  también para  /wp-login.php no existen.

 

Prueba de acceso incorrecta

Si por el contrario pones la url de tu dominio con la palabra de paso establecida:

http://tu-dominio.com/?no-vasaentrar

Te va a salir tu panel para acceder, que se busca con esto, evitar ataques de diccionario, evitar suscripciones y proteger tu CMS de la mejor manera.

si por casualidad no te acuerdas de la url, puedes borrar el plugin en la carpeta wp-content y vuelve a la ruta original

 

Jueves 15 de junio de 2017

Gorka Urrutia

Gorka Urrutia
Nideaderedes

Ya está disponible mi libro de programación orientada a objetos en PHP

Con un pequeño retraso pero ya está disponible mi libro de programación orientada a objetos en PHP.

En mi humilde opinión es un libro que merece la pena. En él comparto muchos años de experiencia desarrollando en PHP. Todo lo que he aprendido, lo que he sufrido y lo que me he divertido programando está reflejado en sus páginas.

Está todavía en fase “Beta” ¿qué quiere decir eso? Que todavía no está terminado y puede haberse colado algún errorcillo. Para compensarlo el precio es mucho más bajo de lo que será el precio definitivo. Pero “sin terminar” no quiere decir que tenga pocas páginas, son ya casi 120 páginas de pura sabiduría :-D.

El fatídico logo

Sábado 10 de junio de 2017

Lenin Hernandez

Lenin Hernandez
Leninmhs

Como instalar la ultima versión de Firefox en Debian Jessie, vía APT

En esta breve entrada lograras tener la ultima versión del navegador web Firefox en tu sistema Debian. Lo instalaremos agregando el repositorio de firefox para Debian, con lo cual podremos mas adelante volver a actualizar y obtener la versión mas reciente cuando pase algo de tiempo. Pasos para instalar ultima versión de Firefox en Debian … Sigue leyendo Como instalar la ultima versión de Firefox en Debian Jessie, vía APT

Miércoles 31 de mayo de 2017

Gorka Urrutia

Gorka Urrutia
Nideaderedes

Los capítulos del libro de PHP orientado a objetos

Acabo de publicar el listado provisional de capítulos del libro programación orientada a objetos en php. Más o menos serán éstos:

  1. Herramientas
  2. El estándar PSR
  3. Introducción express a PHP
  4. Programación orientada a objetos
  5. Un ejemplo paso a paso
  6. Encapsulación
  7. Herencia
  8. Introducción al desarrollo guiado por pruebas
  9. Interfaces
  10. Clases abstractas
  11. Introducción a Git
  12. Términos y definiciones

Es posible que los reorganice pero seguramente éste será el orden final. Todavía faltan algunos más para terminar el libro.

Lunes 22 de mayo de 2017

Como hacer una foto con la webcam de forma programada en Ubuntu

Continuando con el artículo que escribí hace unos días sobre xbacklight y backlight-indicator, hoy le toca a como hacer una foto con la webcam.

El funcionamiento de backlight-indicator es muy sencillo. Esta aplicación hace una foto con la webcam y la procesa para calcular el brillo. Una vez calculado el brillo lo configura para tu pantalla.

Ahora bien, ¿Cómo podemos hacer una foto con la webcam?…

Como hacer de forma programada una foto con la webcam en Ubuntu

Hacer una foto con la webcam

Hasta la fecha, en backlight-indicator utilizaba GStreamer, para tomar una foto con la webcam. Esto tenía un problema, y es que necesitaba guardar la imagen en el disco duro para luego procesarla.

Hace poco, me topé con python-v4l2capture, un proyecto en GitHub que se dedicaba única y exclusivamente a esto. Es decir, a capturar vídeo con video4linux2, una API de captura de vídeo en Linux.

El uso y funcionamiento es muy sencillo, y permite integrarlo fácilmente con cualquier aplicación en Python. Y aquí es donde puedes sacarle un importante partido…

Automatización de fotografías

Un uso muy interesante de esta sencilla utilidad es el de una foto con la webcam… (evidentemente), pero esto lo puedes automatizar por ejemplo para que se tome una foto cada vez que se inicie una sesión en tu equipo, de forma que puedes rastrear quien lo utiliza. Es decir, tendrías claras pruebas…

Vamos a ello…

Primero realizaremos un sencillo script en Python, que puedes descargar desde la propia página de GitHub, captura una foto

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

from PIL import Image
import select
import time
import datetime
import v4l2capture

video = v4l2capture.Video_device("/dev/video0")
size_x, size_y = video.set_format(1280, 1024)
video.create_buffers(1)
video.start()
time.sleep(2)
video.queue_all_buffers()
select.select((video,), (), ())
image_data = video.read()
video.close()
image = Image.frombytes("RGB", (size_x, size_y), image_data)
image.save('/tmp/{0}.jpg'.format(
    datetime.datetime.now().strftime('%Y%m%dT%H%M%S')))

Lo primero es darle permisos de ejecución. Para ello, ejecutaremos la siguiente orden,

chmod +x take_photo.py

Luego lo pondremos en el algún sitio accesible, por ejemplo,

cp take_photo.py /usr/local/bin

Ahora vamos a realizar un sencillo lanzador que colocaremos en el lugar adecuado, de forma que cada vez que alguien inicie nuestro equipo, realice la captura con la webcam. Para ello crearemos el siguiente lanzador ~/.config/autostart/takephoto.desktop,

    [Desktop Entry]
    Type=Application
    Exec=/usr/local/bin/take_photo.py
    Hidden=true
    NoDisplay=true
    X-GNOME-Autostart-enabled=true
    X-GNOME-Autostart-Delay=2

De esta manera, cada vez que se inicie tue equipo y transcurridos 2 segundos se realizará una captura de pantalla… guardando una prueba de quien estaba utilizando el equipo. Evidentemente, puedes modificar el momento en el que se realiza la captura

La imagen la guarda en /tmp con el formato YYYMMDDThhmmss.jpg

Otras interesantes utilidades

Además de esto, puedes darle mas utilidades a esta aplicación. Por ejemplo si tienes una segunda webcam y quieres que tome una imagen cada cierto tiempo, o cualquier otra idea similar. Son utilidades muy sencillas pero que pueden ahorrarte mucho trabajo.

Instalación

Antes de poder utilizar esta aplicación, necesitaremos instalar la biblioteca que nos da acceso a su uso. Esta biblioteca no se encuentra en los repositorios oficiales de Ubuntu, pero la puedes instalar fácilmente ejecutando las siguientes órdenes en un terminal,

sudo add-apt-repository atareao/atareao
sudo apt update
sudo apt install python3-v4l2capture

La entrada Como hacer una foto con la webcam de forma programada en Ubuntu aparece primero en El atareao.

Lunes 15 de mayo de 2017

Varios sistemas Linux en un PC, varias distribuciones y/o versiones

Uno de los problemas que me encuentro con el desarrollo de aplicaciones para Ubuntu es que tengo que ir probándola en las diferentes versiones que aparecen. Esto me obliga a tener una o dos distribuciones instaladas en mi equipo, porque en ocasiones, virtualizarlas no es suficiente. Desde hace tiempo, utilizo una partición donde guardo documentos. Sin embargo, esto no es suficiente. Y todo ello ha dado lugar este artículo como tener varios sistemas Linux en un PC y no morir en el intento.

El otro día mientras escuchaba un podcast de Yoyo en Salmorejo Geek sobre como guardaba sus documentos personales, me decidí a darle una vuelta mas al sistema, y esto es lo que te voy a intentar explicar a continuación.

Varios sistemas Linux en un PC, varias distribuciones y/o versiones. Portada.

Varios sistemas Linux en un PC

Antes de nada y para que nadie se lleve a engaño, indicar que todos los sistemas Linux que instalo en mi equipo son Ubuntu. Esto no quita que esta misma solución se pueda aplicar a otras distribuciones.

Desarrollo de aplicaciones en Ubuntu

Como comentaba en la introducción, el desarrollo de aplicaciones para Ubuntu se encuentra con la necesidad de revisar que cada aplicación funciona correctamente en cada una de las versiones que se liberan. Es decir, aunque yo desarrollé my-weather-indicator para Ubuntu 10.10 Maverick Meerkat, ahora en la versión 17.04 Zesty Zapus, necesito probarla también.

Esto es así, porque de unas versiones a otras cambian las librerías que utilizo en la aplicación, cambia el propio entorno de escritorio y cambia GNOME, lo que en muchas ocasiones obliga a un rediseño de la aplicación.

En otros casos…

No solo el desarrollo de aplicaciones lleva a tener varios sistemas Linux en un PC. Es posible que seas un distrohopper, es decir, uno de los tantos de usuarios Linux que disfrutan probando cada una de las distribuciones y versiones que aparecen en el extenso universo Linux.

Otra razón que se me ocurre, aunque seguro que hay cientos de razones mas, es que simplemente para según que trabajo estés mejor en un entorno de escritorio y otro.

Centralización

El problema de tener varios sistemas Linux en un PC (o no), es que en cada uno de ellos tienes documentos, y es probable que estando trabajando en un sistema quieras utilizar un documento que esté en otro sistema.

Existen diferentes soluciones para resolver esto, desde utilizar la misma partición /home para todos, a utilizar una partición independiente donde situar todos tus documentos.

El problema de la partición /home común son los archivos de configuración que puede ser que te generen problemas en un sistema operativo o en otro, por estar utilizando diferentes versiones.

Sin embargo, hay una solución muy simple, con la que no notarás el cambio de un Linux a otro… los enlaces simbólicos.

Y ¿porque no enlazarlo todo?. Pues la razón para esto radica en que al cambiar de versión, la configuración de un escritorio puede entorpecer en otra instalación…

La propuesta para resolver como tener varios sistemas Linux en un PC

Directorios

Mi propuesta es bastante simple. Cada uno de los Linux que tienes instalados en tu equipo, tiene sus directorios ~\Escritorio, ~\Documentos, ~\Descargas, etc… Elimina todos esos directorios y haz un enlace simbólico al que se encuentra en tu partición común.

Es decir, si tu partición común la montas en /datos en esta partición común tendrás un directorio que se llamará /datos/Escritorio de forma, que cada uno de los ~\Escritorio de todos los Linux instalados en tu equipo apuntaran a /datos/Escritorio.

De esta manera cuando entres en cualquiera de los sistemas Linux instalados y te enfrentes al escritorio, encontrarás exactamente lo mismo.

Esto mismo lo podemos hacer con el resto de directorios…

Configuraciones

Sin embargo, podemos ir mas lejos todavía… En mi caso particular, utilizo GIMP e Inkscape para hacer las imágenes que ves en este sitio y para mi trabajo.

Estas aplicaciones no suelen cambiar de versión tan frecuentemente como Ubuntu, con lo que su archivo de configuración, puede permanecer inalterado durante años, sin que esto afecte a las distintas versiones.

Igual que hemos hecho con los directorios, también podemos hacer con los archivos de configuración. Es decir, podemos hacer un enlace simbólico desde el directorio de configuración o archivo de configuración que se ubica en ~/.config/GIMP/ a /datos/.config/GIMP.

Siguiendo este procedimiento nos encontraremos que aunque entremos en diferentes Linux en nuestro equipo, y trabajemos con diferentes GIMP, la apariencia de cada uno de ellos siempre será la misma. Siempre y cuando tengamos instalados los mismos complementos, etc.

Esto nos llevará a ahorrar mucho tiempo y ser más productivos.

Una solución para tener varios sistemas Linux en un PC

Esta solución funciona muy bien, sin embargo, tiene un pequeño inconveniente. Cada vez que instales una nueva distribución o una nueva versión, tienes que realizar todos estos enlaces…

Para darle una solución a este problema he creado un sencillo script que realiza estos enlaces simbólicos, de forma que cada vez que instalo una nueva distribución o versión solo tengo que ejecutar el script, que por supuesto está instalado en /datos.

Este script está en GitHub. Puedes utilizarlo fácilmente, descargarlo, compartirlo, contribuir o lo que consideres.

Una indicación, en las primeras líneas de linker.py tienes el directorio de origen que no habría que modificarlo, y el directorio de destino (este a lo mejor si que consideras en borrarlo).

A continuación tienes todos los directorios a enlazar. Por supuesto que lo que enlazas es a~/ seguido del directorio o archivo que consideres. El funcionamiento es muy sencillo. Lo que hace es mirar si en /datos existe el directorio de origen, si existe borra, el directorio de tu directorio de inicio y realiza el enlace simbólico. Si en /datos no existe, primero copia el de tu directorio de inicio y luego lo enlaza.

Conclusiones

La solución de tener todo en un directorio aparte es muy buena solución tal y como lo comentaba Yoyo. Ahora, completado esto con los enlaces simbólicos, el funcionamiento es impecable. De esta manera, yo paso de una distribución, versión o instalación a otra, sin echar nada de menos. Muy recomendable.

La entrada Varios sistemas Linux en un PC, varias distribuciones y/o versiones aparece primero en El atareao.

Lenin Hernandez

Lenin Hernandez
Leninmhs

Como instalar el Antivirus para Linux “Comodo” en Debian 8 (Jessie)

¿Por qué el Antivirus Comodo? El Antivirus Comodo para Linux (CAVL) ofrece la misma protección antivirus que el mismo software para Windows con el beneficio añadido de un sistema anti-spam totalmente configurable. Con los escáneres de virus a la vista y bajo acceso, CAVL también utiliza el análisis de comportamiento basado en la nube de … Sigue leyendo Como instalar el Antivirus para Linux “Comodo” en Debian 8 (Jessie)

Sábado 06 de mayo de 2017

Raúl González Duque

Raúl González Duque
Linux – Mundo Geek

Linux en Windows: el Subsistema de Windows para Linux

El Subsistema de Windows para Linux o WSL es una nueva característica de Windows 10 que permite ejecutar binarios ELF64 de Linux directamente en Windows. Aunque el funcionamiento es parecido, no es exactamente una máquina virtual; es una nueva alternativa que abre montones de posibilidades, debido a una mucho mayor integración: realmente es casi como si estuviéramos ejecutando Linux en Windows, con un único sistema operativo común para las aplicaciones Windows y Linux.

Este proyecto, como decimos, permite utilizar herramientas nativas de Linux en Windows, desde una simple consola bash, a programas como vim, awk o git, ¡e incluso un entorno gráfico alternativo completo! ¿Quieres probarlo? ¡Pues sigue estas instrucciones!

Prerequisitos

Necesitas tener instalada la versión de 64 bits de Windows y tener actualizado el sistema a la compilación 14393 de Windows 10 Anniversary Update o superior.

Activar el Modo de programador

Pulsa Windows + I, y selecciona Actualización y seguridad -> Para programadores. Marca la opción de “Modo de programador”

Activar el Modo de programador de Windows 10

Instalar el Subsistema de Windows para Linux

Pulsa Windows + R, y escribe “optionalfeatures” para abrir el diálogo de “Activar o desactivar las características de Windows”. Selecciona “Subsistema de Windows para Linux (beta)”. Una vez instalado Windows te pedirá que reinicies el ordenador.

Activar el Modo de programador de Windows 10

¡Instalar Ubuntu en Windows!

Pulsa Windows + R, y ejecuta el comando “bash“. Te pedirá que aceptes la licencia de Canonical, la empresa detrás de Ubuntu, y descargará e instalará la distribución de Ubuntu Linux. Durante el proceso de instalación te preguntará si quieres establecer la configuración regional a la misma que tenga Windows (probablemente) y te pedirá un nombre de usuario y contraseña para crear una nueva cuenta.

Rock and roll

A partir de ahora ya tienes un sistema Linux totalmente funcional (aunque sin interfaz gráfica), con los comandos y el funcionamiento habitual de una distro Linux. Para iniciar la consola de Linux en cualquier momento, de nuevo pulsa Windows + R y ejecuta el comando bash.

Si queremos actualizar los paquetes del sistema que hemos instalado, al estar basado en Ubuntu, escribiríamos los siguientes comandos:

sudo apt update
sudo apt upgrade

Nuestro nuevo sistema tiene los discos de Windows montados en /mnt/, por lo que para listar los archivos en C:, por ejemplo, escribiríamos el siguiente comando:

ls /mnt/c

Para buscar un programa en los repositorios:

apt search término1 término2 término3

Para instalar un programa desde repositorio:

sudo apt install programa

Desinstalar Linux

Si en algún momento quieres desinstalar WSL, con un poco de suerte, porque prefieras instalar un Linux completo, basta con escribir el siguiente comando en la línea de comandos de Windows:

lxrun /uninstall /full /y

Sábado 29 de abril de 2017

Lenin Hernandez

Lenin Hernandez
Leninmhs

Como integrar GIT con el gestor de archivos Nautilus y Nemo – RabbitVCS

Cuando se es usuario cotidiano de software para control de versiones, siempre desearemos tener a disposición herramientas que nos faciliten y hagan mas evidente el trabajo. Es común conocer los comandos de tu control de versiones (GIT, SVN, Hg, etc…), contar con un cliente de control de versiones incorporado en tu editor de código favorito, … Sigue leyendo Como integrar GIT con el gestor de archivos Nautilus y Nemo – RabbitVCS