Lunes 22 de enero de 2018

TutorialesLinux.com: Borrar un volumegroup y extender el principal
TutorialesLinux.com: Cambiar IP de forma masiva en Plesk
Baltasar Ortega

Baltasar Ortega
KDE Blog

Lanzado digiKam 5.8, ahora con exportación a UPNP/DLNA

¿He dicho alguna vez que no hay mejor aplicación para gestionar fotografías que digiKam? La respuesta es si, en cada una de las entradas en las que anuncio una versión de este increíble programa. Y, además, digiKam no deja de evolucionar, el mejor síntoma de que goza de buena salud. El pasado 14 de enero fue lanzado digiKam 5.8, que ahora viene con exportación a UPNP/DLNA. Un suma y sigue en una Killer App de KDE.

 

Lanzado digiKam 5.8, ahora con exportación a UPNP/DLNA

La primera gran actualización de digiKam de 2018 viene con la versión 5.8, una versión que viene con mucho trabajo “bajo el capó”, es decir, resolución de errores y optimizaciones que no aparentemente un usuario estándar apreciará pero sin saberlo.

No obstante, también hay algunas novedades como las siguientes:

  • Mejoras en las versiones empaquetadas de digiKam, tanto para Linux con AppImage, Windows con NSIS y MacOs con Packages.
  • Mejoras en el soporte de la base de datos Mysql.
  • Añadida la exportación de las colecciones de imágenes vía UPNP/DLNA para los dispositivos compatibles. Muy útil para usuarios que tengan una red local de ordenadores y quieran compartir las imágenes desde uno central. Hay que destacar que esta funcionalidad fue desarrollada en los Sprints de Randa, que como se puede comprobar dan sus frutos.
  • Después de implementar la exportación de imágenes a Flickr y Imgur llega el turno al servicio privativo DropBox, una opción más para facilitar la vida a los usuarios.

Lanzado digiKam 5.8, ahora con exportación a UPNP/DLNA

Todo esto junto a la resolución de unos 231 errores resueltos hacen de digiKam 5.8 una actualización muy recomendada para todos loa amantes de la fotografía o a aquellos que les guste tener  su colección de imágenes ordenada

Puedes descargar el código fuente de digiKam software collection source code, los instaladores para OSX (>= 10.8) y para Windows 32/64 bits en este repositorio.

Más información: digiKam

Domingo 21 de enero de 2018

Baltasar Ortega

Baltasar Ortega
KDE Blog

Lanzado Wine 3.0, mejorando el no emulador de Windows

Una de las primeras preguntas que realizan los que dan el salto al mundo GNU/Linux es: podré ejecutar mis aplicaciones Windows. La primera reacción del veterano es que prácticamente no es necesario pero a continuación siempre viene a la mente este emulador. Es por ello que es una gran noticia que ha sido lanzado Wine 3.0, lo que significa un gran salto para este no emulador de Windows.

Lanzado Wine 3.0, mejorando el no emulador de Windows

Lanzado Wine 3.0, mejorando el no emulador de WindowsDebo confesar que fue una de las primeras cosas que descubrí al iniciarme en el GNU/Linux: con Wine podía ejecutar aplicaciones Windows. O al menos, lo intentaba y en ocasiones lo conseguía.

Pero rápidamente me fui olvidando de él para centrarme en el uso de aplicaciones libres para casi todas mis necesidades diarias. DE esta forma descubrí que eran mejores y que evolucionaban a mayor velocidad que las privativas.

No obstante, si había un campo donde seguía utilizando Wine, aunque solo fuera por curiosidad: el mundo de los videojuegos. De hecho, durante poco más de un año fui jugador del famoso World of Warcraft utilizando Wine en mi openSUSE sin problemas de rendimiento o molestos errores.

Es más, algunos años más tarde, durante un tiempo me dediqué a ver cómo se comportaba Wine con multitud de juegos comerciales, llegando a la conclusión de que la gran mayoría de ellos funcionaban sin dificultad.

Así que estamos con una aplicación que cumple con lo que promete, aunque requiera ciertos conocimientos sobre el funcionamiento de nuestro sistema y del sistema privativo cuando las cosas no salen a la primera.

Así que estoy seguro que Wine 3.0 será recibida con entusiasmo por sus seguidores ya que mejorará el funcionamiento de las aplicaciones que ya funcionan y haré que muchas otras funcionen.

De este modo si leemos el anuncio oficial, nos encontraremos con bastantes novedades, aunque sin duda las más destacadas según los propios desarrolladores son las siguientes:

  • Soporte para Direct3D 10 y 11.
  • Soporte para Direct3D CSMT (flujo de comandos).
  • Se ha incluido un driver gráfico para Android.
  • Se mejora el soporte para DirectWrite y Direct2D.

 

Más información: Wine | Softpedia News | Muy Linux | Genbeta

Sábado 20 de enero de 2018

Baltasar Ortega

Baltasar Ortega
KDE Blog

Clementine, un reproductor de audio para KDE

Por mucho que me cueste admitirlo Amarok, una de mis aplicaciones fetiche de KDE, ha pasado a mejor vida. Por razones que desconozco, hace mucho tiempo que no se actualiza y parece que no lo va a hacer a corto plazo. Es hora de buscar sustitutos para mi escritorio Plasma y de momento el que ocupa su lugar es Clementine, un reproductor de audio para KDE que hereda el espíritu del gran Amarok 1.4 y presenta una interfaz limpia, rápida y funcional.

Clementine, un reproductor de audio para KDE

Aunque existen un par de proyectos potentes (Elisa y Babe) que vienen a cubrir el hueco dejado por Amarok, de momento es Clementine el que de momento se ha asentado en mi KDE Neon para  convertirse en mi reproductor de audio por defecto. Sinceramente no creo que sea por mucho tiempo pero los otros todavía no están lo suficientemente maduros.

Y es Clementina, nacida justamente como contrapartida a Amarok, destaca por su rapidez y su sencilla interfaz gráfica. Está en los repositorios de mi KDE Neon, es multiplataforma y utiliza todavía qt 4. Las dos primeras son buenas cosas, lo último no tanto.

Clementine, un reproductor de audio para KDE

No obstante, su catálogo de funcionalidades es asombrosa. De esta forma, según su página web, sus funciones son las siguientes:

En definitiva, un excelente reproductor de audio que aunque cubre expectativas tiene ante si un gran reto: actualizarse a Qt5 en su versión 2.0. En mi sincera opinión, si no lo hace pronto se verá superado por los aspirantes.

Juego de la Vida de Conway en C# con interfaz gráfica

Hoy os traigo un proyecto que realizamos Daniel Bazaco y yo. Se trata del clásico de juego de la vida, esta vez hecho en C# con .NET Core y Avalonia como librería gráfica. Funciona tanto en Windows como en GNU/Linux. El programa tiene la peculiaridad de que tiene implementados dos algoritmos totalmente distintos para el juego de la vida:

  • El clásico algoritmo de la matriz infinita.
  • Un algoritmo usando Quadtrees y tablas de dispersión optimizadas, que permite tener patrones precalculados.

La velocidad de este segundo algoritmo es muy superior a la del primero, aunque he de confesar que este segundo algoritmo no resulta evidente y tiene una desventaja en el modo gráfico. Este segundo algoritmo avanza a trompicones, por lo que no es posible realizar una animación gráfica idónea, a no ser que lo modifiquemos ligeramente. Este tercer algoritmo que es una modificación del segundo, es más lento, pero permite ser mostrado por la pantalla.

El programa admite ficheros tanto en formato estándar RLE como un formato propio, que hemos llamado Vaca. Puedes pasarte por la wiki del juego de la vida y probar los ficheros RLE que encuentres. No obstante, hay que tener cuidado, pues algunos ficheros RLE no son del juego de la vida, sino de otros juegos con normas ligeramente modificadas.

¿En qué consiste el Juego de la Vida?

El juego de la vida es un autómata celular de dos dimensiones. También se le ha categorizado como juego para cero jugadores.

El juego tiene unas normas sencillas. Cada celda puede estar viva o muerta. En la siguiente evolución, las celdas pueden pasar a vivas o muertas siguiendo este esquema:

  • Una célula muerta con exactamente 3 células vecinas vivas “nace” (es decir, al turno siguiente estará viva).
  • Una célula viva con 2 o 3 células vecinas vivas sigue viva, en otro caso muere o permanece muerta (por “soledad” o “superpoblación”).

Unas condiciones de partida determinadas podrán desencaminar comportamientos complejos y emergentes muy interesantes como las pistolas de gliders.

Uso

Pantalla de inicio de Conway

Desde aquí podemos dar a Nuevo patrón o Cargar patrón. Si le damos a Nuevo Patrón tendremos una matriz vacía y limpia. Podemos hacer click con el ratón para ir activando/desactivando las casillas. Puedes usar las teclas W, A, S y D o las flechas en pantalla para moverte por el universo infinito de Conway.

Una vez lo tengamos podemos guardarlo para no tener que volver a dibujarlo. Otra opción es cargar un patrón de la lista. Este programa admite formato RLE y Vaca, pero solo guarda archivos en formato Vaca.

Para ejecutar el juego de la vida hay tres botones importantes. El primero es Ejecutar, que ejecuta el juego de la vida indefinidamente. Se para cuando pulsamos Parar (el mismo botón).

