Martes 21 de noviembre de 2017

Easter egg en el comando man de GNU/Linux

Recientemente se ha sabido de un easter egg escondido en el comando man de GNU/Linux. Se trata de una referencia al popular grupo de música sueco, ABBA.

Si conocéis la discografía de ABBA mínimamente seguro que os sonará la canción: Gimme! Gimme! Gimme! (A Man After Midnight)


Pues exactamente ocurre eso. Si ejecutamos man a las 00:30 (after midnight), nos saltará un gimme, gimme, gimme. Sí, es un chsite terrible, pero así es el humor de los programadores de man. Este easter egg fue introducido hace ahora 6 años a raíz de una broma en Twitter.

Ejecutando el easter egg

Existen dos maneras de ver el easter egg. La primera es esperar hasta las 00:30 y entonces ejecutar man. Otra opción es usar faketime para simular en el comando que la hora es 00:30.

Este easter egg ha provocado algún que otro en su interacción con otros programas, por lo que los programadores han considerado quitarlo. No obstante, debido al revuelo causado, se ha reducido su impacto y ahora solamente se muestra si se ejecuta man sin más argumentos.

La entrada Easter egg en el comando man de GNU/Linux aparece primero en Blog - Adrianistan.eu.

Baltasar Ortega

Baltasar Ortega
KDE Blog

Season of KDE 2018 busca mentores y estudiantes

Un año más se va a celebrar Season of KDE 2018, una nueva edición de un programa cuyo objetivo es incorporar nuevos estudiantes al gran proyecto mundial que es KDE. A lo largo de los nueve años anteriores Season of KDE se ha consolidado como una alternativa bastante fiable a otros programas como Google Summer of Code o Google Code In.

Season of KDE 2018 busca mentores y estudiantes

Season of KDE 2015

2 estudiantes presentando sus proyectos en Akademy 2015 de A Coruña

Uno de los objetivos del proyecto KDE es involucrar al mayor número de personas en él y para ello organiza todo tipo de acciones: eventos como Akademy, encuentros como los Sprints, blogs colaborativos como KDE Planet, participación en proyectos para estudiantes como el Google Code In o Google Summer of Code.

No contento con esto, una vez al año organiza Season of KDE, es decir, su programa para involucrar a nuevos estudiantes en KDE. Una especie de Google Summer of Code pero para colaborar directamente en KDE y con la posibilidad de desarrollar proyectos no vinculados necesariamente con la programación, es decir, proyectos de promoción, documentación, diseño, etc.

 

Season of KDE 2018Además, del anuncio oficial de lanzamiento del Dot de KDE ( Boudhayan Gupta) os dejo una especie de preguntas y respuestas sobre el proyecto, que seguro que te estás haciendo como:

  • ¿Qué es Season of KDE? Bueno, eso ya lo he explicado.
  • ¿Quién puede formar parte? Todo el mundo que quiera.
  • ¿Qué gano con ello? Aparte de colaborar con el proyecto KDE, el proyecto más puntuado ganará un viaje a Akademy 2018 de Viena, con los gastos pagados. Además de una interesante línea en tu currículo.
  • ¿Cuánto tiempo tengo? El plazo máximo para inscribirse tanto mentores como para estudiantes es del 1 al 26 de diciembre
  • ¿Cómo empiezo? Busca un mentor y propón tu idea.

En fin, una buena forma de poner tu granito de arena en el proyecto KDE.

Asociación LiGNUx: El plugin de WordPress Broken Link Checker nos ayuda a mantener nuestra web limpia y sin enlaces rotos

Lunes 20 de noviembre de 2017

Asociación LiGNUx: El juego de carreras Supertuxkart publica su versión final 0.9.3

Disponible «LyX, la otra forma de escribir»

¿A que no te lo esperabas? ¡Pues aquí está, finalmente! Este fin de semana hice el sprint final y logré terminarlo. Ya todo está en la página principal del proyecto, pero si no puedes esperar a que se abra a continuación tienes toda la información necesaria. Escrito mayormente en la versión 2.2, el libro presenta […]
Baltasar Ortega

Baltasar Ortega
KDE Blog