El otro es Siguiente, que nos permite avanzar de iteración en iteración manualmente, muy interesante para observar al detalle ciertos patrones. Por otro lado tenemos Iterar N veces, que permite iterar N veces y que sirve para pruebas de rendimiento. Hay que tener en cuenta que tanto Siguiente como Iterar N veces funcionan un poco distinto con el algoritmo Quadtree (el activado por defecto), ya que este algoritmo hace varias evoluciones de golpe, para ser todavía más rápido. La parte mala es que no es posible ver en detalle cada algoritmo.

Algoritmo Matriz
Algoritmo Quadtree

Línea de comandos

Es posible ejecutar el juego de la vida en línea de comandos. Este modo permite cargar un archivo Vaca o RLE y ejecutarlo N iteraciones. Al finalizar se muestran estadísticas y se permite guardar el resultado o mostrarlo por pantalla con caracteres ASCII.

Hay dos parámetros, -i para indicar el fichero de entrada y -n para indicar las iteraciones a calcular.

Algoritmo Quadtree

¿Cómo funciona el algoritmo quadtree que tanto mejora el rendimiento del juego de la vida? Siendo sinceros, no es algoritmo sencillo o evidente. Su nombre más correcto es algoritmo Hashlife y fue descrito por Bill Gosper en los laboratorios de investigación de Xerox Palo Alto.

La idea básica es que muchas veces en el juego de la vida nos encontramos con patrones que se van repitiendo periódicamente y grandes zonas vacías.

Para ello recurre a un almacén de cuadrantes. Y es que ahora el universo ya no es una matriz infinita, sino un cuadrante. Y cada cuadrante tiene cuatro cuadrantes hijos (noroeste, noreste, suroeste y sureste), así hasta llegar al cuadrante mínimo ya no tiene hijos sino que es una celda viva o muerta. Esto evidentemente pone limitaciones al tamaño del universo, que será siempre potencia de dos.

El almacén es una tabla hash, pero no una corriente tipo HashMap de Java o Dictionary de C# sino que toma 4 elementos como índice, cuatro subcuadrantes. Si existe un elemento cuyos cuatro subcuadrantes son iguales (no se comprueba la igualdad exactamente, sería muy lento), se devuelve la siguiente iteración del cuadrante del almacén que cumple esos requisitos. De este modo no hace falta calcular los cuadrantes nada más que la primera vez que el programa se encontró con ellos.

Este sistema consume más memoria, pero mejora de forma sustancial la velocidad de ejecución. El algoritmo luego tiene bastantes más detalles (el diablo está en los detalles), pero esa es la idea principal, no calcular los cuadrantes más que una sola vez.

Descargar Conway

Podéis descargar Conway desde GitHub y compilarlo en Windows y GNU/Linux (Mac no está probado pero en principio funcionaría), con .NET Core 2.0 instalado.

Conway en GitHub

 

 

La entrada Juego de la Vida de Conway en C# con interfaz gráfica aparece primero en Blog - Adrianistan.eu.

Viernes 19 de enero de 2018

Cheatsheet de Pandas

He encontrado esta cheatsheet en formato PDF de cómo manejar Pandas, la cuál es muy interesante y que os dejo aquí.Pandas_Cheat_Sheet

Agradecimientos a Irv Lusting que se ha tomado la molestia de hacerla

La entrada Cheatsheet de Pandas aparece primero en Blog - Adrianistan.eu.

Jueves 18 de enero de 2018

Versalitas y definiciones en WordPress

A menos que tengamos un sitio propio en el cual seamos libres de instalar complementos y tal, es poco lo que podemos hacer a la hora de obtener formatos «extraños» en nuestro sitio WordPress. Pero poco no es sinónimo de nada, sobre todo si estamos dispuestos a escribir un poco de código HTML. Luego de […]
Bruno Exposito

Bruno Exposito
The Linux Alchemist

Comando chown – Cambiar el propietario

El comando chown (change owner) permite modificar el dueño de uno o varios ficheros o carpetas.

Está instalados en todas las distribuciones GNU/Linux, dentro del paquete coreutils.

Puedes consultar el listado de usuarios en el fichero /etc/passwd usando el siguiente comando:

 cat /etc/passwd | cut -d ':' -f1

 

chown

Sintaxis de chown

sudo chown {{dueño}}:{{grupo}} {{nuevodueño}} {{fichero-o-carpeta}}

Opciones de chown

-c, –changes Igual que la opción “verbose” pero solo si hay cambios
-f, –silent, –quiet Omite la mayoría de los mensajes de error
-v, –verbose Muestra el resultado de cada fichero procesado
–dereference Afecta a la referencia del enlace simbólico, en lugar del enlace simbólico en si (opción por defecto).
-h, –no-dereference Afecta al enlace simbólico, en lugar de la referencia a la que apunta.
–from=DUEÑO_ACTUAL:GRUPO_ACTUAL Cambia el dueño y/o grupo del fichero solo si el actual dueño y/o grupo coincide con el especificado.
Cualquiera de los dos puede ser omitido.
–no-preserve-root No trata “/” de manera especial (por defecto)
–preserve-root Falla al intentar operar recursivamente sobre “/”
–reference=RFILE Cambia la propiedad de file a la del fichero rfile.
-R, –recursive Se ejecuta sobre ficheros y directorios recursivamente
-H *Si es un enlace simbólico a un directorio, entra en el.
-L *Atraviesa todos los enlaces simbólicos a directorios que encuentre.
-P *No atravesar enlaces simbólicos (por defecto)
-v, –verbose Muestra el resultado de cada fichero procesado
–help Muestra la ayuda
–version Muestra la versión y licencia

* Se utiliza junto con el modificador -R

Cambiar el dueño de un fichero

Sintaxis

sudo chown {{usuario}} {{fichero}}

Ejemplos

sudo chown jose documento.txt

El fichero documento.txt que está dentro del directorio actual pasa ser propiedad del usuario jose.

sudo chown juan /home/bruno/Documentos/Reporte.pdf

El fichero Reporte.pdf pasa a ser propiedad del usuario juan, con independencia del directorio en el que te encuentres.

sudo chown pedro ~/Imágenes/foto.jpg

El fichero foto.jpg dentro de /home/TuUsuario/Imágenes pasa a ser propiedad de pedro.

sudo chown francisco “/home/bruno/Documentos/fichero con espacios.odt”

El fichero “fichero con espacios.odt” pasa a ser propiedad de francisco. Si el fichero o alguna carpeta tienen espacios debe estar entrecomillado.

Cambiar el dueño de todos los ficheros recursivamente

Sintaxis

sudo chown -R {{usuario}} {{carpeta}}

Ejemplos

sudo chown -R juan Imágenes

La carpeta Imágenes, y todos los ficheros/carpetas que están dentro (-R) pasan a ser propiedad de juan.

sudo chown -R jose “/home/bruno/Mis Imágenes”

La carpeta Mis Imágenes y todo su contenido pasa a ser propiedad de jose

sudo chown -R vicente ~/Imágenes

Mi carpeta /home/MiUsuario/Imágenes y todo su contenido pasa a ser propiedad de vicente.

Cambiar el dueño de todos los ficheros y carpetas del directorio actual que pertenecen a un determinado usuario.

Sintaxis

 sudo chown --from={{dueñoactual}} {{nuevodueño}} *

Ejemplos

sudo chown –from=jose bruno *

Todos el contenido del directorio actual que pertenezca a jose pasa a ser propiedad de bruno.

sudo chown –from=bruno fernando *

Todo con contenido del directorio actual propiedad de bruno pasa a ser propiedad de fernando.

Cambiar recursivamente el dueño de todos los ficheros y carpetas del directorio actual que pertenecen a un determinado usuario.

Sintaxis

 sudo chown -R --from={{dueñoactual}} {{nuevodueño}} {{carpeta}}

Ejemplos

sudo chown -R –from=jose bruno Documentos

Todos los fichero y directorios dentro de la carpeta Documentos (-R) que eran propiedad de jose pertenecen ahora a bruno.

sudo chown -R –from=juan bruno /home/juan/

Todos los ficheros y directorios dentro de /home/juan (-R) que eran propiedad de juan pertenecen ahora a bruno.

sudo chown -R –from=vicente jose .

Todos los ficheros y directorios del directorio actual (.) que eran propiedad de vicente pertenecen ahora a jose.

Cambia el dueño de todo el contenido de una carpeta si el actual dueño y grupo coincide con el especificado.

Sintaxis:

sudo chown -R --from={{dueño}}:{{grupo}} {{nuevodueño}} {{carpeta}}

Ejemplos:

sudo chown -R –from=juan:consultores javi Imágenes

La carpeta Imágenes y su contenido, cuyo dueño es juan y pertenece al grupo consultores es ahora propiedad de javi.

sudo chown -R –from=bruno:administradores paco ~

Tu carpeta /home/TuUsuario (~) y su contenido, propiedad del usuario bruno y que pertenece al grupo administradores pasa a ser propiedad de paco.

sudo chown -R –from=bruno:administradores jose /home/bruno

El directorio /home/bruno y su contenido,

Búsquedas complejas: find + chown

Para búsquedas mas complejas es posible usar el comando chown con find, ya que find permite realizar búsquedas por nombre, fecha, tipo, tamaño, etc

sudo find . -iname “*.txt” -exec chown bruno {} \;

Busca todos los archivos con extensión txt y les cambia el propietario a bruno.

sudo find . -type d -exec chown bruno {} \;

Busca todos los directorios (-type d) y les cambia el dueño a bruno.

Miércoles 17 de enero de 2018