Excalibur 2, Slimbook actualiza su ultrabook de 15

Slimbook es un compañía valenciana joven y dinámica que no ha cesado de mejorar sus productos en aras de ofrecer lo mejor a sus potenciales clientes. Es por ello que me complace compartir con vosotros el lanzamiento de Excalibur 2, la actualización de su modelo de 15 pulgadas de Slimbook que destaca por ser un calidad, ligereza y potencia. Y todo ello compatible con el mundo GNU y Linux al 100%.

Excalibur 2, Slimbook actualiza su ultrabook de 15

El pasado mes de abril, los chicos y chicas de Slimbook nos sorprendieron con Ultrabook de 15 pulgadas que bautizaron con el nombre de Excalibur. Su llegada fue bienvenida por la Comunidad Linuxera ya que cubría un hueco del mercado que tenía poca oferta.

Apenas seis meses más tarde, la compañía valenciana lanza Excalibur 2, una actualización de este modelo que mejora su potencia. De esta forma, este nuevo Excalibur 2 ofrece:

  • Procesadores Intel de 7ª generación (anteriormente de 6ª)
  • Memoria DDR4 a 2133 Mhz  (antes DDR3 a 1600Mhz)
  • Tarjeta gráfica NVIDIA GeForce 940 MX (antes
  • Pantalla de  15 pulgadas
  • Tteclado numérico
  • Chasis 100% de aluminio
  • Touchpad “Synaptics”
  • Dos huecos para disco duro: uno principal (normalmente un sssd) y otro auxiliar (mecánico o ssd) del tipo SATA 3 y formato de 2,5 pulgadas.

Todo a partir de un precio ajustado a las prestaciones que ofrece, unos 919 € la versión Intel i5.

Excalibur, el modelo de 15 pulgadas de Slimbook

Podéis ver el anuncio en el siguiente enlace.

¿Qué es un Slimbook?

Slimbook es una empresa afincada en Valencia que se dedica a montar equipos ultraportátiles de calidad con la posibilidad de que en su interior venga instalado de fábrica una distribución gnu/linux. Su idea es, como toda empresa, ganar dinero y pagar las nóminas de sus empleados pero no deja nunca de lado ni a sus clientes con un servicio técnico excelente ni a la Comunidad Linuxera, ya que no solo tiene un foro sino que uno de sus gerentes siempre está dispuesto a participar en podcast o en grupos de Telegram como el de KDE – Cañas y Bravas.

En la actualidad ofrecen varios ultraportátiles de 13.3 pulgadas (entre ellos un KDE Slimbook y un Slimbook Pro que es el que yo tengo), el modelo Excalibur de 15 cuya actualización he presentado hoy y el Slimbook One, un pequeño ordenador pero solo en tamaño,ya que sus capacidades y potencia está a la altura de casi cualquier ordenador de sobremesa.

 

Domingo 19 de noviembre de 2017

Asociación LiGNUx: El cliente Open Source para Twitter, Corebird acaba de publicar su versión 1.7.3
Baltasar Ortega

Baltasar Ortega
KDE Blog

Lanzada la beta de KDE Aplicaciones 17.12

Nos acercamos a diciembre, el tercer mes del año elegido para que el equipo de desarrollo de KDE haga el lanzamiento de su gran revisión de sus aplicaciones. Pero antes de este gran actualización siempre hay que probar. Por eso me complace anunciar que hace unos días que ha sido lanzada la beta de KDE Aplicaciones 17.12. ¡Esto no para! ¡esto es KDE!

Lanzada la beta de KDE Aplicaciones 17.12

El pasado 17 de noviembre el equipo de desarrollo de la Comunidad KDE anunció la beta de KDE Aplicaciones 17.12, otro paso más en la evolución de su ecosistema de programas que tiene dos objetivos fundamentales: seguir mejorando las aplicaciones KDE y continuar la migración de más aplicaciones al entorno de trabajo Qt5/KF5.

Tras un trabajo que se inició antes del día que se lanzó KDE Aplicaciones 17.08, los desarrolladores han estado trabajando de forma silenciosa pero coordinada y constante preparando las nuevas funcionalidades que nos esperan en como regalo navideño.

Ahora es el momento de congelar las funcionalidades y las dependencias, y que el equipo de desarrollo (y todas aquellas personas que así lo deseen) se centren en corregir errores y pulir las aplicaciones.

Más información: KDE.org

Pruébalo y reporta errores

Lanzada la beta de KDE Aplicaciones 17.12

Konqi siempre se encuentra dispuesto a buscar bugs y solucionarlos.

Todas las tareas dentro del mundo del Software Libre son importantes: desarrollar, traducir, empaquetar, diseñar, promocionar, etc. Pero hay una que se suele pasar por alto y de la que solo nos acordamos cuando las cosas no nos funcionan como debería: buscar errores.

Desde el blog te animo a que tú seas una de las personas responsables del éxito del nuevo lanzamiento de las aplicaciones de KDE. Para ello debes participar en la tarea de buscar y reportar errores, algo básico para que los desarrolladores los solucionen para que el despegue de KDE Aplicaciones 16.04 esté bien pulido. Debéis pensar que en muchas ocasiones los errores existen porque no le han aparecido al grupo de desarrolladores ya que no se han dado las circunstancias para que lo hagan.

Para ello debes instalarte esta beta y comunicar los errores que salgan en bugs.kde.org, tal y como expliqué en su día en esta entrada del blog.

Jueves 16 de noviembre de 2017

La nueva vida del proyecto Qalculate!

Qalculate! es una calculadora científica para el escritorio con una larga y por momentos problemática historia. Con una potente librería de base que puede ser utilizada por otros programas (Plasma puede utilizarla para hacer cálculos desde krunner) permite trabajar con unidades, constantes físicas, realizar gráficos, utilizar números complejos, matrices, vectores, ofrecer precisión arbitraria, etcétera. En […]

Miércoles 15 de noviembre de 2017

Cómo crear tu propio comando en Linux

Desde que te inicias en el mundo de Linux hasta que tienes un nivel algo más de experto, en todos los manuales o información acerca de este sistema operativo acaba desembocando en una misma cosa, los comandos. Pero, ¿eres de esas personas curiosas a las que les gustaría saber cómo funciona un comando por dentro o crear el tuyo propio? sigue leyendo porque en este artículo te enseñamos cómo.

Estadística en Python: análisis de datos multidimensionales y regresión lineal (Parte IV)

Hasta ahora hemos tratado con una única variable por separado. Ahora vamos a ver qué podemos hacer con varias variables en la misma muestra (conjunto de datos). Nos interesará saber si están relacionadas o no (independencia o no). Si existe relación (estan correlacionadas) vamos a construir un modelo de regresión lineal.

Distribución conjunta de frecuencias

En el caso de dos variables, podemos construir una distribución conjunta de frecuencias. Se trata de una tabla de doble entrada donde cada dimensión corresponde a cada variable y el valor de las celdas representa la frecuencia del par. Para ello podemos usar crosstab también (de hecho, su uso original es este).

Ejemplo: En las votaciones a alcalde de la ciudad de Valladolid se presentaban Rafael, Silvia y Olga. Analiza los resultados e informa de quién fue el ganador de las elecciones. ¿Quién fue el candidato favorito en el barrio de La Rondilla?

usuario,voto,distrito
Nerea,Rafael,Centro
Esteban,Olga,Centro
Ismael,Silvia,Centro
Silvia,Rafael,Centro
Susana,Rafael,Centro
Laura,Rafael,Centro
Raquel,Olga,Centro
Eduardo,Olga,La Rondilla
Javier,Silvia,La Rondilla
Saturnino,Rafael,La Rondilla
Segundo,Olga,La Rondilla
Celia,Silvia,La Rondilla
Olga,Rafael,La Rondilla
Casimiro,Silvia,La Rondilla
Rafael,Silvia,La Rondilla

import pandas as pd

df = pd.read_csv("votos.csv")
tab = pd.crosstab(df["voto"],df["distrito"],margins=True) # margins si queremos generar la fila y columna All
total = tab["All"][:-1]
winner = total.idxmax()
print("El ganador de las elecciones fue "+str(winner))

rondilla = tab["La Rondilla"][:-1]
winner_rondilla = rondilla.idxmax()
print("El ganador en el distrito de La Rondilla fue "+str(winner_rondilla))

Como podéis ver, un humando podría haber sacado estas conclusiones observando simplemente la tabla conjunta de frecuencias. ¿Quién tiene más votos en total? Rafael, con 6 en All (la suma de los distritos). ¿Quién ha sacado más votos en La Rondilla? Silvia, con 4 en la columna de La Rondilla. Por último, ¿votó más gente en el Centro o en La Rondilla? Votaron más en La Rondilla (8 votos), que en el Centro (7 votos).

A las frecuencias All se las llama comúnmente distribuciones marginales. Cuando discriminamos las frecuencias a un solo valor de una variable, se habla de distribuciones condicionadas, en este caso hemos usado la distribución de votos condicionada al distrito La Rondilla. Estas distribuciones son univariantes como habréis sospechado.

Gráfico XY o bivariante

Una manera muy útil de observar posibles correlaciones es con el gráfico XY, solamente disponible para distribuciones bivariantes. Cada observación se representa en el plano como un punto. En Matplotlib podemos dibujarlo con scatter.

Ejemplo: Represente el gráfico XY de las variables ingresos y gastos de las familias.

id,ingresos,gastos
1,1000,800
2,1100,885
3,1100,880
4,1200,1000
5,1400,1000
6,900,750
7,600,550
8,2000,1200
9,1200,1000
10,1250,1000
11,3000,2400
12,2200,1700
13,1700,1300
14,1650,1220
15,1825,1500
16,1435,1200
17,980,800
18,1050,800
19,2105,1680
20,1280,1020
21,1590,1272
22,1300,1040
23,1200,1000
24,1110,890
25,850,680

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("ingresos_gastos.csv")
plt.scatter(df["ingresos"],df["gastos"])
plt.xlabel("Ingresos")
plt.ylabel("Gastos")
plt.show()

En la imagen podemos ver cada dato representado por un punto. En este ejemplo puede apreciarse como los puntos estan en torno a una línea recta invisible.

Covarianza

Para medir la relación entre dos variables podemos definir la covarianza:

\(
cov_{x,y}=\frac{\sum_{i=1}^{N}(x_{i}-\bar{x})(y_{i}-\bar{y})}{N}
\)

Pandas trae el método cov para calcular la matriz de covarianzas. De esta matriz, obtendremos el valor que nos interesa.

import pandas as pd

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

covarianza = df.cov()["ingresos"]["gastos"]

¿Y la covarianza qué nos dice? Por si mismo, bastante poco. Como mucho, si es positivo nos dice que se relacionarían de forma directa y si es negativa de forma inversa. Pero la covarianza está presente en muchas fórmulas.

Coeficiente de correlación lineal de Pearson

\(
r_{x,y}=\frac{cov_{x,y}}{s_{x}s_{y}}
\)

Uno de los métodos que usa la covarianza (aunque Pandas lo va a hacer solo) es el coeficiente de correlación lineal de Pearson. Cuanto más se acerque a 1 o -1 más correlacionadas están las variables. Su uso en Pandas es muy similar a la covarianza.

import pandas as pd

df = pd.read_csv("ingresos_gastos.csv")
r = df.corr(method="pearson")["ingresos"]["gastos"]

En este ejemplo concreto, el coeficiente de correlación de Pearson nos da 0.976175. Se trata de un valor lo suficientemente alto como para plantearnos una correlación lineal. Es decir, que pueda ser aproximado por una recta. Si este coeficiente es igual a 1 o -1, se puede decir que una variable es fruto de una transformación lineal de la otra.

Ajuste lineal

Vamos a intentar encontrar un modelo lineal que se ajuste a nuestras observaciones y nos permita hacer predicciones. Esta recta se llamará recta de regresión y se calcula de la siguiente forma:

\(
\hat{y}-\bar{y}=\frac{cov_{x,y}}{s_{x}^2}(x-\bar{x})
\)

Usando las funciones de varianza, media y covarianza Pandas no es muy complicado hacer una recta de regresión:

def recta(x):
    pendiente = df.cov()["ingresos"]["gastos"]/df["ingresos"].var()
    return pendiente*(x-df["ingresos"].mean())+df["gastos"].mean()

Que podemos probar visualmente:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

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

def recta(x):
    pendiente = df.cov()["ingresos"]["gastos"]/df["ingresos"].var()
    return pendiente*(x-df["ingresos"].mean())+df["gastos"].mean()

line = [recta(x) for x in np.arange(3000)]
plt.scatter(df["ingresos"],df["gastos"])
plt.plot(line)
plt.show()

Sin embargo SciPy ya nos trae un método que calcula la pendiente, la ordenada en el origen, el coeficiente de correlación lineal de Pearson y mucho más en un solo lugar. Es mucho más eficiente, se trata de linregress.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats as ss

df = pd.read_csv("ingresos_gastos.csv")
pendiente, ordenada, pearson, p, error = ss.linregress(df["ingresos"],df["gastos"])

def recta(x):
    return pendiente*x + ordenada

recta = np.vectorize(recta)
linea = recta(np.arange(3000))
plt.scatter(df["ingresos"],df["gastos"])
plt.plot(linea)
plt.show()

Además, para calcular los valores del gráfico, he usado vectorize de NumPy, que permite mapear los arrays nativos de NumPy. Más eficiente. Mismo resultado.

La ley de Ohm

¿Quién no ha oído hablar de la Ley de Ohm? Se trata de una ley que relaciona la diferencia de potencial con el amperaje dando lugar a la resistencia. La ley fue enunciada por George Simon Ohm, aunque no exactamente como la conocemos hoy en día. En este ejemplo vamos a deducir de cero la ley de Ohm. Este ejercicio se puede hacer en casa con datos reales si se dispone de un polímetro (dos mejor) y una fuente de alimentación con tensión regulable. Este ejercicio pueden hacerlo niños sin problema.

Olvida todo lo que sepas de la ley de Ohm

Es posible apreciar que en un circuito con una bombilla, si introducimos una pieza cerámica, la intensidad de la bombilla disminuye.

Cuando la corriente no atraviesa la resistencia
Cuando la corriente atraviesa la resistencia

¿Qué ocurre exactamente? ¿Por qué la bombilla tiene menos intensidad en el segundo caso?

Vamos a aislar la resistencia. Ponemos un voltímetro y un amperímetro y vamos cambiando la tensión de entrada. Anotamos la corriente medida en cada caso.

voltaje,intensidad
5,1.01
6,1.19
7,1.4
8,1.62
9,1.81
10,2.01

Podemos intentar hacer un ajuste lineal a estos datos. De modo, que una vez sepamos la intensidad, podamos predecir el voltaje.

import pandas as pd
from scipy import stats as ss

df = pd.read_csv("voltaje_intensidad.csv")
pendiente, ordenada_origen, pearson, p, error = ss.linregress(df["intensidad"],df["voltaje"])

print(pearson) # 0.99969158942375369 es un valor que indica una muy fuerte correlación lineal

Como Pearson nos da un número muy próximo a 1, podemos definir un modelo matemático siguiendo la regresión lineal.

Este modelo matemático se define así:

def voltaje(intensidad):
    return intensidad*pendiente + ordenada_origen

Y es lo que se conoce como la Ley de Ohm. En realidad, la ordenada en el origen tiene un valor muy cercano a cero, podemos quitarlo.

Así nos queda un modelo capaz de predecir lel voltaje en base a la intensidad y la pendiente de la recta. Ahora puedes probar cambiando la resistencia y observando que siempre ocurre lo mismo. Tenemos el voltaje por la pendiente del modelo. Este valor de la pendiente es lo que en física se llama resistencia y se mide en ohmios. Así se nos queda entonces la ley de Ohm que todos conocemos:

\(
V= IR
\)

En este caso la pendiente equivalía a 4.94 Ω, valor muy cercano a los 5 Ω que dice el fabricante.

La entrada Estadística en Python: análisis de datos multidimensionales y regresión lineal (Parte IV) aparece primero en Blog - Adrianistan.eu.

Cómo elegir el mejor cargador para tu smartphone Android

Actualmente estamos tan acostumbrados a cargar todo tipo de dispositivos que casi no le damos importancia a lo más esencial para hacerlo, el cargador.  Cuando compramos cualquier smartphone con nuestro sistema operativo para móviles favorito, Android, tendemos a pensar que viene con su propio cargador, pero no siempre es así.  Se está poniendo de moda que simplemente lleven consigo un

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.

TutorialesLinux.com: Liberar kernels antiguos en CentOS

Lunes 13 de noviembre de 2017

Informe de avance, noviembre

Finalmente he tenido un momento para instalar una versión de desarrollo de LyX 2.3 y jugar un poco con ella. ¡Ya deberían otros proyectos (no haré nombres) ofrecer versiones «estables» que sean tan estables como esta versión de desarrollo! Realmente no me ha dado problemas y por fin he comenzado a dar la última revisión […]

Viernes 10 de noviembre de 2017

Como hacer anuncios (Facebook + Instagram)

Como hacer publicidad que llegue realmente a quien queremos. La publicidad es algo cíclico, inviertes para ganar o para crear marca que te generará unos ingresos. Pero tienes que hacerlo correctamente. Hacer anuncios en Facebook Esta red social con más de 2000 millones de personas usándola al mes es una de mis preferidas a la […]

La entrada Como hacer anuncios (Facebook + Instagram) aparece primero en Blog de Informática ✏ Luisi.

Sábado 04 de noviembre de 2017

Estadística en Python: media, mediana, varianza, percentiles (Parte III)

Siguiendo en nuestro camino de la estadística descriptiva, hoy vamos a ver como calcular ciertas medidas relativas a una variable.

Fichero de ejemplo

alumno,nota
Araceli,9
Manuel,5
Pablo,7
Íñigo,4
Mario,3
Raúl,4
Verónica,6
Darío,10
Laura,4
Silvia,6
Eduardo,2
Susana,8
María,5

Medidas de centralización: media, mediana y moda

La media aritmética se define como la suma de N elementos dividida entre N. Se trata una medida bastante conocida entre la gente, aunque tiene el inconveniente de que es muy susceptible a valores extremos.

La mediana es el valor que dentro del conjunto de datos es menor que el 50% de los datos y mayor que el 50% restante.

La moda es el valor más repetido (solo aplicable a variables discretas).

Para calcular estas medidas, simplemente seleccionamos la variable estadística del DataFrame y usamos los métodos mean, median y mode respectivamente.

Ejemplo: Calcula la media, la mediana y la moda de las notas de los alumnos en el examen

import pandas as pd

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

media = df["nota"].mean()
mediana = df["nota"].median()
moda = df["nota"].mode()
print("""
    Media: %d
    Mediana: %d
    Moda: %d
""" % (media,mediana,moda))

Medidas de posición: cuartiles y percentiles

El concepto es igual al de mediana, salvo que aquí la división ya no es en el 50%. El 25% de las observaciones es menor que el primer cuartil. Los cuartiles abarcan el 25%, 50% y 75% de las observaciones. Los percentiles son una generalización con cualquier porcentaje.

Ejemplo: ¿Cuál es la nota que tiene como mínimo el 10% más nota de la clase?

Este enunciado nos pide calcular el percentil 90.

Usamos quantile y el porcentaje.

p90 = df["nota"].quantile(0.9)

El resultado es que el 10% con más nota de la clase ha sacado un 8,8 como mínimo. Mencionar que existen distintos tipos de interpolación para este cálculo. En la referencia podemos consultar cual nos conviene más.

Medidas de dispersión: desviación típica, rango, IQR, coeficiente de variación

La desviación típica mide la dispersión de los datos respecto a la media. Se trata de la raíz cuadrada de la varianza, que en sí misma no es una medida de dispersión. Para calcular la desviación típica usamos std y var para la varianza. (ddof=0 es necesario si quieres seguir la definición de desviación típica y varianza de algunas bibliografías, la razón es que hay un parámetro de ajuste que Pandas pone a 1, pero otras librerías ponen a 0). En Excel es la diferencia que hay entre DESVEST.M (ddof=1) y DESVEST.P (ddof=0).

std = df["nota"].std(ddof=0)
var = df["nota"].var(ddof=0)
assert(np.sqrt(var) == std)

El rango es la diferencia entre el máximo y el mínimo y el rango intercuartílico o IQR es la diferencia entre el tercer y el primer cuartil.

rango = df["nota"].max() - df["nota"].min()
iqr = df["nota"].quantile(0.75) - df["nota"].quantile(0.25)

El coeficiente de variación es una medida que sirve para comparar entre dos muestras, cuál varía más y cuál es más estable. Es una simple división, de la desviación típica sobre la media, sin embargo, SciPy nos ofrece una función ya preparada.

import pandas as pd
import scipy.stats as ss

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

cv = df["nota"].std(ddof=0) / df["nota"].mean()
cv2 = ss.variation(df["nota"])
assert(cv == cv2)

Medidas de asimetría

Para saber si los datos estan repartidos de forma simétrica existen varios coeficientes: Pearson, Fisher, Bowley-Yule, etc

Para no liarnos demasiado, podemos usar la función skew de SciPy.

asimetria = ss.skew(df["nota"])

Para valores cercanos a 0, la variable es simétrica. Si es positiva tiene cola a la derecha y si es negativa tiene cola a la izquierda.

Y con esto hemos visto los datos que se pueden extraer de una sola variable.

La entrada Estadística en Python: media, mediana, varianza, percentiles (Parte III) aparece primero en Blog - Adrianistan.eu.

Viernes 03 de noviembre de 2017

Xavier Genestos

Xavier Genestos
SYSADMIT

Linux: Saber versión instalada

En este artículo veremos las distintas formas con las que podemos ver la versión de Linux instalada en un equipo. De hecho, al existir muchas distribuciones de Linux, no existe una forma única para averiguar la versión. 1) Linux: Saber versión: Pantalla de consola (/etc/issue.net) En la pantalla de consola del servidor Linux,  podemos ver la versión instalada.  Por ejemplo:

Jueves 02 de noviembre de 2017

Acumos inteligencia artificial open source

Cada día vemos un poco más la inteligencia artificial integrada en nuestras vidas, muchos son los que utilizan a Cortana o Siri de forma habitual para sus tareas cotidianas en la actualidad. Pero no sólo están llegando al nivel de servicio de estas conocidas IA, también a muchos niveles todavía más humanos.  Y es que, que la inteligencia artificial formará parte de nosotros en un futuro

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.

Jueves 12 de octubre de 2017

Mejorar la velocidad de carga en WordPress

La velocidad de carga es un aspecto muy importante en el SEO. Cuanto mayor sea más clientes tendremos. No necesitas demasiados conocimientos técnicos. Puedes optimizar todas los puntos o varios. A mayor puntos completados mejor puntuación tendrás y mas rápido cargará tu página. Resumen: 1. Elegir el Hosting adecuado2. Haz un test de Plugins3. El […]

La entrada Mejorar la velocidad de carga en WordPress aparece primero en Blog de Informática ✏ Luisi.

Jueves 05 de octubre de 2017

Consejos para comprar un portátil en 2018

Con la intención de diversificar hoy vamos a ver cómo comprar un ordenador portátil útil pero barato. Lo primero que tenemos que tener claro es que no solo importa el precio si no para lo que lo vayamos a usar. Donde comprar un portátil Si tu presupuesto es bajo puedes comprar ordenador portatil segunda mano. Puedes […]