Estadística en Python: ajustar datos a una distribución (parte VII)

Ya hemos visto con anterioridad que existen modelos que nos hacen la vida más sencilla. Sin embargo, en esos modelos conocíamos ciertos datos de antemano. ¿Qué pasa si tenemos datos y queremos ver si podemos estar ante un modelo de los ya definidos?

Este tipo de ajuste es muy interesante, ya que nos permite saber si los datos en bruto pueden parecerse a los modelos de Normal u otros y aprovecharlo.

Ajuste de datos a una distribución

Para ajustar datos a una distribución, todas las distribuciones continuas de SciPy cuentan con la función fit. Fit nos devuelve los parámetros con los que ajusta nuestros datos al modelo. ¡Ojo, no nos avisa si es un buen ajuste o no!

Ejemplo: Queremos saber si la altura de los hombres adultos del pueblo de Garray sigue una distribución normal. Para ello tomamos una muestra de 80 alturas de hombres adultos en Garray.
Los datos los tenemos en este CSV, cada altura en una línea:
Altura
180.55743416791302
159.4830930711535
175.54566032406794
149.06378740901533
140.35494067172635
146.65963134242543
171.34024710764376
140.11601629465872
175.6026441151595
158.00860559393507
122.53612034588375
116.10055909040616
152.89225061770068
148.31372767763455
111.17487190927599
160.18952563680827
151.8729737480722
141.50350042949614
165.2379297612276
150.75979657877465
171.5257501059296
157.97922034080895
159.60144363114716
152.52036681430164
172.0678524550487
163.65457704485283
134.9562174388093
189.70206097599245
153.78203142905076
176.1787894042539
190.83025195589502
199.04182673196726
146.97803776211907
174.22118528139467
170.95045320552694
161.2797407784266
190.61061242859464
168.79257731811308
159.87099716863165
136.22823975268153
166.87622973701335
179.58044852016417
172.49583957582817
165.2662334997042
136.6663345224381
161.9352364324168
174.56164027542448
161.62817356012405
167.65579546297906
170.88930983697742
147.22062198310996
151.85737964663497
158.03323614736198
135.77570282853696
161.25435141827515
193.33084953437478
155.43189514766172
155.89204074847055
179.23931091736836
146.485962651657
166.61617663518228
161.70927578953211
164.89798613982495
139.18195138901498
180.30341647946335
162.4811239647979
171.1035005376699
147.01137545913147
187.03282087175134
172.2476631392949
152.9814634955974
174.43159049461713
174.83877117002814
132.66857703218636
173.98029972846837
133.5435543737402
169.62941676289472
166.4887567852903
138.1150540623029
170.52532661450618

Vamos a ajustarlo.
import pandas as pd
import scipy.stats as ss

df = pd.read_csv("alturas.csv")

media, desviacion = ss.norm.fit(df["Altura"])

print(media) # media = 160,37
print(desviacion) # desviacion = 17,41

En este caso nos informa de que estos datos parecen encajar con los de una distribución normal de media 160,37 y desviación típica 17,41.

¿Cómo de bueno es el ajuste? Kolmogorov

Hemos hecho un ajuste, pero no sabemos qué tan bueno es. Existen varios métodos para poner a prueba los ajustes. Existen varios métodos, siendo los más populares Chi-Cuadrado y Kolmogorov-Smirnov.

Chi-Cuadrado no se puede aplicar directamente sobre distribuciones continuas, aún así voy a explicar como se haría. Sin embargo, primero vamos a probar con Kolmogorov-Smirnov, que en SciPy es ktest.

import pandas as pd
import scipy.stats as ss

df = pd.read_csv("altura.csv")
media, desviacion = ss.norm.fit(df["Altura"])
d, pvalor = ss.ktest(df["Altura"],"norm",args=(media,desviacion))
# o alternativamente
d, pvalor = ss.ktest(df["Altura"],lambda x: ss.norm.cdf(x,media,desviacion))

Este test nos devuelve dos valores: D y el p-valor. Yo voy a fijarme en el p-valor. El p-valor es el nivel mínimo de significación para el cual rechazaremos el ajuste. Cuanto más cerca del 1 esté, más confianza hay en el ajuste, cuanto más cerca de cero esté, menos confianza hay en el ajuste. ¿Pero cómo se interpreta exactamente?

Una forma sencillo de entenderlo es hacer obtener el nivel de significación, que es 1 – NivelConfianza/100. Así para una confianza del 95%, este será de 0.05, para una confianza del 99%, el valor se reduce a 0.01. Si el p-valor es inferior a este nivel de significación, el ajuste probablemente no es correcto.

import pandas as pd
import scipy.stats as ss

df = pd.read_csv("altura.csv")
media, desviacion = ss.norm.fit(df["Altura"])
d, pvalor = ss.ktest(df["Altura"],"norm",args=(media,desviacion))

# queremos confianza al 99%
if pvalor < 0.01:
    print("No se ajusta a una normal")
else:
    print("Se puede ajustar a una normal")

Aquí algún estadístico más serio se tiraría de los pelos, porque en realidad lo único que se puede demostrar con seguridad es en el caso de que no se ajuste. Si salta que se puede ajustar a una normal, simplemente querría decir que no se puede rechazar la hipótesis de partida (que sea normal), pero no confirma que sea normal.

Esto es algo común en el contraste de hipótesis y con los p-valores en particular y ha suscitado crítica, hasta tal punto que en 2016, la American Statistical Association publicó una serie de consejos para tratar con p-valores. El p-valor en este caso solo puede demostrar que no se ajusta a una normal. No obstante, para ir poco a poco, podemos simplificar esto un poco.

Chi-Cuadrado

Para hacer el test de Chi-Cuadrado primero hay que dividir los datos continuos. Para uso podemos usar la función de NumPy, histogram o la de SciPy binned_statistic. Tenemos que construir una lista con las frecuencias esperadas si siguiéramos al 100% la distribución a la que queremos ajustarnos.

def test_chicuadrado(data,N):
    n = data.count()
    freqs, edges, _ = ss.binned_statistic(data,data,statistic="count")
    def ei(i):
        return n*(N.cdf(edges[i])- N.cdf(edges[i-1]))
    expected = [ei(i) for i in range(1,len(edges))]
    return ss.chisquare(freqs,expected)

Una vez tengamos una lista con los valores esperados, simplemente podemos comparar las frecuencias reales con las esperadas con chisquare. Esto nos devolverá C y el p-valor. El significado del p-valor es exactamente igual.

Con esto ya hemos visto como empezar con estadística en Python. No sé si haré más artículos de este estilo, si no es así, espero que os hayan gustado esta serie de artículos. El mundo del data science es inmenso y os invito a seguirlo explorando.

La entrada Estadística en Python: ajustar datos a una distribución (parte VII) aparece primero en Blog - Adrianistan.eu.

Ubuntu 16.04 con el nuevo parche de Meltdown no inicia

En otros de nuestros artículos explicábamos cómo y por qué el fallo de Intel afectaba a las versiones del kernel y que Linux estaba trabajando con todas sus energías en una solución. Pues bien, no sólo compañías como Microsoft está teniendo problemas con las soluciones con prisas para solventar este inconveniente con los procesadores Intel, ya que parece ser que en el nuevo parche que

Martes 16 de enero de 2018

TutorialesLinux.com: Habilitar PHPMyAdmin sin acceder a Plesk

Sábado 13 de enero de 2018

Como reparar un disco duro defectuoso o dañado

Los discos duros son una pieza básica en cualquier ordenador. Es allí donde se almacena toda la información de forma que graba magnéticamente nuestros archivos y datos digitales. Consejos de mantenimiento: Los componentes deben ser de calidad. No solo el disco duro propiamente. Todas las piezas están relacionadas y un fallo en la memoria RAM […]

La entrada Como reparar un disco duro defectuoso o dañado aparece primero en Blog de Informática ✏ Luisi.

Jueves 11 de enero de 2018

Writer: Alineación en listas numeradas y viñetas

El principal riesgo de conocer bien algo es no prestarle demasiada atención cuando se lo hace o, peor aún, cuando se lo explica, lo cual inevitablemente lleva a errores. En fin, que uno se confía y mete la pata. Pero el problema se vuelve realmente grave cuando la metida de pata pasa inadvertida: el error […]

Miércoles 10 de enero de 2018

La nueva versión de Linux Mint 19, ya tiene fecha de salida.

Los seguidores de las distribuciones similares al eterno rival de Linux, están de enhorabuena, ya que la distribución por excelencia y con más similitudes gráficas a Windows, Linux Mint, ya ha desvelado su próxima fecha de lanzamiento.  Tendremos que esperar hasta casi verano de este 2018, ya que se prevé que la nueva versión de Linux Mint, bautizada como “Tara” salga a la luz entre Mayo
Pedro L. Lucas

Pedro L. Lucas
Cartas de Linux

Desactivando los parches para los fallos en las CPUs de Intel en Linux

Los recientes fallos de seguridad en las CPUs de Intel llamados Meltdown y Spectre, han obligado modificar los sistemas operativos. Esto causa que los procesadores afectados lleguen a perder de un 5% hasta un 30% de rendimiento en la realización de ciertas tareas.