La entrada Consejos para comprar un portátil en 2018 aparece primero en Blog de Informática ✏ Luisi.

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.

Martes 19 de septiembre de 2017

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

Lunes 18 de septiembre de 2017

Gaspar Fernández

Gaspar Fernández
Poesía Binaria

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

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

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

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

Ejecutar algo cuando termina un comando

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

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

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

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

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

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

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

PROMPT_COMMAND="
space_notifier"

Y lo cargaremos de la siguiente manera:

source critp.sh

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

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

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

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

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

PROMPT_COMMAND="
space_notifier"

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

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

function notify() {
        NOTIFY=1
}

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

PROMPT_COMMAND="pcom"

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

notify; sleep 100

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

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

Ejecutar algo justo antes de llamar al comando

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

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

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

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

PROMPT_COMMAND="postcmd"

trap 'precmd' debug

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

1
logger $BASH_COMMAND

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

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

trap 'errcmd' err

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

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

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

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

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

trap 'denyaccess' DEBUG

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

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

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

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

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

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

trap 'changesudo' DEBUG

Incorporar a nivel de sistema estos scripts

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

1
source script.sh

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

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

Andrew Worley

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

Domingo 17 de septiembre de 2017

Xavier Genestos

Xavier Genestos
SYSADMIT

Linux: Deshabilitar IPv6

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

Miércoles 13 de septiembre de 2017

Gaspar Fernández

Gaspar Fernández
Poesía Binaria

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

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

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

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

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

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

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

    for s in sockets:
        s.close()

    return results

print (findFreePorts(10));

Y podemos montar una prueba rápida con netcat.

nc -l 0

Luego desde otro terminal podemos hacer:

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

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

Foto principal: Scott Walsh

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

El blog VR on Linux ha cerrado

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

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

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

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

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

Domingo 10 de septiembre de 2017

Xavier Genestos

Xavier Genestos
SYSADMIT

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

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

Sábado 09 de septiembre de 2017

Ramón Miranda

Ramón Miranda
Ramon Miranda

Muses DVD preset Pack in bundle format for 2.9!



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

Download here

Want to see some examples?



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


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





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



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


Download here

Bundle install

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


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

Miércoles 06 de septiembre de 2017

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?

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

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

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

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

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

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

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

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

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

Yo llevo ya 501 aportaciones (^_^) .

¿Qué suele preguntar StreetComplete?

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

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

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

Lunes 28 de agosto de 2017

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.

Lunes 14 de agosto de 2017

Bruno Exposito

Bruno Exposito
The Linux Alchemist

Sayonara OpenMailBox

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

rip-openmailbox

Tareas de mantenimiento y funding

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

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