En determinados casos es un gran inconveniente. Existen situaciones en los que el usuario puede gestionar el riesgo de forma que, a costa de perder ese extra de seguridad, gane en rendimiento. Un ejemplo, supongamos que hay un grupo de científicos realizando cálculos matemáticos. Supongamos también que este grupo de científicos realizan sus cálculos en equipos aislados, de forma que no tienen interacción con otros equipos ni conexión con Internet. Perfectamente podrían deshabilitar los parches y continuar con sus cálculos con ese extra de rendimiento.

Otra situación: disponemos de un portátil. Cuando estemos navegando por Internet es totalmente necesario tener activado las protecciones frente a Meltdown y Spectre (y todas las medidas de seguridad que se nos ocurran). Supongamos ahora que nos vamos de viaje y no tenemos red (incluso puede que no tengamos ni posibilidad de conectarnos), suponamos que tenemos totalmente controlados los programas que vamos a ejecutar en ese tiempo y su procedencia. ¿No sería lógico desactivar dichas protecciones y así, posiblemente, ganar un de un 5% hasta un 30% más de rendimiento y de batería?

Lo que vamos a buscar aquí es cómo se deshabilitan dichas protecciones y qué condiciones podemos usar un equipo, con las protecciones desactivadas de forma segura.

¿Cómo se desactivan las protecciones?

Para desactivar estas opciones, hay que arrancar el ordenador y cuando aparezca el grub solicitando el sistema que queremos arrancar, pulsaremos la tecla e. Aparecerá un editor de texto. En este editor buscamos la línea que arranca el kernel y se le añade la opción “pti=off”. Es decir, al final tendremos que tener una línea similar a:

linux   /boot/vmlinuz-4.4-x86_64 root=UUID=a56... rw  quiet pti=off

Para comprobar si la protección ha sido desactivada, se debe teclear en un terminal.

dmesg | grep 'page tables isolation'

Si aparece la respuesta:

Kernel/User page tables isolation: disabled

es que la protección está deshabilitada y se tendrá el extra de rendimiento.

Evidentemente es más cómodo introducir una nueva entrada en el Grub de forma que podamos elegir entre un sistema seguro o un sistema un poco más rápido en el momento de arrancar.

¿Cuándo se debe deshabilitar estos parches?

Respuesta corta: Nunca.

He estado haciendo pruebas en mis equipos y para las tareas de oficina, programar/compilar, navegar o juegos, no parece que haya una pérdida de rendimiento acusada.

Tened en cuenta que por el sólo hecho de visitar una página web y que tengas un fallo en el navegador, te pueden infectar y usar tu sistema para minar bitcoin, obtener tus contraseñas,…

Como conclusión final sólo decir que el hecho de conocer cómo se desactivan estas protecciones conlleva la responsabilidad de saber usarlo sabiamente.

Espero que os sea útil.


Viernes 05 de enero de 2018

Nuevo kernel de Linux para solucionar la vulnerabilidad de Intel

El año ha empezado con malas noticias para los usuarios de los procesadores Intel, y es que una vulnerabilidad sobre la que no han dado demasiados fallos técnicos, está provocando que muchos de los sistemas operativos tengan que trabajar en una rápida solución a través de su kernel. Pero ¿en qué consiste el fallo exactamente?¿ tus datos y privacidad están seguros?, en este artículo te

Lunes 01 de enero de 2018

Xavier Genestos

Xavier Genestos
SYSADMIT

Linux: Saber dirección MAC

En este post veremos distintas formas de localizar la dirección MAC (Media Access Control) de un interfaz de red en sistemas operativos Linux. Linux: Saber dirección MAC: ifconfig Utilizando el comando ifconfig -a, podemos listar todos los interfaces.  El parámetro -a, nos permite que incluso los interfaces de red que no tengan link, aparezcan listados.  Ejemplo:

Miércoles 27 de diciembre de 2017

Emiliano A. González Salgado

Emiliano A. González Salgado
El blog de Emi

Prueba

Esto es una prueba.

Realizada con el cliente de sobremesa WordPress.

Trabajar con archivos PDF en Linux

PDF (sigla del inglés Portable Document Format, «formato de documento
portátil») es un formato de almacenamiento para documentos digitales
independiente de plataformas de software o hardware.

Los documentos son de tipo compuesto (imagen vectorial, mapa de bits y
texto).

Actualmente es de los mas usados para el intercambio de información.

En Linux existen programas para crear y editar documentos en dicho formato.

En estos momentos el sistema operativo que uso es Fedora 27 x86_64 KDE.

Mis herramientas principales son:

Visor de archivos: Okular.

Edición de documentos: MasterPDF Editor, LibreOfficeDraw y Xournal.

Creación de archivos PDF: LibreOffice(extensión pdfimport),

MasterPDF Editor y CUPS-pdf.

Formularios (principalmente cumplimentarlos): Okular. y

MasterPDF Editor.

Se pueden crear escaneando un documento o una imagen.

Para el escaneo, aunque  al instalar el driver de la multifunción ya
incorpora su programa, el que uso es Xsane,
un software bastante veterano, pero muy completo. Permite escanear desde el
alimentador automático y desde la base de escaneo. Salida en varios
formatos: PDF, jpeg, gif, png, bmp, etc. Multipágina o página
individuales.  Enviar a la impresora o al fax.

La multifunción es una Epson, y el programa de escaneo es “Image Scan! for
Linux”, que es muy simple, y efectivo, pero con un defecto, tiene una falta
de compatibilidad con el formato PDF. Lo he comprobado al aplicar un script
para comprimir ficheros de gran tamaño. Siempre me daba errores, lo que no
ocurre con Xsane.

La mayoría de los programas anteriores se encuentran en los repositorios de
gran parte de las distribuciones Linux.

Master PDF
Editor
es software propietario. Está desarrollado por Code
Industry
. En Linux se puede utilizar libremente, sin fines
comerciales, por ejemplo para propósitos educativos o personales. Para otros
fines habría que adquirir la respectiva licencia.

Para ver las características mas importantes lo mejor es consultar esta entrada
de El atareao.

Aunque ya tiene unos meses, ha habido pocos cambios.

El principal problema que nos encontramos en Linux con los archivos PDF es
el de la firma digital.

El único programa que tiene incorporado todo para la misma es Adobe Acrobat.
Para Windows y, creo que también, para Apple y Android.

En Linux, la versión que hay es antigua y de 32 bits. Discontinuada por
Adobe.

No trae soporte para firma digital.

Tengo la costumbre de escanear con alta resolución, normalmente 300 dpi, con
lo cual los archivos son de gran tamaño. Para optimizarlos suelo empelar un
scrip que encontré hace tiempo, y no me acuerdo dónde.

Lo tengo en un fichero ejecutable: comprimepdf.sh

El contenido es el siguiente:

#!/bin/sh

dpi=72

if [ $# -lt 2 ]

then

echo “usage: $0 input output [dpi]”

exit 1

fi

if [ $# -gt 2 ]

then

dpi=$3

fi

echo “Shrinking document…”

gs  -q -dNOPAUSE -dBATCH -dSAFER \

-sDEVICE=pdfwrite \

-dCompatibilityLevel=1.3 \

-dPDFSETTINGS=/screen \

-dEmbedAllFonts=true \

-dSubsetFonts=true \

-dColorImageDownsampleType=/Bicubic \

-dColorImageResolution=$dpi \

-dGrayImageDownsampleType=/Bicubic \

-dGrayImageResolution=$dpi \

-dMonoImageDownsampleType=/Bicubic \

-dMonoImageResolution=$dpi \

-sOutputFile=$2 \

$1

#sh comprimepdf.sh ~/input.pdf ~/output.pdf 150

Este último párrafo es la orden para ejecutarlo.

El modificador 150, se puede cambiar para aumentar o disminuir la
resolución.

Es muy efectivo. Archivos de mas 10 MB los reduce a 200 o 300 Kb. sin
afectar a su calidad.

Es necesario tener instalado Ghostscript
para que funcione.

Existe un script, que en Fedora se puede instalar desde los repositorios, shrinkpdf.sh,
pero después de utilizar ambos, prefiero el primero.

Trabajar con archivos PDF en Linux

PDF (sigla del inglés Portable Document Format, «formato de documento
portátil») es un formato de almacenamiento para documentos digitales
independiente de plataformas de software o hardware.

Los documentos son de tipo compuesto (imagen vectorial, mapa de bits y
texto).

Actualmente es de los mas usados para el intercambio de información.

En Linux existen programas para crear y editar documentos en dicho formato.

En estos momentos el sistema operativo que uso es Fedora 27 x86_64 KDE.

Mis herramientas principales son:

Visor de archivos: Okular.

Edición de documentos: Master
PDF Editor
, LibreOffice
Draw
y Xournal.

Creación de archivos PDF: LibreOffice
(extensión pdfimport)
, Master
PDF Editor
y CUPS-pdf.

Formularios (principalmente cumplimentarlos): Okular. y Master
PDF Editor
.

Se pueden crear escaneando un documento o una imagen.

Para el escaneo, aunque  al instalar el driver de la multifunción ya
incorpora su programa, el que uso es Xsane,
un software bastante veterano, pero muy completo. Permite escanear desde el
alimentador automático y desde la base de escaneo. Salida en varios
formatos: PDF, jpeg, gif, png, bmp, etc. Multipágina o página
individuales.  Enviar a la impresora o al fax.

La multifunción es una Epson, y el programa de escaneo es “Image Scan! for
Linux”, que es muy simple, y efectivo, pero con un defecto, tiene una falta
de compatibilidad con el formato PDF. Lo he comprobado al aplicar un script
para comprimir ficheros de gran tamaño. Siempre me daba errores, lo que no
ocurre con Xsane.

La mayoría de los programas anteriores se encuentran en los repositorios de
gran parte de las distribuciones Linux.

Master PDF
Editor
es software propietario. Está desarrollado por Code
Industry
. En Linux se puede utilizar libremente, sin fines
comerciales, por ejemplo para propósitos educativos o personales. Para otros
fines habría que adquirir la respectiva licencia.

Para ver las características mas importantes lo mejor es consultar esta entrada
de El atareao.

Aunque ya tiene unos meses, ha habido pocos cambios.

El principal problema que nos encontramos en Linux con los archivos PDF es
el de la firma digital.

El único programa que tiene incorporado todo para la misma es Adobe Acrobat.
Para Windows y, creo que también, para Apple y Android.

En Linux, la versión que hay es antigua y de 32 bits. Discontinuada por
Adobe.

No trae soporte para firma digital.

Tengo la costumbre de escanear con alta resolución, normalmente 300 dpi, con
lo cual los archivos son de gran tamaño. Para optimizarlos suelo empelar un
scrip que encontré hace tiempo, y no me acuerdo dónde.

Lo tengo en un fichero ejecutable: comprimepdf.sh

El contenido es el siguiente:

#!/bin/sh

dpi=72

if [ $# -lt 2 ]

then

echo “usage: $0 input output [dpi]”

exit 1

fi

if [ $# -gt 2 ]

then

dpi=$3

fi

echo “Shrinking document…”

gs  -q -dNOPAUSE -dBATCH -dSAFER \

-sDEVICE=pdfwrite \

-dCompatibilityLevel=1.3 \

-dPDFSETTINGS=/screen \

-dEmbedAllFonts=true \

-dSubsetFonts=true \

-dColorImageDownsampleType=/Bicubic \

-dColorImageResolution=$dpi \

-dGrayImageDownsampleType=/Bicubic \

-dGrayImageResolution=$dpi \

-dMonoImageDownsampleType=/Bicubic \

-dMonoImageResolution=$dpi \

-sOutputFile=$2 \

$1

#sh comprimepdf.sh ~/input.pdf ~/output.pdf 150

Este último párrafo es la orden para ejecutarlo.

El modificador 150, se puede cambiar para aumentar o disminuir la
resolución.

Es muy efectivo. Archivos de mas 10 MB los reduce a 200 o 300 Kb. sin
afectar a su calidad.

Es necesario tener instalado Ghostscript
para que funcione.

Existe un script, que en Fedora se puede instalar desde los repositorios, shrinkpdf.sh,
pero después de utilizar ambos, prefiero el primero.


Martes 26 de diciembre de 2017

Pedro L. Lucas

Pedro L. Lucas
Cartas de Linux

Recargando un portátil con la luz del sol: Cargadores solares

En el comercio se pueden encontrar placas solares de pequeño tamaño que permiten recargar un ordenador portátil:

placa

Estas placas tienen diversos adaptadores en función del portátil:

conectores

Pero… ¿en qué condiciones funcionan estos aparatos?

Os voy a contar mi pequeña experiencia con uno de estos cargadores solares, mis éxitos y fracasos. También os expongo un montón de dudas que me han surgido, por si alguien me puede contestar.

Hay que tener luz directa del Sol

La primera prueba que se me ocurrió hacer es colocar un teléfono móvil e intentar recargarlo (la mayoría de estas placas tienen salida USB). Para mi decepción descubrí que la carga era tremendamente lenta. ¿Qué estaba haciendo mal?

La primera lección que hay que aprender es que la placa debe recibir luz directa del Sol. Con luz directa del Sol me refiero que no debe haber nubes, ni ventanas de cristal. Mi error era que estaba poniendo la placa detrás del cristal de la ventana. El cristal tiende a absorber muchas radiaciones llegando menos luz de la que debiera a la placa.

Para que os hagáis una idea con una exposición directa al Sol, mi móvil necesita 1 hora (aproximadamente) para llegar al 100% de la carga. Detrás de la ventana, después de una hora, la recarga sólo aumenta entre un 20 y un 30% de la carga. Es decir, que sin exposición directa la carga es de 3 a 4 veces más lenta.

Mira los Watios que necesita tu equipo

Imagina que se te estropea la fuente de alimentación de tu portátil. Si tu portátil tiene una fuente de alimentación de 50W, deberás comprar una fuente de similar o más potencia. Si tiene menos, el portátil no permitirá recargar la batería y mostrará luces de error en la fuente. Paradójicamente, si la fuente tiene suficiente potencia, podría ser que el portátil funcionase aunque sin poder recargar la batería.

Pues con los cargadores solares pasa algo  parecido. Necesitarás tener más  o la misma potencia que la que marca tu equipo para funcionar.

Aquí además hay que añadir que los cargadores solares sólo suelen tener 18V de salida. La mayoría de portátiles, según sus especificaciones necesitarán 18, 18.5, 19 o incluso 20V. Por lo poco que he leído en Internet (el siguiente párrafo lo escribo respecto a lo que he leído, pero no lo he podido comprobar):

Si tu portátil necesita 19V y el cargador sólo suelta 18V en principio debería funcionar. Por lo que he leído tras Googlear, si la diferencia entre los voltios necesitados y los que suelta el cargador son pocos (dicen que menos de 3V), no tendría que dar problemas. Pero si tu portátil necesita 17V y el cargador libera 18V, el voltaje extra podría dañar el ordenador. Aquí cada uno debe medir sus riesgos. Una vez establecido el voltaje, los amperios deben ser mayores o iguales a los de tu equipo. Más amperios de los necesarios significará que estamos desperdiciando potencia. Si tenemos menos amperios de los necesarios, se podría dañar la batería, por lo que los portátiles cortan la corriente y muestran luces de error en la fuente de alimentación. Pero esto es lo que he leído en la red, si alguien tiene información más precisa o ve algo erróneo, que me lo comente en los comentarios y lo corregiré.

La moraleja de esta historia es que: Antes de comprar uno de estos cargadores habrá que asegurarse de que sea compatible con nuestro equipo.

En mi caso he tenido 2 portátiles para probar, los dos necesitaban 19V para funcionar. Uno necesita 30W para funcionar, el otro 45W.

Los he conectado a un cargador solar de 40W. El de 30W ha funcionado sin problemas. En el de 45W no he podido recargar la batería (salvo en condiciones muy especiales), pero sí hacerlo funcionar durante horas sin hacer uso de la batería.

Un detalle del que me he podido percatar es que según se va cargando la batería, menos potencia solicita el portátil al cargador. Así, con el portátil de 45W usando el cargador solar de 40W he podido hacer recargas cuando la batería tenía la carga suficiente (en torno al 85% del total de la batería).

Lo que sucede con el portátil de 45W me resulta del todo extraña, ¿sólo por 5W de diferencia no puede hacer recargas con la batería por debajo del 85%? ¿Pedirá el ordenador al cargador el tope de amperios que necesita aunque esté apagado para hacer recargas rápidas? Si alguien tiene la respuesta, agradecería que me lo comentase.

¿Cómo saber la potencia que necesita tu portátil?

La potencia que necesita un equipo se mide en watios y es el resultado de multiplicar la tensión (los voltios) por la intensidad (amperios):

P=V·I

Estos datos suelen estar por la parte posterior del portátil y en el cargador del mismo. Por ejemplo, si mi portátil necesita 19V y 1.58A, la potencia necesaria será P=19V·1.58A=30W.

La orientación y el ángulo influyen

En España una placa solar debería tener orientación sur y estar inclinada 40°. La placa plegable de la imagen de la cabecera del artículo es compleja de colocar, por lo que uno tiene la tentación de dejarla tendida en el suelo. Si lo hacemos así, estaremos perdiendo parte de la potencia disponible. Para cargar un teléfono móvil, no habrá gran problema, pero puede que para algo más grande, como un portátil, tengamos que orientarla correctamente.

La siguiente imagen muestra la posición del Sol en Madrid en función del día y hora solar obtenida de la página sunearthtools.com:

solar-diagram-cartesian-1513529014468

La posición de 180° del eje horizontal representa el sur. El eje vertical representa el ángulo de inclinación respecto al suelo. A través de esta imagen, uno se puede hacer una idea de cómo sacar el mayor rendimiento a su placa solar.

¿Y cuando hay nubes?

Las nubes reducen la cantidad de luz que llega hasta la placa. Esto significará que va a generar menos potencia. Por ejemplo, he hecho pruebas dejando el teléfono móvil cargando en situaciones de nubes y me he encontrado que después de una hora cargando, que en condiciones normales le debería cargar casi al 100%, la carga apenas se ha incrementado en un 20%.

Es decir, con nubes la carga se ralentiza mucho. Pero sigue produciendo. Me comentaron de unas personas que tenían paneles solares en su casa, al preguntarles por el tema de las nubes respondieron que con nubes también tenían producción. Por la poca experiencia que he acumulado, supongo que tendrían mucha potencia instalada, para que cuando viniesen las nubes la potencia que les quedase fuese la justa.

De todas formas, en España el problema de las nubes dura muy poco. Antes de tener la placa recarga-portátiles, me regalaron una para poder cargar el teléfono móvil con una potencia de 10W. El teléfono lleva más de un año sin tocar la red eléctrica.

No pongas el móvil o el portátil al Sol



Cuando recargues usando un cargador solar, el equipo a ser recargado debe estar a la sombra y fresco. El Sol puede dañar el dispositivo. Además las baterías se degradan con el calor. Muchos cargadores solares tienen un bolsillo para guardar el móvil mientras carga. No lo uséis a no ser que haga frío.

Por otro lado vais a ver que existen baterías con una placa solar incorporada. Desde mi punto de vista, esa placa solar es sólo para emergencias. Una batería al Sol durante mucho tiempo, a no ser que haga frío, se va a degradar acortando su vida útil.

Tipos de cargadores solares

Existen 3 tecnologías actualmente para las placas solares silicio monocristalino, silicio policristalino y silicio amorfo. Las placas de silicio monocristalino son las que más rendimiento ofrecen. Suele ser de un 20% a un 25% de rendimiento según las condiciones. Son las más caras de conseguir.

Las policristalinas ofrecen un rendimiento menor que las monocristalinas, pero son mucho más baratas.

El silicio amorfo es la tecnología más barata pero de menor rendimiento. Pero tiene la ventaja de que se pueden fabricar en paneles flexibles.

Los distinguiréis por su color, las monocristalinas son de un color azul oscuro o negro, las policristalinas suelen tener un color azul y si os fijáis notaréis una especie de dibujos en diversas tonalidades de azul. Las de silicio amorfo suelen ser de color marrón:

Respecto a la huella ecológica, por lo que he podido leer, suponiendo que la placa estuviese todo el día al Sol, una placa de silicio monocristalino necesitaría 2 años para empezar a producir más energía de lo que costó fabricarla. La policristalina necesita casi un año. El silicio amorfo apenas unos meses.

Una última nota sobre el rendimiento, la siguiente imagen muestra una placa de silicio policristalino de 13W. Bajo ella una placa de silicio monocristalino de 40W. Con menos superficie el silicio monocristalino ofrece mayor potencia debido a su mayor rendimiento:

No te fies de las denominaciones del fabricante
Recuerdo que hace años tuve un reloj digital. Este tenía la siguiente inscripción:

“Water resistant 50M”

Pregunté que significaba y alguien me contestó que lo podías meter en el agua hasta 50metros de profundidad. Me hice con los códigos del fabricante y 50M significaba que soportaba gotas de agua…

Este es un ejemplo de cómo los códigos usados por los fabricantes te pueden inducir a error.

Pues si una placa se denomina “Loquesea 50W”, habrá que percatarse de que esos 50W son watios y no un código de fabricante.

También hay fabricantes que aseguran que sus placas tienen un 25% de rendimiento. Si consultáis la literatura científica, os dirán que esos rendimientos sólo se obtienen en condiciones de laboratorio. En condiciones reales, la producción es más baja.

Hay personas que se construyen sus propios cargadores solares

Yo me he limitado a comprar un producto ya preparado. Pero hay personas que se lo construyen ellos mismos, todo por poco más de 100€:

Incluso existe un aparato, llamado inversor, que permite transformar la corriente continua en alterna. Allí conectan la placa y pueden alimentar cualquier dispositivo:

Finalmente, los hay que, a través de un enchufe de su casa, inyectan la energía solar ¡en la propia casa!

Espero que os haya resultado útil. Hasta la próxima.


Miércoles 20 de diciembre de 2017

Ramón Miranda

Ramón Miranda
Ramon Miranda

Remember me 2017

Para despedir el año 2017 me parece que esta imagen es muy acertada. La despedida de un año muy especial por todo lo que ha pasado y lo que no. A todos los que habéis estado allí os mando un abrazo. "Remember me", es mi pequeño toque de atención al mundo.
El objetivo era capturar ese ultimo momento cuando ves a alguien importante por ultima vez.

El trasfondo es que estaba probando un poco un pincel llamado "Pencil texture" y viendo como le afectaban modificaciones activando rotacion / por Random Dab, El tamaño on/off y un poco de toqueteo en las curvas. Algunas veces se añade mucha versatilidad sin esfuerzo.
Espero que os guste y gracias por comentar o compartir.



English Readers:
Hi, today Black and white like some feelings sometimes. In this case i have used charcoal style. Title is "Remember me" and the goal was to capture this last moment when you see someone important for the last time. How do you think i could give more emotional impact?

The underpainting was i was experimenting a bit with only one brush called "pencil texture" and tried some modifications basically activating Rotation by random dab, Size on/off, and a bit of curve tweaking. Sometimes we add a lot of versatility with no effort.
Thanks for sharing and comments

Jueves 14 de diciembre de 2017

Xavier Genestos

Xavier Genestos
SYSADMIT

Linux: Configurar teclado español

Uno de los problemas con los que nos podemos encontrar al administrar un equipo con Linux, es que en el idioma del teclado, no esté configurado el español. El procedimiento para configurar el idioma del teclado al español,  es distinto según la distribución de Linux utilizada. Veamos algunos ejemplos para configurar el idioma del teclado al español, con las distribuciones de Linux mas

Jueves 07 de diciembre de 2017

Usar unidades en (wx)Maxima

Maxima es un programa de álgebra simbólica que nos permite calcular derivadas, integrales, series, factorizar, resolver ecuaciones, autovalores y autovectores, series de Taylor, transformadas de Laplace… También nos permite realizar cálculos numéricos con precisión arbitraria, realizar gráficos de funciones en dos y tres dimensiones… realmente podrían llenarse muchos artículos solamente haciendo una lista de las […]

Miércoles 06 de diciembre de 2017

TOP 10 de Juegos Android (RPG)

Hoy vamos a ver un resumen de los mejores juegos RPG (rol playing game). Este género se basa en que el jugador desempeña un rol o papel. Lo bueno de estos juegos es que tienen cientos de posibilidades diferentes. Ahora os dejo los mejores rpg android Podemos hacer una clara distinción. Los juegos de rol […]

La entrada TOP 10 de Juegos Android (RPG) aparece primero en Blog de Informática ✏ Luisi.

Sábado 02 de diciembre de 2017

Aunque se me caen las bragas por Godot, sigo teniéndole cariño a Löve

A quién no se le caiga las bragas al suelo por Godot, o es un insensible o esta ciego y es un yonki de mierdas privativas como Unity3D.

Godot, si no lo es ya, en el próximo año seguro que ya empieza a haber ofertas de trabajo muy golosas para trabajar con este engine de videojuegos.

Pero toda telenovela para que dure mucho, tiene muchos episodios y muchos amoríos y tal. Y uno de mis primeros amores fue Löve un engine de videojuegos basado en el lenguaje de programación Lua.

Pues claro, siempre vienen suspiros y pensar que fue de ese amorío de los primeros episodios de la telenovela, y encontrarte navegando por ahí una entrada en reddit que dice Love2D showcase, donde piden ejemplos de juegos wenos wenos en Löve y del que ordeñando los comentarios se pueden sacar los siguientes links:

Ale, ya tenéis un buen listado de videojuegos libres (y algunos no libres…y algunos no-videojuegos) para entreteneros.

Domingo 26 de noviembre de 2017

Asociación LiGNUx: El reproductor Open Source Qmmp publica su versión 1.2.0

Hotmail ahora se llama Outlook

La palabra Hotmail nos trae muchos recuerdos. Iba de la mano de Messenger. Pero no el de Facebook, el original. Bueno no nos pongamos melancólicos y vamos a ver la nueva actualización de Microsoft en su servicio de correo electrónico. Hotmail era en 2012 mucho más grande que Gmail o Yahoo! Mail. Tenía la increíble […]

La entrada Hotmail ahora se llama Outlook aparece primero en Blog de Informática ✏ Luisi.

Xavier Genestos

Xavier Genestos
SYSADMIT

Linux: Caducidad contraseña

En sistemas Linux, también existe la caducidad de la contraseña. Es una buena idea tener controladas aquellas cuentas de usuario que se les puede caducar la contraseña.Dependiendo de la distribución de Linux empleada, la caducidad de contraseña estará o no activada por defecto. Los valores de caducidad de contraseña se guardan el el fichero shadow del sistema, ubicado en el directorio /

Sábado 25 de noviembre de 2017

Asociación LiGNUx: El edito de vídeo Open Source OpenShot nos muestra su nueva versión 2.4.1

Viernes 24 de noviembre de 2017

Asociación LiGNUx: Virtualbox lanza su versión 5.2.2 con la mejora destacada sobre pantallas de alta resolución

Martes 14 de noviembre de 2017

Liher Sanchez

Liher Sanchez
El blog de Liher

Cómo crear un sitio web con un constructor de sitios web y un diseño listo

Si no eres bueno en el diseño, y tampoco eres un profesional del diseño de sitios web, podemos ofrecerte una manera más fácil de crear un sitio web. Tu sitio web nuevo no sólo será totalmente funcional, sino también atractivo, es decir, creado de acuerdo con todas las tendencias de moda del diseño web de hoy.

Un constructor web y una plantilla prediseñada te ayudarán a completar esta tarea difícil. Así pues, hoy vamos a hablar de las nuevas plantillas de sitios web de TemplateMonster que han sido desarrolladas especialmente para MotoCMS 3.0.

 

 

Las ventajas principales del constructor de sitios web de MotoCMS 3.0

La principal diferencia entre el motor de MotoCMS y otros sistemas de gestión de contenidos es la simplicidad y claridad del primero. Te permite editar plantillas simplemente arrastrando y soltando varios elementos de sus diseños.

Ahora no tienes que saber codificar, no se te obliga a programar nada o hacer otras cosas técnicas. Simplemente arrastra y suelta los elementos prediseñados, textos e imágenes y obten un diseño único y funcional.

En otros CMS normalmente se te ofrece sólo un panel de administración y una plantilla prediseñada. Y todo lo que puedes hacer en el panel es crear páginas y añadir contenidos a ellas.

Mientras tanto, MotoCMS incorpora un poderoso editor visual que te permite crear un diseño de plantilla único arrastrando y editando diferentes elementos preestablecidos.

Es decir, no tendrás que codificar nada y preocuparte por el rendimiento del sitio en caso de que algo salga mal en el código. Todas tus configuraciones y experimentos con el diseño se guardarán automáticamente y el código del sitio permanecerá perfecto y funcionará adecuadamente en cualquier navegador.

La creación de sitios web con el constructor web de MotoCMS tiene un montón de ventajas:

  • Facilidad y comodidad. Incluso un principiante inexperto no tendrá problemas con su uso.
  • No se requiere programar o codificar nada.
  • Una gran cantidad de plantillas de alta calidad.
  • Sistema de edición visual sencilla de arrastrar y soltar.
  • Selector de colores único.
  • Alta velocidad de carga de sitios web.
  • Plantillas adaptativas y creadas de acuerdo con todas las tendencias actuales del diseño web.
  • Optimización para SEO.
  • Versión de prueba gratuita de 14 días.

 

 

Presta atención al último punto. Puedes probar este constructor web completamente gratis, experimentar con los ajustes, construir tu propio diseño único y, a continuación, si te gusta el resultado, comprar el sitio web creado y transferirlo a tu propio alojamiento web. En este caso, no perderás ningún dato. Nos parece una opción muy buena y útil.

Además, el producto se te ofrece junto con el servicio de soporte técnico, por lo que siempre puedes solicitar ayuda, en caso de que te confundas en algo o no puedas entender algo. Podrás solicitar ayuda del equipo de asistencia técnica justo después del registro en el sitio y obtendrás respuesta a cualquier pregunta tuya.

Hay cinco secciones principales en el panel de control de MotoCMS 3.0:

  1. Pages/Páginas. Se te permite crear y editar fácilmente páginas del sitio, personalizar su apariencia y al mismo tiempo hacer la optimización para los motores de búsqueda (SEO).
  2. Design/Diseño. En esta sección, se te permite personalizar la parte visual del diseño, el diseño del texto, los fondos, los estilos y los widgets. Estos últimos, a su vez, tienen sus propios ajustes preestablecidos que puedes modificar fácilmente.
  3. Multimedia library/Biblioteca multimedia. Una sección especial para trabajar con todos los archivos multimedia: videos, audios, etc.
  4. Configuration/Configuración. Los ajustes principales del sitio, así como la opción de integración de las herramientas de webmaster (para usuarios avanzados).
  5. Blog. Una sección separada para las configuraciones de visualización y funciones de blog.

Estas secciones puedes editar a tu gusto y tantas veces como deseas. Crea tu propio sitio, añade los widgets y bloques necesarios, inserta archivos multimedia, textos, tablas o cualquier otra cosa. Todo esto es fácil y rápido de configurar, así que, incluso una persona que nunca ha trabajado en el desarrollo web, podrá construir su propia página web sin mucho esfuerzo.

Las categorías principales de las plantillas MotoCMS 3.0 de TemplateMonster:

  • Arte y cultura;
  • Animales;
  • Diseño y fotografía;
  • Educación y libros;
  • Negocios y servicios;
  • Autos y motos;
  • Computadoras e Internet;
  • Electrónica;
  • Entretenimiento, juegos y vida nocturna;
  • Hogar y familia;
  • Moda y belleza;
  • Comida y restaurantes;
  • Vacaciones, regalos y flores;
  • Medicina;
  • Bienes raíces;
  • Sociedad y gente;
  • Deportes, naturaleza y viajes.

Como puedes ver, hay temas para todos los gustos. Y si no has encontrado una plantilla adecuada, entonces, créala por tí mismo! 🙂 Todo esto es muy fácil de hacer con el constructor web de MotoCMS 3.0. A pesar de toda esta simplicidad, tu sitio web todavía tendrá un aspecto profesional y fiable.

Todas las nuevas plantillas creadas por TemplateMonster para MotoCMS 3.0 son 100% adaptativas. Esto significa que funcionarán perfectamente en cualquier dispositivo y se adaptarán automáticamente a cualquier tamaño de pantalla.

Por supuesto, todas las nuevas plantillas incluyen aquellas características modernas, como el efecto de paralaje, la tipografía elegante, la adaptabilidad, los iconos de alta calidad, la animación preintegrada, el diseño de alta calidad en CSS3 y HTML5 y mucho más.

Miércoles 25 de octubre de 2017

Gorka Urrutia

Gorka Urrutia
Nideaderedes

Solución para la nueva ley de protección de datos en PrestaShop

Si tienes una tienda online con PrestaShop esto te va a interesar. Están preparando una completa solución que te ayudará a que tu tienda PrestaShop cumpla con la nueva ley de protección de datos, el famoso RGPD. Está abierto a empresas y autónomos y la participación es gratuita.

Miércoles 18 de octubre de 2017

Gorka Urrutia

Gorka Urrutia
Nideaderedes

Nueva sección de trucos y consejos de PHP

Hace un par de días puse en marcha una nueva sección de trucos y consejos sobre PHP en PHPSensei. La intención es publicar cada día una nueva “perla” de sabiduría. Si quieres aprender un poco cada día no te puedes perder esta nueva sección.

PHP Sensei - Nueva sección de trucos sobre PHP

 

Viernes 13 de octubre de 2017

Liher Sanchez

Liher Sanchez
El blog de Liher

Ganar dinero en Internet

No hay duda de que, hoy en día, Internet pone al alcance de nuestras manos un sinfín de posibilidades para muchas facetas de nuestra vida. Una de las mas importantes es el conocimiento, hay muchas páginas web en las cuales podemos aprender cualquier cosa que queramos, es una gran ayuda para cualquier persona que tenga ganas de aprender cosas nuevas, sea de la temática que sea, como por ejemplo los idiomas, no se si conoceréis el traductor de Google, pero es muy bueno ya que permite traducir entre muchos idiomas y tiene la opción de escuchar las traducciones o decir la palabra o frase que queréis traducir en vez de teclearla para ayudarnos así a aprender a hablar en ese idioma. A mi me ayuda bastante para hacer los deberes del colegio con mis hijas.

Otra de las bondades de Internet es la posibilidad de conocer gente de cualquier lugar del mundo de una forma muy sencilla, para ello las redes sociales son un medio muy bueno. Otra opción que tenemos en Internet es ganar algo de dinero o incluso, si se nos da bien, vivir de Internet, aunque eso pocos lo logran, pero la posibilidad esta ahí, eso es innegable. Hoy os quiero hablar un poco de esto, ya que conozco de cerca algunos casos que os voy a comentar.

Una amiga mía conoce una pareja que creo una página web en la cual hablaban de muchas cosas que rodeaban a las personas que hicieron la EGB en mi país, hablan de recuerdos de la gente que estudiamos en aquella época y con el tiempo fueron creciendo y han conseguido llegar a vivir de ello, de hecho han publicado libros y juegos, entre otras cosas. Esta web se llama Yo fui a EGB y esta muy bien ya que te hace recordar cosas que, por lo menos yo, ya tenia olvidadas. Esta es una muestra de como un hobby se puede convertir en tu forma de vida, algo que a muchas personas nos gustaría.

 

 

Otro caso de como ganar dinero en Internet es el trading. En alguna ocasión me había interesado en esto pero nunca he terminado por informarme bien. Yo pensaba que era necesario tener conocimiento avanzados sobre finanzas para poder sacar provecho del trading pero no es así. Hace poco he hablado con un amigo sobre temas de ordenadores y me estuvo hablando de lo que hace su mujer para ganarse un sueldo. Trabaja desde casa y lo hace con el Ibex trading, me estuvo explicando un poco como iba el tema, aunque el no lo hacia ya que que su mujer quien se dedica a ello. Dedicas unas horas al día, el tiempo varia según el día, pero viene a ver como una jornada partida, es decir, unas 4 horas diarias mas o menos. Con dedicarle ese tiempo, una inversión mínima y paciencia ha llegado a conseguir un sueldo que mucha gente no tiene en un trabajo normal hoy en día, lo cual es mucho decir. Por lo tanto esta es otra opción de ganar dinero en Internet.

Otra opción que no me había planteado como una forma de ganar dinero en Internet es el tema de las apuestas. Como todo en esta vida hay quien convierte esto en una manera de ganarse las habichuelas. En este caso conozco a una persona que se lo toma como un trabajo y esta todo el día informándose sobre cualquier cosa relacionada con el deporte para poder afinar las apuestas todo lo posible. Hay muchas empresas que dan estos servicios y una buena forma de empezar seria ir a una web en la cual poder conocer las ventajas de este tipo de webs para elegir la adecuada. Después ya tendréis los datos necesarios para elegir una web de apuestas y poder empezar. En esa web tenéis también noticias deportivas para poder estar al día, algo muy importante si queréis conseguir un dinerillo.

Hay mas formas de ganar dinero en Internet pero hay algo que es necesario en todas ellas, lo que haces te tiene que gustar y apasionar ya que de otra forma sera difícil conseguir algo. En mi caso puedo decir que el dinero que gano con este blog, aunque sea poco me sirve para lo que busco. Algunas de las cosas que me puedo permitir son:

  • Tener un VPS para la web y otros proyectos
  • Me permite cambiar de ordenador cada poco tiempo y comprarles accesorios para así estar al día
  • Hacer donaciones a proyectos de software libre

Y poco mas, algún capricho pero pequeñito. Ahora tengo en mente comprar un portátil viejito para ponerlo a punto y usarlo para probar distribuciones Linux en un ordenador mas limitado. También voy a comprar un disco Msata SSD para mi portátil de 120 GB. En esas cosas dedico el dinero que gano con el blog, así os puedo dar opiniones de primera mano sobre estas cosas.

Un saludo a todos.

Lunes 02 de octubre de 2017

Bruno Exposito

Bruno Exposito
The Linux Alchemist

Solución al mensaje “se ha detectado un problema en un programa del sistema”

Desde hace ya algún tiempo, Ubuntu arrastra un pequeño (aunque molesto) problema. Se titula “Se ha detectado un problema en un programa del sistema” y es cortesía del sistema de reporte de errores de Ubuntu (apport).

se-ha-detectado-un-problema-programa-sistema

Lo que ha ocurrido es que alguna aplicación se ha cerrado inesperadamente, el fallo se ha almacenado en /var/crash y apport insiste en reportarlo.

 

No es un problema excesivamente importante, aunque es bastante molesto y alarma a los nuevos usuarios, que creen que está fallando constantemente algo.

 

Hay dos soluciones: limpiar la carpeta donde se almacenan los informes de errores o desactivar la aplicación que reporta los errores (apport).

 

¿Como borro el log de los errores de Ubuntu?

Pues es sencillo, solo es necesario ejecutar el rm como root sobre el contenido de la carpeta.
sudo rm /var/crash/*

 

¿Como desactivo el reporte de errores en Ubuntu?

Editando el fichero [b]/etc/default/apport/b] con cualquier editor:
sudo nano /etc/default/apport
sudo gedit /etc/default/apport
sudo pluma /etc/default/apport
sudo kate /etc/default/apport
sudo vi /etc/default/apport

Y cambiando el valor de enabled a 0. Tal que así:
enabled=0

Viernes 29 de septiembre de 2017

Ubuntizando.com

Ubuntizando.com
Ubuntizando.com

La nueva consola de Atari usará Linux y mola cantidad

Atención jugones y nostálgicos, Atari prepara el inminente lanzamiento de su nueva consola. La primera desde la Atari Jaguar de 1993 lo cual es ya un montón de tiempo y parece que Atari tras aprender de los errores quiere volver por la puerta grande. Por lo pronto vamos conociendo detalles de lo que está por llegar.

Con un aspecto retro que recuerda a la atari 2600, la Ataribox contará con un lector de tarjetas SD, cuatro puertos USB y una salida HDMI en el exterior y un procesador AMD y con una unidad gráfica basada en la tecnología Radeon. Sí, lo sé… estoy siendo muy vago en detalles pero es que hasta la fecha todo es de un secreto que asusta. No se ha revelado qué clase de modelo de GPU y CPU están incluidos en el chip AMD, ni la cantidad de memoria que tendrá.

Lo que sí sabemos es que Atari apostará por GNU/Linux como sistema operativo principal.  Lo cual de entrada supone una oportunidad muy interesante para afirmar “¿Quien dijo que en GNU/Linux no se podía jugar?”

Se estima que la nueva consola de Atari vendrá a costar unos 249 a 299 dólares según configuración aunque se desconoce fecha exacta de salida al mercado.

Fuente: juegosadn / gamingonlinux.com

Ubuntizando.com

Ubuntizando.com
Ubuntizando.com

10 elementos esenciales del plan de proyecto perfecto

La semana pasada tuve el placer de colaborar en la organización y celebración de una nueva edición del WordPress Pontevedra donde profesionales y curiosos tienen su punto de encuentro para discutir diferentes aspectos sobre esta plataforma de contenidos. Allí tuve ocasión de coincidir y hablar con una antigua colaboradora sobre un proyecto pasado donde participamos como freelance para un cliente que “no salió del todo bien”.

Lo cierto es que no suelo hablar mucho de mi trabajo en el blog pero creo importante compartir mis impresiones. Algunas veces los proyectos no salen bien aunque sobre el papel todo parece muy fácil. Claro está que en este caso el papel era más una servilleta arrugada con un par de anotaciones y claro… qué podríamos esperar de ello. Mi culpa no fue darme cuenta y salir corriendo de la primera reunión. Tengo que aprender a decir NO. Este proyecto en particular supuso una continua perdida de horas de trabajo, consumo de tiempo y el que no pudiera atender como debiera a otros clientes. Sinceramente un desastre donde no gané dinero, perdí mis nervios y del que todavía me estoy recuperando.

Mi experiencia me dice que cuando se gestiona un proyecto antes hay que trabajar en plasmar cuanta idea sea posible y determinar la toma de decisiones necesarias y sus razones para poder lograr el éxito. No valen las ocurrencias de último momento y menos el “marear al personal apagando fuegos con cambios constantes”.  Claro que una cosa es decirlo y otra es hacer. No es fácil y hay radica el poder de un buen gestor de proyectos.

Para ilustrar lo que digo encontré en Pinterest la siguiente infografía que deja muy claros los pasos que deben darse y qué evitar a la hora de gestionar nuestros proyectos.

10 elementos esenciales del plan de proyecto perfecto
Infografía ofrecida por Wrike – Gestión De Proyectos

Ubuntizando.com

Ubuntizando.com
Ubuntizando.com

Microsoft ingresa en la Open Source Initiative

Microsoft Loves Linux Foto: arstechnica.com

Foto: arstechnica.com

¿Recordáis todo ese rollo de que Microsoft ahora ama a Linux y que romance y patatín. Pues parece que va en serio? Bromas a parte esta semana se acaba de anunciar que Microsoft ingresa en la Open Source Initiative (OSI) como patrocinador oficial. Esto supone todo un hito en la historia de la organización encargada de promocionar el código abierto.

Idilio o mero interés seguro traerá importantes novedades en el futuro. Eso sí, la noticia ya ha causado importantes reacciones dentro de la comunidad. Es el caso de Stallman, poco entusiasta con el amor que ahora Microsoft deposita en Linux, quien afirma lo siguiente:

Sin duda se ve de esa manera. Pero no será tan fácil extinguirnos, porque nuestras razones para usar y avanzar en el software libre no se limitan a la conveniencia práctica.

Queremos libertad. Como una manera de usar las computadoras en libertad, Windows no es un comienzo.

Esto no avanza la causa del software libre, ni una pizca. El objetivo del movimiento del software libre es liberar a los usuarios de sistemas propietarios, que niegan la libertad como Windows […].

Una opinión que no comparte Mark Shuttleworth, de Canonical y Ubuntu:

No es que Microsoft esté robando nuestros juguetes, es más que los estamos compartiendo con Microsoft para dar a todos la mejor experiencia posible.

WSL proporciona a los usuarios que son bien versados en el entorno de Windows con mayor variedad y flexibilidad, al tiempo que abre una nueva base de usuarios potenciales para la plataforma de código abierto.

O Patrick Masson, Gerente General y Director de Junta de la OSI:

Este es un importante hito para la OSI y el movimiento del Open Source para tener una mayor difusión. No creo que haya una mayor prueba de madurez, viabilidad, interés y éxito para el Open Source que no solo el reconocimiento de Microsoft, sino también su apoyo como patrocinador, así como su participación como contribuyente a muchos proyectos Open Source y comunidades.

Lo que sí parece claro es que desde que Satya Nadella fuera nombrado CEO del gigante de Redmon, Microsoft ha dado un giro radical en torno al Open Source y Linux. Muy opuesta y en nada tiene que ver con la dirección que la compañía con Ballmer al frente en 2001:

Linux es un cáncer que se une en un sentido de propiedad intelectual a todo lo que toca

¿Cómo cambió el cuento? ¿Cierto?

Domingo 24 de septiembre de 2017

José María Morales Vázquez

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

Chuletillas (y XXXXVIII) – Cambiar el formato de tablas de MySQL o MariaDB de Antelope a Barracuda (para instalar o actualizar Moodle)

chuletaLas últimas versiones de moodle exigen que las tablas usen InnoDB con formato Barracuda en lugar de Antelope. De hecho, en algunos casos puede que la actualización falle sólo por el hecho de no cumplir este requisito y sin que medie ningún comentario informativo acerca de cual es el origen del problema.

Para evitar este problema tenemos que añadir las siguientes líneas en el archivo my.cnf de configuración de mysql o mariadb:

innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_file_format_check=ON
innodb_file_format_max=Barracuda

No soy un gran experto en bases de datos, mi lector habitual ya lo sabe, pero tengo entendido que la principal ventaja que aporta Barracuda es la compresión de datos. Quién quiera hablar sobre ello con propiedad puede echarle un vistazo a este texto. En cualquier caso, si quieres seguir usando moodle no tienes mas remedio que pasar por el aro. Son lentejas, ya sabes 😉

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: Chuletillas (y XXXXVIII) – Cambiar el formato de tablas de MySQL o MariaDB de Antelope a Barracuda (para instalar o actualizar Moodle) || Hospedado en un Cloud VPS de Gigas.

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.

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).

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

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.

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?

Lunes 28 de agosto de 2017

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

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.

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

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.

 


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

 

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