Email Funding OpenMailBox

 

Nuevos planes y bugs para todos

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

Planes OpenMailBox

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

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

 

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

 

Desbandada general

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

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

 

Alternativas

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

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

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

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


Viernes 11 de agosto de 2017

Raúl González Duque

Raúl González Duque
Linux – Mundo Geek

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

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

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

Y finalmente:

  • El padre del usuario original, que mientras todos estaban discutiendo, se acercó a la tienda y compró la bombilla más barata que vendían

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

Lunes 22 de mayo de 2017

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

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

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

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

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

Hacer una foto con la webcam

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

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

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

Automatización de fotografías

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

Vamos a ello…

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

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

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

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

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

chmod +x take_photo.py

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

cp take_photo.py /usr/local/bin

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

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

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

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

Otras interesantes utilidades

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

Instalación

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

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

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

Lunes 15 de mayo de 2017

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

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

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

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

Varios sistemas Linux en un PC

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

Desarrollo de aplicaciones en Ubuntu

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

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

En otros casos…

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

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

Centralización

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

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

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

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

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

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

Directorios

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

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

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

Esto mismo lo podemos hacer con el resto de directorios…

Configuraciones

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

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

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

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

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

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

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

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

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

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

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

Conclusiones

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

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

Lenin Hernandez

Lenin Hernandez
Leninmhs

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

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

Sábado 06 de mayo de 2017

Raúl González Duque

Raúl González Duque
Linux – Mundo Geek

Linux en Windows: el Subsistema de Windows para Linux

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

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

Prerequisitos

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

Activar el Modo de programador

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

Activar el Modo de programador de Windows 10

Instalar el Subsistema de Windows para Linux

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

Activar el Modo de programador de Windows 10

¡Instalar Ubuntu en Windows!

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

Rock and roll

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

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

sudo apt update
sudo apt upgrade

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

ls /mnt/c

Para buscar un programa en los repositorios:

apt search término1 término2 término3

Para instalar un programa desde repositorio:

sudo apt install programa

Desinstalar Linux

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

lxrun /uninstall /full /y