Miércoles 19 de julio de 2017

Instalar Odoo 10 en Ubuntu 15.10

Introducción

Logotipo de Odoo

Logotipo de Odoo

Odoo (conocido hasta la versión 7 como OpenERP y anteriormente hasta la versión 4 como TinyERP) es mas que un sistema de ERP integrado de código abierto actualmente producido por la empresa belga Odoo S.A. El fabricante declara su producto como una alternativa de código abierto a SAP ERP y Microsoft Dynamics.

Servidor de aplicaciones Odoo en Ubuntu 15.10

Instrucciones para instalar el servidor de aplicaciones Odoo 10 con el instalador de nativo para distribuciones Debian / Ubuntu.

Odoo 10

Odoo 10

Instalación

Agregar repositorio Debian para instalar Odoo 10 a tu sistema, con los siguientes comandos:

$ sudo wget -O - https://nightly.odoo.com/odoo.key | sudo apt-key add -
$ sudo touch /etc/apt/sources.list.d/odoo.list
$ sudo nano /etc/apt/sources.list.d/odoo.list

Agregue el siguiente contenido:

deb http://nightly.odoo.com/10.0/nightly/deb/ ./

Debe actualizar el sistema operativo, con el siguiente comando:

$ sudo apt-get update && sudo apt-get upgrade

Librería wkhtmltopdf

Esta librería es necesaria para imprimir reportes PDF, usted debe instalar usted mismo wkhtmltopdf, para hacer esto ejecute el siguiente comando:

$ sudo apt-get install wkhtmltopdf

Servidor Odoo

Para instalar el servidor Odoo, ejecute el siguiente comando:

$ sudo apt-get install odoo

Luego de terminar la instalación el servidor Odoo, este instalara como dependencia sus librerías Python y el servidor de base de datos PostgreSQL.

Directorio de instalación

Al finalizar la descarga e instalación, el directorio base de la instalación del servidor de aplicación Odoo, esta en la ruta es la siguiente:

/usr/lib/python2.7/dist-packages/odoo/

Directorio de add-ons adicionales

Este directorio es muy útil para agregar nuevos módulos adicionales al servidor de aplicaciones Odoo, esta ruta es la siguiente:

/usr/lib/python2.7/dist-packages/odoo/addons

Configuración

El archivo de configuración del servidor de aplicaciones de Odoo, se encuentra en /etc/odoo/odoo.conf. Usted debe editar este archivo ejecutando el siguiente comando:

$ sudo nano /etc/odoo/odoo.conf

Su archivo debe lucir como el siguiente ejemplo de configuración:

[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /usr/lib/python2.7/dist-packages/odoo/addons

Cada vez que cambie este archivo debe detener, iniciar, reiniciar o forzar el inicio del servicio del servidor de aplicaciones de Odoo, el cual se explica como realizarlo en la siguiente sección.

Gestión del servidor de aplicación de Odoo

Para conocer los diversos parámetros de gestión para el servidor de aplicación de Odoo, ejecute el siguiente comando:

$ sudo service odoo
Usage: /etc/init.d/odoo {start|stop|restart|force-reload|status}

Estatus del servidor de aplicación de Odoo

Para conocer el estatus del servicio para el servidor de aplicación de Odoo, ejecute el siguiente comando:

sudo service odoo status
● odoo.service - LSB: Start odoo daemon at boot time
   Loaded: loaded (/etc/init.d/odoo)
   Active: active (running) since mié 2017-07-05 16:52:14 VET; 
     1 day 20h ago
     Docs: man:systemd-sysv-generator(8)
  Process: 630 ExecStart=/etc/init.d/odoo start (code=exited, 
   status=0/SUCCESS)
   CGroup: /system.slice/odoo.service
           └─640 /usr/bin/python /usr/bin/odoo --config /etc/odoo/odoo.conf 
                                 --logfile /var/log/odoo/odoo-server.log

jul 05 16:52:10 servidor systemd[1]: Starting LSB: Start odoo 
daemon at boot time...
jul 05 16:52:10 servidor odoo[630]: Starting odoo: ok
jul 05 16:52:14 servidor systemd[1]: Started LSB: Start odoo daemon 
at boot time.

Otra forma de verificar, Si el servidor de aplicación de Odoo esta en funcionamiento, se realiza ejecutando el siguiente comando:

$ sudo ps aux | grep odoo
odoo      1373  0.0  2.1 111776 41812 ?        Sl   13:57   0:03 
/usr/bin/python /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile 
/var/log/odoo/odoo-server.log
usuario   1945  0.0  0.1   5760  2048 pts/0    S+   15:19   0:00 
grep --color=auto odoo

Detener el servicio de Odoo

Para detener el servicio para el servidor de aplicación de Odoo, ejecute el siguiente comando:

$ sudo service odoo stop

Iniciar el servicio de Odoo

Para iniciar el servicio para el servidor de aplicación de Odoo, ejecute el siguiente comando:

$ sudo service odoo start

Reiniciar el servicio de Odoo

Para reiniciar el servicio para el servidor de aplicación de Odoo, ejecute el siguiente comando:

$ sudo service odoo restart

Forzar la recargar de configuración del servicio de Odoo

Para forzar la recargar de la configuración del servicio para el servidor de aplicación de Odoo, ejecute el siguiente comando:

$ sudo service odoo force-reload

Registro de eventos (archivo log)

Para depurar posibles errores del servidor de aplicaciones Odoo, puede consultar el archivo log, con el siguiente comando:

$ sudo tail -f /var/log/odoo/odoo-server.log

Acceder al servidor de aplicaciones Odoo

Abra el navegador en la siguiente dirección http://localhost:8069/, en esta dirección Web lucirá como la siguiente captura de pantalla:

Administrador de creación base de datos Odoo

Administrador de creación base de datos Odoo

Conclusiones

De esta forma usted ha aprendido a:

  • Instalar el servidor de aplicaciones Odoo.
  • Gestionar el servidor de aplicaciones Odoo con los comandos más comunes.
  • Auditar el registro de eventos del servidor de aplicaciones Odoo.
  • Acceder a la administrador de creación base de datos Odoo.

Referencia

¡Haz tu donativo!

Si te gusto este articulo, por favor, ayúdame a seguir escribiendo este tipo de articulo, haciendo donativos en Dolares vía el servicio Paypal haciendo clic aquí o en la siguiente imagen.


PayPal - The safer, easier way to pay online!


Instalar firewall en Ubuntu 15.10

Introducción

Firewall (cortafuego) en Ubuntu 15.10

Instrucciones para instalar un firewall (cortafuego) gestionado con las herramientas UFW y iptables usando el instalador de Debian / Ubuntu. Los metas específicos a lograr con este articulo son los siguientes:

  • Instalar y configurar un cortafuegos en su servidor.
  • Definir políticas de acceso al servidor usando la herramienta UFW.
  • Definir políticas de acceso al servidor usando la herramienta iptables.

¿Qué es un Firewall (cortafuego)?

Un firewall (cortafuegos) es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas. Se trata de un dispositivo o conjunto de dispositivos configurados para permitir, limitar, cifrar, descifrar, el tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios.

Diagrama de red implementando con firewall

Diagrama de red con cortafuego. Cortesía: www.noticias3d.com

También es frecuente conectar el cortafuegos a una tercera red, llamada zona desmilitarizada o DMZ, en la que se ubican los servidores de la organización que deben permanecer accesibles desde la red exterior.

¿Qué es Netfilter/iptables?

Netfilter es un framework disponible en el núcleo Linux que permite interceptar y manipular paquetes de red. Dicho framework permite realizar el manejo de paquetes en diferentes estados del procesamiento. Netfilter es también el nombre que recibe el proyecto que se encarga de ofrecer herramientas libres para cortafuegos basados en Linux.

El componente más popular construido sobre Netfilter es iptables, una herramienta de cortafuegos que permite no solamente filtrar paquetes, sino también realizar traducción de direcciones de red (NAT) para IPv4 o mantener registros de log. El proyecto Netfilter no sólo ofrece componentes disponibles como módulos del núcleo sino que también ofrece herramientas de espacio de usuario y librerías.

Iptables es el nombre de la herramienta de espacio de usuario mediante la cual el administrador puede definir políticas de filtrado del tráfico que circula por la red. El nombre iptables se utiliza frecuentemente de forma errónea para referirse a toda la infraestructura ofrecida por el proyecto Netfilter. Sin embargo, el proyecto ofrece otros subsistemas independientes de iptables tales como el connection tracking system o sistema de seguimiento de conexiones, que permite encolar paquetes para que sean tratados desde espacio de usuario. iptables es un software disponible en prácticamente todas las distribuciones de Linux actuales.

¿Qué es UFW?

Uncomplicated Firewall (ufw) es un cortafuegos diseñado para ser de fácil uso desarrollado por Ubuntu. Utiliza la línea de comando para configurar las iptables usando un pequeño número de comando simples.

Instalación

Debe actualizar el sistema, con el siguiente comando:

$ sudo apt-get update && sudo apt-get upgrade

Para instalar el cortafuegos UFW, ejecute el siguiente comando:

$ sudo apt-get install ufw

La herramienta iptables es instalada como una dependencia por el paquete ufw.

Usted puede ver si iptables está corriendo, puede comprobar que los módulos del cortafuegos en kernell están cargados correctamente, para esto ejecute el siguiente comando:

$ sudo lsmod | grep ip_tables

Ademas puede inspeccionar cuales en reglas por defecto están cargadas actualmente, para esto ejecute el siguiente comando:

$ sudo iptables -L

Configuración de UFW

Es recomendando activar el registro de eventos, de esta forma podrá auditar cualquier evento o sucesos en el cortafuegos, para esto ejecute el siguiente comando:

$ sudo ufw logging full

Si usted requiere desactivar el registro de eventos, ejecute el siguiente comando:

$ sudo ufw logging off

Gestión del cortafuegos con UFW

Al instalarse la herramienta UFW se gestiona vía linea de comando, a continuación se mostraran algunos usos comunes:

Estatus del cortafuegos con UFW

Para conocer el estatus detallado del cortafuegos usando UFW, ejecute el siguiente comando:

$ sudo ufw status verbose
Status: active
Logging: on (full)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

Habilitar cortafuegos con UFW

Por defecto, el cortafuegos con UFW esta deshabilitado, para habilitarlo ejecute el siguiente comando:

$ sudo ufw enable

Deshabilitar cortafuegos con UFW

Si mas adelante requiere deshabilitar el cortafuegos usando la herramienta UFW, ejecute el siguiente comando:

$ sudo ufw disable
Firewall stopped and disabled on system startup

Registro de eventos (Archivo log)

Al ejecutar el comando sudo ufw logging full, usted puede consultar el archivo log de eventos para supervisar posibles errores del cortafuegos usando la herramienta UFW, para hacer esto ejecute el siguiente comando:

$ sudo tail -f /var/log/ufw.log

Otro comando alternativo útil para consultar el archivo de eventos puede ser consultar el archivo syslog con el siguiente comando:

$ sudo tail -f /var/log/syslog | grep UFW

Definiendo reglas

Un cortafuegos generalmente restringe todo y de forma granular usted va definiendo reglas de acceso o restringir a servicios específicos, al cual otorgaran privilegios sobre recursos del sistema.

Reglas iptables

Antes de que podamos enfrentarnos a iptables necesitamos tener al menos una comprensión básica de su forma de trabajo. Esta herramienta usa el concepto de direcciones ip, protocolos (tcp, udp, icmp) y puertos. No necesitamos ser expertos en estos temas para comenzar (ya que podemos buscar cualquier información que necesitemos), pero ayuda tener una comprensión general.

Iptables ubica las reglas dentro de cadenas predefinidas (INPUT, OUTPUT y FORWARD) que son comprobadas contra cualquier tráfico de red (paquetes IP) relevantes para esas cadenas y una decisión es tomada sobre que hacer con cada paquete basado en el significado de esas reglas, por ejemplo aceptar o rechazar el paquete. Estas acciones son referidas como objetivos (targets), de las cuales las dos más usadas son DROP para rechazar un paquete o ACCEPT para permitir el paquete.

Cadenas

Existen tres cadenas predefinidas en la tabla de filtrado para las cuales podemos adicionar reglas para procesar los paquetes IP que pasan a través de las cadenas. Estas cadenas son:

  • INPUT – Todos los paquetes dirigidos a la computadora anfitrión.
  • OUTPUT – Todos los paquetes originados en la computadora anfitrión.
  • FORWARD – Todos los paquetes que no son originados o dirigidos a la computadora anfitrión, pero pasan a través (enrutados) de la computadora anfitrión. Esta cadena es usada si usted está usando su computadora como un enrutador.

La mayor parte del tiempo, estaremos tratando con la cadena INPUT para filtrar los paquetes que entran a nuestra computadora – y así mantener fuera a los muchachos malos.

Las reglas son adicionadas a la lista de cada cadena. Un paquete es comprobado contra cada regla en turno, comenzando por arriba. Si el paquete coincide con esa regla, entonces una acción es realizada, ej. aceptar (ACCEPT), o rechazar (DROP) el paquete. Una vez que la regla ha coincidido y una acción realizada, entonces el paquete es procesado de acuerdo al resultado de la regla y no es procesada por reglas posteriores en la cadena. Si un paquete pasa todas las reglas en la cadena hasta abajo y llega al final sin haber coincidido con regla alguna, entonces es utilizada la acción por defecto para esa cadena. Esto se refiere a la política por defecto y puede estar fijada en aceptar o en rechazar el paquete.

El concepto de la política predeterminada dentro de las cadenas permite dos posibilidades fundamentales que debemos considerar primero, antes de decidir cómo vamos a organizar el cortafuegos.

1. Podemos fijar una política predeterminada para rechazar todos los paquetes y entonces adicionar reglas para permitir (ACCEPT) paquetes específicos que pueden venir de direcciones IP confiables o para algunos puertos en los cuales tenemos servicios corriendo, tales como bittorrent, servidor FTP, servidor Web, servidor de ficheros Samba, etc.

O alternativamente,

2. Podemos fijar una política para permitir todos los paquetes y entonces adicionar reglas que rechacen paquetes específicos que pueden venir de direcciones o rangos IP engorrosas o para algunos puertos en los cuales tenemos servicios privados o ningún servicio corriendo.

Generalmente, la opción 1 de arriba es usada para la cadena INPUT donde controlamos a que queremos permitir acceso en nuestra computadora y la opción 2 sería usada en la cadena OUTPUT donde generalmente confiamos en el tráfico que está saliendo de (originado en) nuestra computadora.

A continuación unos ejemplos típicos de permisos comunes:

Habilitar conexiones SSH/TCP

Usted puede garantizar el acceso remoto por ssh al servidor, ejecutando el siguiente comando:

$ sudo ufw allow ssh/tcp

Si en algún momento requiere remover esta regla, ejecute el siguiente comando:

$ sudo ufw delete allow ssh/tcp

Habilitar conexiones TCP al puerto 80

Si usted tiene instalado un servidor Web como Apache 2, debe garantizar el acceso al mismo por puerto 80:

$ sudo ufw allow in 80

Si en algún momento requiere remover esta regla, ejecute el siguiente comando:

$ sudo ufw delete allow in 80

Bloqueo de servicios

Usted puede bloquear servicios de su sistema, un caso común, es el bloqueo del tráfico SMTP saliente, solo si su servidor será empleado para enviar correo interno (dentro del mismo servidor), para realizar esto es posible bloquear el correo saliente, el cual emplea el puerto 25, ejecutando el siguiente comando:

$ sudo ufw deny out 25

Si en algún momento requiere remover esta regla, ejecute el siguiente comando:

$ sudo ufw delete deny out 25

Bloque de URL

Para bloquear una URL usando reglas iptables, usted debe denegar todas las conexiones entrantes desde la dirección vtv.gob.ve, ejecute el siguiente comando:

$ sudo iptables -A INPUT -p tcp -s vtv.gob.ve -d 127.0.0.1 \
                --dport 80 -j DROP

Denegar todas las conexiones de salida hacia la dirección vtv.gob.ve, ejecute el siguiente comando:

$ sudo iptables -A OUTPUT -p tcp -d www.vtv.gob.ve \
                --dport 80 -j DROP

Si en algún momento requiere remover esta regla, ejecute el siguiente comando:

$ sudo iptables -D INPUT -p tcp -s vtv.gob.ve -d 127.0.0.1 \
                --dport 80 -j DROP
$ sudo iptables -D OUTPUT -p tcp -d www.vtv.gob.ve \
                --dport 80 -j DROP

Redireccionamiento de puertos

Lo primero será que debemos tener habilitado el forwarding en el servidor, para ello pondrá lo siguiente:

$ echo "1" > sudo /proc/sys/net/ipv4/ip_forward

También pueden usar este otro comando, en caso de que el anterior no les funcione, ejecutando lo siguiente:

$ sudo sysctl net.ipv4.ip_forward=1
$ sudo sysctl -a | grep net.ipv4.ip_forward

Próximo, es habilitar las nuevas configuraciones al archivo de configuración, con el siguiente comando:

$ sudo sysctl -p

Luego reinicie el servicio de red:

$ sudo service networking restart

Supongamos que se requiere redireccionar el tráfico del puerto 8080 al 443 en el mismo servidor con una IP en específica, sería agregando el parámetro -s … ej. redireccionaré solo el tráfico que venga desde 192.168.0.101, para ello, ejecute el siguiente comando:

$ sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.0.101 \
                --sport 8080 -j DNAT --to-destination 192.168.0.101:443
$ sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.0.101 \ 
                --dport 8080 -j DNAT --to-destination 192.168.0.101:443

Y finalmente necesita enmascarar la dirección IP, para que el destino reciba el tráfico con la IP del servidor fuente:

$ sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Usted comprobar las reglas iptables puede ver las reglas crudas del cortafuegos, ejecutando el siguiente comando:

$ sudo ufw show raw | grep 192.168.0.101
Chain PREROUTING (policy ACCEPT 13 packets, 4364 bytes)
pkts     bytes target  prot opt in  out  source         destination         
   0      0 DNAT       tcp  --  *   *    192.168.0.101  0.0.0.0/0   tcp dpt:8080 to:192.168.0.101:443

Si después requiere deshabilitar el cortafuegos, ejecute el siguiente comando:

$ sudo iptables -t nat -D PREROUTING -p tcp -s 192.168.0.101 \
                --sport 8080 -j DNAT --to-destination 192.168.0.101:443
$ sudo iptables -t nat -D PREROUTING -p tcp -s 192.168.0.101 \
                --dport 8080 -j DNAT --to-destination 192.168.0.101:443
$ sudo iptables -t nat -D POSTROUTING -j MASQUERADE

Conclusiones

De esta forma usted ha aprendido a:

  • Instalar un cortafuego usando UFW.
  • Configurar básicamente el funcionamiento UFW.
  • Crear políticas de permisos en su cortafuego para su servidor.
  • Gestionar el cortafuegos con los comando más comunes.
  • Auditar el registro de eventos del cortafuegos con UFW y iptables.
  • Probar el funcionamiento de las políticas del cortafuegos usando utilidades más comunes.

Referencias

¡Haz tu donativo!

Si te gusto este articulo, por favor, ayúdame a seguir escribiendo este tipo de articulo, haciendo donativos en Dolares vía el servicio Paypal haciendo clic aquí o en la siguiente imagen.


PayPal - The safer, easier way to pay online!


Lunes 17 de julio de 2017

Instalar DNS BIND9 en Ubuntu 15.10

Introducción

Servidor de DNS BIND9 en Ubuntu 15.10

Instrucciones para instalar el servidor DNS BIND9 usando el instalador de Debian / Ubuntu. Los metas específicos a lograr con este articulo son los siguientes:

  • Instalar y configurar un DNS local como servidor maestro.
  • Establecer un dominio llamado “midns.com”.

¿Qué es un servidor DNS?

Un servidor DNS (Domain Name System – Sistema de nombres de dominio) es un servidor que traduce nombres de dominio a IPs y viceversa. En las redes TCP/IP, cada PC dispone de una dirección IP para poder comunicarse con el resto de PCs. Es equivalente a las redes de telefonía en las que cada teléfono dispone de un número de teléfono que le identifica y le permite comunicarse con el resto de teléfonos.

Servidor DNS maestro principal

Un servidor DNS maestro principal se puede usar para servir registros DNS (grupos de registros los cuales se denominan zonas) para un nombre de dominio registrado o uno imaginario (pero sólo si se utiliza en una red restringida).

¿Qué es BIND9?

Berkeley Internet Domain Name - BIND

Berkeley Internet Domain Name – BIND

BIND (Del Ingles Berkeley Internet Name Domain) es el servidor de DNS más comúnmente usado en Internet, especialmente en sistemas Unix, en los cuales es un Estándar de facto. Es comúnmente usado en sistemas GNU/Linux.

Instalación

Debe actualizar el sistema, con el siguiente comando:

$ sudo apt-get update && sudo apt-get upgrade

Para instalar el servidor DNS BIND9, ejecute el siguiente comando:

$ sudo apt-get install bind9 bind9-doc dnsutils

Configuración

BIND9 puede proporcionar muchos diferentes servicios de DNS. Algunas de los ambientes de configuraciones más útiles son:

  • Servidor de caché.
  • Servidor maestro principal.
  • Servidor maestro secundario.
  • Híbridos (DNS de Caching y Primary Master).
  • Servidores Stealth.

Archivos de configuración del BIND9

El archivo principal de configuración del DNS se encuentra en la ruta /etc/bind/named.conf, pero este hace referencia a otros cuantos archivos como por ejemplo:

  • Archivo named.conf: Archivo principal de configuración.
  • Archivo named.conf.options: Opciones genéricas.
  • Archivo named.conf.local: Especificación particular de este servidor DNS.
  • Archivo db.127: Especificación dirección de retorno.
  • Archivo db.root: DNSs de nivel superior.
  • Otros archivos: db.0, db.255, db.empty, db.local, rndc.conf, rndc.key, zones.rfc1918.

Gestión del servicio BIND9

BIND9 al instalarse se gestiona como un servicio o demonio de Unix/Linux, para conocer los diversos parámetros de gestión para el servicio BIND9, ejecute el siguiente comando:

$ sudo service bind9 
 * Usage: /etc/init.d/bind9 {start|stop|reload|restart|force-reload|status}

Estatus del servicio BIND9

Para conocer el estatus del servicio para el servidor BIND9, ejecute el siguiente comando:

$ sudo service bind9 status
 bind9.service - BIND Domain Name Server
   Loaded: loaded (/lib/systemd/system/bind9.service; enabled; 
           vendor preset: enabled)
  Drop-In: /run/systemd/generator/bind9.service.d
           └─50-insserv.conf-$named.conf
   Active: active (running) since dom 2017-07-09 08:56:58 VET; 2h 8min ago
     Docs: man:named(8)
  Process: 7335 ExecStop=/usr/sbin/rndc stop (code=exited, status=0/SUCCESS)
 Main PID: 7340 (named)
   CGroup: /system.slice/bind9.service
           └─7340 /usr/sbin/named -f -u bind

jul 05 16:52:10 servidor systemd[1]: Starting LSB: Start odoo 
daemon at boot time...
jul 05 16:52:10 servidor odoo[630]: Starting odoo: ok
jul 05 16:52:14 servidor systemd[1]: Started LSB: Start odoo daemon 
at boot time.

Otra forma, de verificar Si el servicio BIND9 esta en funcionamiento, se realiza ejecutando el siguiente comando:

$ sudo ps aux | grep named
bind 7340  0.0  0.4 83660  9456 ? Ssl 08:56 0:00 /usr/sbin/named -f -u bind

Detener el servicio de BIND9

Para detener el servicio para el servidor BIND9, ejecute el siguiente comando:

$ sudo service bind9 stop

Iniciar el servicio de BIND9

Para iniciar el servicio para el servidor BIND9, ejecute el siguiente comando:

$ sudo service bind9 start

Reiniciar el servicio de BIND9

Para reiniciar el servicio para el servidor BIND9, ejecute el siguiente comando:

$ sudo service bind9 restart

Forzar la recargar de configuración del servicio de BIND9

Para forzar la recargar de la configuración del servicio BIND9, ejecute el siguiente comando:

$ sudo service bind9 force-reload

Registro de eventos (Archivo log)

Para depurar posibles errores del servicio BIND9, puede consultar el archivo log, con el siguiente comando:

$ sudo tail -f /var/log/named/named.log

Servidor DNS maestro con BIND9

La configuración básica para un servidor maestro usando BIND9, consta en definir lo siguiente:

  1. Zonas de búsquedas “directas” e “inversas”.
  2. Resolución de nombres.

Zonas DNS

Las zonas pueden declararse en el archivo named.conf.local, para hacer esto debe ejecutar con el siguiente comando:

$ sudo nano /etc/bind/named.conf.local

Entonces agregue las siguientes configuraciones:

// Archivo para búsquedas directas, es la definición de zona
// Remplace midns.com con su nombre de dominio
zone    "midns.com" {
        type master;
        file "/etc/bind/db.midns.com";
};

// Archivo para búsquedas inversas, es la definición de zona
// para el DNS reverso. Remplace 0.168.192 con su dirección
// IP en notación reverso - e.j. mi dirección de red es 192.168.0
zone    "0.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.192";
};

Seguidamente, pruebe la configuración ingresada, en búsqueda de no contener errores, ejecute el siguiente comando:

$ sudo named-checkconf

Consejo: El comando “named-checkconf” analiza que la sintaxis de la configuración sea correcta. Esto es importante debido a si al transcribir esta configuración previa se le olvida algún “punto y coma”, dará errores y no funcionará BIND9 correctamente.

Resolución de nombres

La resolución de nombres convierte los nombres de los sistemas en sus correspondientes direcciones IP. Estos debe declararse en el archivo named.conf.options, para hacer esto debe ejecutar el siguiente comando:

$ sudo nano /etc/bind/named.conf.options

Entonces agregue la siguiente configuración:

        forwarders {
              # Remplace con la IP de su servidor DNS actual
              192.168.0.1;
        };

Consejo: Para detectar el DNS actual de su conexión a red, ejecute el siguiente comando:

$ nmcli device show | grep IP4.DNS

Adicionalmente, usted debe agregar la IP del servidor DNS en la directiva “listen-on” en el archivo named.conf.options, para hacer esto debe ejecutar el siguiente comando:

$ sudo nano /etc/bind/named.conf.options

Entonces agregue la siguiente configuración:

        listen-on port 53 { 127.0.0.1; 192.168.0.100; };
        listen-on-v6 { any; };

De nuevo vuelva probar que la configuración ingresada no contenga errores, ejecute el siguiente comando:

$ sudo named-checkconf

Consejo: El comando “named-checkconf” analiza que la sintaxis de la configuración sea correcta. Esto es importante debido a si al transcribir esta configuración previa se le olvida algún “punto y coma”, dará errores y no funcionará BIND9 correctamente.

Zona de Búsqueda Directa

Las resoluciones de esta zona devuelven la dirección IP correspondiente al recurso solicitado. Realiza las resoluciones que esperan como respuesta la dirección IP de un determinado recurso.

Base de datos de búsqueda directa

Supongamos que en nuestra red local tenemos un departamento llamado reservaciones con 10 PCs con IPs que van desde la 192.168.0.100 hasta 192.168.0.110 y cuyos nombres van desde reserva1 hasta reserva10, luego un servidor Web que además es servidor DNS (servidor). Entonces la base de datos para búsquedas directas describe cada nombre de las PCs a su dirección IP asignada.

En este caso hipotético, la base de datos para búsquedas directas en la zona “midns.com” se debe guardar en el archivo “db.midns.com”, este debe crearse manualmente.

Para crear el archivo “db.midns.com”, ejecute el siguiente comando:

$ sudo cp /etc/bind/db.local /etc/bind/db.midns.com

Edite el archivo “db.midns.com”, ejecute el siguiente comando:

$ sudo nano /etc/bind/db.midns.com

Entonces agregue las siguientes configuraciones:

;
; BIND zone file for midns.com
;

$TTL    3D
@       IN      SOA     ns.midns.com.     root.midns.com. (
                        2010111101      ; serial
                        8H              ; refresh
                        2H              ; retry
                        4W              ; expire
                        1D )            ; minimum
;
                NS      ns              ; Inet address of name server

ns              A       192.168.0.100

midns.com.       A       192.168.0.100
server         A        192.168.0.100

virtual         A        192.168.0.100

router          A       192.168.0.1     ; router ADSL
gateway         CNAME   router
gw              CNAME   router
proxy           CNAME   server
www             CNAME   virtual

Las primeras líneas son unos parámetros relacionados con la actualización del DNS (número de serie y periodos de actuación). Las dos siguientes líneas indican quién es el servidor primario (NS = Name Server). Las siguientes líneas especifican las IPs de los distintos PCs componentes del dominio (A = Address). Adicionalmente las ultimas lineas son registros que mapean como un alias de un nombre a otro nombre usando (CNAME = Canonical Name) sólo se debe utilizar cuando no hay otros registros en ese nombre.

Puede verificar el fichero de configuración de la zona “midns.com” no contenga errores:

$ sudo named-checkzone midns.com /etc/bind/db.midns.com

La verificación se realiza por que si olvida algún punto y coma, dará errores y no funcionará correctamente. Este comando analizara que esté correcta la sintaxis del mismo.

Zona de Búsqueda Inversa

Las resoluciones de esta zona buscan un nombre de equipo en función de su dirección IP; una búsqueda inversa tiene forma de pregunta, del estilo “¿Cuál es el nombre DNS del equipo que utiliza la dirección IP 192.168.0.100?”.

Base de datos de búsqueda inversa

La base de datos para las búsquedas inversas en la zona “0.168.192.in-addr.arpa” se debe guardar en el archivo “db.192”, este debe crearse manualmente.

Para crear el archivo “db.192”, ejecute el siguiente comando:

$ sudo cp /etc/bind/db.127 /etc/bind/db.192

Edite el archivo “db.192”, ejecute el siguiente comando:

$ sudo nano /etc/bind/db.192

Entonces agregue las siguientes configuraciones:

;
; BIND zone file for 192.168.0.xxx
;

$TTL    3D
@       IN      SOA     ns.midns.com.    root.midns.com. (
                        2010111101      ; serial
                        8H              ; refresh
                        2H              ; retry
                        4W              ; expire
                        1D )            ; minimum
;
                NS      ns.midns.com.   ; Nameserver address

100             PTR     server.midns.com.
100             PTR     ns.midns.com.
100             PTR     www.midns.com.
100             PTR     virtual.midns.com.
1               PTR     router.midns.com.

Puede verificar el fichero de configuración de la zona “0.168.192.in-addr.arpa” no contenga errores:

$ sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/db.192

La verificación se realiza por que si olvida algún punto y coma, dará errores y no funcionará correctamente. Este comando analizara que esté correcta la sintaxis del mismo.

Configuraciones de red para DNS local

Adicionalmente, usted debe agregar configuraciones de red para el servidor DNS local, primero debe agregar el dominio “midns.com” y la dirección IP del servidor DNS en el archivo /etc/resolv.conf, con el siguiente comando:

$ sudo nano /etc/resolv.conf

Entonces agregue la siguiente configuración:

domain midns.com
search midns.com
nameserver 192.168.0.100
nameserver 127.0.0.1

Agregar a su archivo /etc/hosts el dominio “midns.com”, con el siguiente comando:

$ sudo nano /etc/hosts

Entonces agregue la siguiente configuración:

127.0.0.1 midns.com

Aplicar cambios de configuración

Luego de aplicar las configuraciones anteriores, de aplicar los cambios hechos en la configuración actual del servicio BIND9, para lograr esto ejecute el siguiente comando:

$ sudo service bind9 restart

Asi de esta forma ya tiene :

  • El servidor BIND9 correctamente configurado.
  • Definidas las zonas de búsqueda “directas” e “inversas”.
  • Aplicadas configuraciones de red para el DNS local.

Funcionamiento del servidor DNS

Para comprar el funcionamiento correcto del DNS previamente configurado, usted ha instalado previamente unas utilidades las cuales se describen a continuación:

Utilidades dnsutils

Al instalar el paquete dnsutils usted dispone dos (02) nuevas utilidades las cuales se describen a continuación:

Herramienta “dig”

Es una utilidad de búsqueda de DNS, dig significa en Ingles (domain information groper), esta es una herramienta flexible para interrogar servidores de nombres DNS. Realiza búsquedas de DNS y muestra las respuestas que se devuelven desde el servidor de nombres que se consultó. La mayoría de los administradores de DNS utilizan dig para solucionar problemas de DNS debido a su flexibilidad, facilidad de uso y claridad de salida.

Para comprobar el dominio “www.midns.com” del DNS usando la herramienta “dig”, ejecute el siguiente comando:

$ dig @192.168.0.100 www.midns.com
; <<>> DiG 9.9.5-11ubuntu1.3-Ubuntu <<>> @192.168.0.100 www.midns.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52020
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.midns.com. IN A

;; ANSWER SECTION:
www.midns.com. 259200 IN CNAME virtual.midns.com.
virtual.midns.com. 259200 IN A 192.168.0.100

;; AUTHORITY SECTION:
midns.com. 259200 IN NS ns.midns.com.

;; ADDITIONAL SECTION:
ns.midns.com. 259200 IN A 192.168.0.100

;; Query time: 60 msec
;; SERVER: 192.168.0.100#53(192.168.0.100)
;; WHEN: Fri Jul 07 22:10:23 VET 2017
;; MSG SIZE rcvd: 132

También pude comprobar el dominio “midns.com”, con el siguiente comando:

$ dig @192.168.0.100 midns.com

; <<>> DiG 9.9.5-11ubuntu1.3-Ubuntu <<>> @192.168.0.100 midns.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8861
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;midns.com.	IN	A

;; ANSWER SECTION:
midns.com. 259200 IN	A	192.168.0.100

;; AUTHORITY SECTION:
midns.com. 259200 IN	NS	ns.midns.com.

;; ADDITIONAL SECTION:
ns.midns.com. 259200	IN A	192.168.0.100

;; Query time: 34 msec
;; SERVER: 192.168.0.100#53(192.168.0.100)
;; WHEN: Sat Jul 08 00:25:49 VET 2017
;; MSG SIZE  rcvd: 106

Herramienta “nslookup”

Es una utilidad de consulta los servidores de nombres de Internet de forma interactiva. Nslookup tiene dos modos de trabajo:

  • El modo interactivo permite al usuario consultar los servidores de nombres para obtener información sobre varios hosts y dominios o para imprimir una lista de hosts en un dominio.
  • El modo no interactivo se utiliza para imprimir nombre e información solicitada para un host o dominio.

Para comprobar el dominio “www.midns.com” del DNS usando la herramienta “nslookup”, ejecute el siguiente comando:

$ nslookup www.midns.com
Server: 192.168.0.100
Address: 192.168.0.100#53

www.midns.com canonical name = virtual.midns.com.
Name: virtual.midns.com
Address: 192.168.0.100

También pude comprobar el dominio “midns.com”, con el siguiente comando:

$ nslookup midns.com
Server: 192.168.0.100
Address: 192.168.0.100#53

Name: midns.com
Address: 192.168.0.100

Además pude comprobar la zona inversa del DNS, con el siguiente comando:

$ nslookup 192.168.1.1
Server: 192.168.1.101
Address: 192.168.1.101#53

1.1.168.192.in-addr.arpa name = router.posadaturisticalamarucha.com.

Utilidades por defecto disponibles

Adicionalmente existen otras herramientas de linea de comando incluida por defecto en los sistemas operativo, muy útil para la interacción en redes y especifico con el servidor DNS. A continuación describo dos de estas:

Herramienta “host”

Es una utilidad simple para realizar búsquedas DNS. Normalmente se utiliza para convertir nombres a direcciones IP y viceversa. Cuando no se dan argumentos ni opciones, el host imprime un breve resumen de sus argumentos y opciones de la línea de comando.

Para comprobar el dominio “www.midns.com” del DNS usando la herramienta “host”, ejecute el siguiente comando:

$ host www.midns.com
www.midns.com is an alias for virtual.midns.com.
virtual.midns.com has address 192.168.0.10

También pude comprobar el dominio “midns.com”, con el siguiente comando:

$ host midns.com
midns.com has address 192.168.0.10

Además pude comprobar la zona inversa del DNS, con el siguiente comando:

$ host 192.168.1.1
1.1.168.192.in-addr.arpa domain name pointer router.posadaturisticalamarucha.com.

Herramienta “ping”

Del Ingles Ping (Packet Internet Groper o Buscador de paquetes en Internet) es una herramienta de comandos incluida por defecto en los sistemas operativos con la cual tendremos la posibilidad de verificar el estado de una conexión a un equipo local o remoto y esto es bastante útil para comprobar si una determinada dirección IP o equipo es accesible o no y de esta manera tomar acciones administrativas.

Para comprobar el dominio “www.midns.com” del DNS usando la herramienta “ping”, ejecute el siguiente comando:

$ ping -c3 www.midns.com
PING www.midns.com (127.0.0.1) 56(84) bytes of data.
64 bytes from www.midns.com (127.0.0.1): icmp_seq=1 ttl=64 time=0.173 ms
64 bytes from www.midns.com (127.0.0.1): icmp_seq=2 ttl=64 time=0.126 ms
64 bytes from www.midns.com (127.0.0.1): icmp_seq=3 ttl=64 time=0.090 ms

--- www.midns.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.090/0.129/0.173/0.036 ms

También pude comprobar el dominio “midns.com”, con el siguiente comando:

$ ping -c3 midns.com
PING www.midns.com (127.0.0.1) 56(84) bytes of data.
64 bytes from www.midns.com (127.0.0.1): icmp_seq=1 ttl=64 time=0.139 ms
64 bytes from www.midns.com (127.0.0.1): icmp_seq=2 ttl=64 time=0.120 ms
64 bytes from www.midns.com (127.0.0.1): icmp_seq=3 ttl=64 time=0.151 ms

--- www.midns.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.120/0.136/0.151/0.018 ms

Conclusiones

De esta forma usted ha aprendido a:

  • Instalar el servidor DNS con BIND9.
  • Configurar el servidor DNS maestro con BIND9.
  • Crear las zonas “directas” e “inversas” para su dominio.
  • Gestionar el servicio BIND9 con los comandos más comunes.
  • Auditar el registro de eventos del servidor DNS con BIND9.
  • Probar el funcionamiento del servidor DNS con BIND9 usando utilidades más comunes.

Agradecimientos

A los Linuxeros del grupo en Telegram Linux VE por sus orientaciones iniciales sobre los servidores DNS y su recomendaciones, me sirvieron de mucha guia para decidirme por cual herramienta de DNS en Linux usar. GRACIAS!!!

A Jesús “Chuda” Contreras por su paciencia al explicarme y facilitarme documentación efectiva para lograr entender el funcionamiento y configuración de un DNS en Linux… GRACIAS PERRITA :-*

Referencia

¡Haz tu donativo!

Si te gusto este articulo, por favor, ayúdame a seguir escribiendo este tipo de articulo, haciendo donativos en Dolares vía el servicio Paypal haciendo clic aquí o en la siguiente imagen.


PayPal - The safer, easier way to pay online!


Domingo 16 de julio de 2017

Consultar DNS por medio de Scapy

Hace unos años escribí un artículo sobre descubrir equipos de una red local con python usando ipcalc y scapy, ahora muestro el uso de scapy para consultar DNS a un servidor de DNS determinado.



El programa es muy sencillo, es una función que se le pasa el servidor y el url a consultary devuelve la IP del url. A continuación se muestra el código:


#!/usr/bin/env python3


from scapy.all import *


def consulta(dns="8.8.8.8",dominio="www.google.com"):
    dnsServer = dns
    domconsulta= dominio
    #Se define la estructura del paquete de consulta de DNS, que es un paquete UDP
    #Que va por el puerto 53, se le pasa el servidor y el url.
    paquete_dns= IP(dst=dnsServer)/UDP(dport=53)/DNS(rd=1,qd=DNSQR(qname=domconsulta))
    #Se hace la consulta y se devuelve el resultado
    request_pqt = sr1(paquete_dns,verbose=0)
    return request_pqt[DNS].summary()
    
if __name__ == "__main__":
    print (consulta("8.8.8.8","www.debian.org"))


Al ejecutar el script se tiene el siguiente resultado:

sudo python3 pydns1.py
WARNING: No route found for IPv6 destination :: (no default route?). This affects only IPv6
DNS Ans "'128.31.0.62'"


Como se puede notar, la IP de www.debian.org es la 128.31.0.62.




Martes 11 de julio de 2017

Jesus Palencia

Lista de túneles Web (webproxy) para ver páginas bloqueadas

A veces nos encontramos en un entorno donde por cualquier circunstancia no es posible acceder a una web y no tenemos la posibilidad de realizar alguna modificación en el sistema que nos permita saltar dicho bloqueo, es por eso que … Sigue leyendo

Domingo 09 de julio de 2017

Instalar Docker en Debian Stretch (actualización 2017).

El primer artículo de la serie  de artículos sobre Docker fue, el de la Instalación de Docker en Debian Jessie, ahora explicaré el proceso de instalación de Docer CE para Debian Stretch. La guía en inglés de instalación de docker para Debian la pueden encontrar en el siguiente enlace.

El procedimiento es el siguiente:

1. Instalación de paquetes necesarios para soporte de https en apt-get:

#apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common


2. Agregar llave gpg oficial de Docker:

# curl -fsSL https://download.docker.com/linux/debian/gpg |  apt-key add -
OK

Si devuelve "OK" se bajo la llave y la agregó sin problemas.

3. Verificar la llave:

# apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

4. Se agrega el repositorio Estable para la versión de Debian que se tiene en el equipo:
add-apt-repository \
>    "deb [arch=amd64] https://download.docker.com/linux/debian \
>    $(lsb_release -cs) \
>    stable"

5. Se actualiza la lista de paquetes:
#apt-get update

6. Se instala docker-ce :

# apt-get install docker-ce

7. Se verifica que docker-ce se instaló correctamente:

# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b04784fba78d: Pull complete 
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/


8. Instalar docker-compose:

#apt-get install  docker-compose



Manejar docker como un usuario normal:

1. Crear el grupo docker:
$sudo groupadd docker

2. Agregar el usuario al grupo docker:
$sudo usermod -aG docker $USER

3. Verificar que se puede usar docker desde el usuario:

$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/



Configurar Docker para que inicie en el arranque del equipo:

1. Habilitar Docker:
$ sudo systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker


Si requieren detalles de configuración lo pueden ver en la documentación de docker.

Para terminar se prueba el arranque de cloud9 ya explicado en un artículo anterior.

$docker run -it -d -p 9080:80 -v /home/ernesto/worksplace/:/workspace/ kdelfour/cloud9-docker
99cfe3af5bf4480ac456ec43916612317a49da111ab27e32a361639984eb2128

La siguiente captura de pantalla muestra cloud9 en funcionamiento:

En el diectorio worksplace se guarda los proyectos que se editan desde cloud9.

$ tree worksplace
worksplace
├── hola.py
├── New Folder
│   ├── mvc1.py
│   ├── New Folder
│   └── usuario.py
└── trabajo.txt

2 directories, 4 files


Viernes 07 de julio de 2017

José Miguel Parrella Romero

José Miguel Parrella Romero
null pointer dereference

Behind the whys

This post is inspired in equal parts by Ashley’s fantastic post on why she joined Microsoft and Keith’s one on why he left Microsoft. Both tell great stories about open source at Microsoft. Here’s my take on them.

There’s no shortage of stories when it comes to open source in this place. Later this summer, it’ll be 7 years since I joined Microsoft, every single day of which I’ve spent working passionately in the open source space.

I joined Microsoft as an expat living in Ecuador when the local GM asked me to lead open source strategy for a handful of emerging markets in the region. At that time, I had spent 8 years of my career focusing on open source, from community to product. Canaima had been in market for a year and I was actively applying the learnings from years involved in policymaking efforts in Venezuela where I had the opportunity to join congressional workshops and debate with Microsoft reps that would then become my colleagues.

Suffice to say that what was front and center in every conversation I had wasn’t associated with Microsoft back then, and that my decision to join Microsoft didn’t come without repercussions.

I was immediately dismissed from the board of a local free software group and countless networks and contacts closed, a few still to date. My dad gifted me a copy of this book shortly after a local newspaper ran an interview with me about open source which he disagreed with (he insists I’m reading too much into the gift) And like many others, I was also thrown into the world of Office and Windows, products I hadn’t used since I was a teenager.

There are increasingly more posts (like Ashley’s) that brilliantly explain why would someone come in those conditions, and I won’t bother you with mine because hindsight is 20/20, but let me say that as terrible as all of that might sound, it was also a true calling – a calling for transformation. And after all this time responding to that call, I realize how thankful I am for being able to say my entire career at Microsoft has been focused on open source.

On one of my first trips to Redmond, I got to meet a handful of others in my role around the globe, and we were starting to cross-pollinate that community with the high-profile hires Microsoft had then. Just a few years later I had an opportunity to come to Redmond and help lead that community – a community that is still heavily influenced by Ramji’s and Hilf’s contributions to the space.

While in LATAM I had an opportunity to drive impact in disruptive ways: from supporting a Postgres conference (5 years before we had this) to coaching Microsoft Student Partners in rolling out a Linux distro. In my first few years in Redmond, I worked on projects from deprecating taxonomy and helping write priority memos so it was unequivocally clear how we wanted to work with open source, to curating and sharing global best practices and defining field strategy, all things I did with Mark Hill while I was his CTO.

Of course, those were testing years. I would equate some of my experiences to trying to change a belt in a running engine. It didn’t take long to realize we needed a new engine, and I had the opportunity to write a spec for it in an internal forum called ThinkWeek. When the paper got a Certificate of Excellence (long story short, way too many Skypers voted for it) I realized that the pieces had arrived and we were being offered a chance to build it. John said it best in his ChefConf keynote: it was a mix of opportunity, changing demographics and strategy shifts.

And although open source is visible across the company, it’s much harder to hide it in Azure, a product that I had first interacted with in 2008 (when Miguel de Icaza ran an open source panel at PDC08) and that I had mostly ignored in my first years at Microsoft (arguably because it was called Windows Azure then) but that in my eyes provided a clear vehicle for that open source transformation I joined for.

And so that’s how I ended up in the cloud whirlwind a few years ago, focusing on the open source portfolio across Linux, Java, Node.js, DevOps and containers, helping define and land our approach to open source and supporting our work with the ecosystem at large, lurking behind papers and decks in partnership with amazing people like John, Julia, Joseph, Gebi, Mark or folks around the globe like Caroline, Frederic, Alex, Rafael, Olga or Tito.

The first time I traveled to Redmond I met a dozen of open source enthusiasts from around the world (it might have been Gianugo’s first day, too) and fast forward to today where I get to share with 700 of my colleagues in a Yammer group dedicated to open source in the cloud. My colleague Stuart volunteers to help employees that want to take the LFCS certification: that’s another 700. Our team lives and breathes open source in a way that lets us share market intelligence with customers, partners and the community at large.

Later this month at our yearly readiness conference we will have a dedicated open source track. At the Inspire conference, we’ll award the Open Source Partner of the Year award for the third year in a row. And there’s no shortage of industry chatter on this transformation – for which we’re thankful and we learn every day.

But it’d be very easy to get lost in what’s new and what’s different and not realize why it’s meaningful. Stories like Ashley’s give us not only a fresh perspective but the energy to run the engines. And stories like Keith’s and others who have pursued a different career at Microsoft or elsewhere after being part of this open source journey (like Alessandro, Sara, Ahmet or Nik) motivate us to do it right.

When college interns and high schoolers alike reach out to shadow and spend time learning about open source in a place like this, that’s meaningful. When a customer in France interrupt your presentation to ask for your take on a particular corner of the open source world so they can make investment decisions, well, that’s simply awesome.

And that’s why stories like these inspire all of us doing open source at Microsoft. Welcome, good luck, keep being awesome, stay in touch, whatever that is: here’s to more open source stories!


Viernes 30 de junio de 2017

Jesus Palencia

Lista de servidores proxy públicos y gratuitos para evitar censura

En algunas ocasiones nos vemos en la necesidad de utilizar un intermediario entre nosotros y la web, en la mayoría de los casos esto se debe a un bloqueo impuesto por nuestro ISP, por una falla o por alguna forma … Sigue leyendo

Miércoles 28 de junio de 2017

Jesus Palencia

Uso de cache inmutable para acelerar la Web

Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Con el lanzamiento de Firefox 49 se incluyo Control de cache: características inmutables que permite a las páginas web adivinar los recursos HTTP que nunca van … Sigue leyendo

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

Desarrollar un API con GraphQL en Flask

Continuando con los artículos sobre Flask, donde el último artículo fue de como crear un API Restful con Flask y MongoDB.

En este artículo se toca el uso de GraphQL para crear un API. GraphQL es un lenguaje de consulta de datos desarrollado por Facebook, es una alternativa a Rest (más información en wikipedia).

La librería para Flask de GraphQL lo pueden ver en el siguiente enlace. El artículo explicará el ejemplo que aparece en la página oficial de graphQL para Flask.

Instalación:
#pip3 install flask graphene flask-graphql


Script servidor (server.py):


#!/usr/bin/env python3

#Se importa flask, graphene y graphql.

from flask import Flask

from graphene import ObjectType, String, Schema

from flask_graphql import GraphQLView



#Se crea la clase Query que hereda de graphene ObjectType.

class Query(ObjectType):

    #Se define la descripcion

    hello = String(description='Hello')

    #Se define la funcion resolve_hello, se le pasa args, context e info.

    def resolve_hello(self, args, context, info):

        return 'World'



#Se define la funcion de la vista.

#que se le pasa el esquema con la clase Query.

view_func = GraphQLView.as_view('graphql', schema=Schema(query=Query))



#Se crea la app como instancia de la clase Flask.

app = Flask(__name__)

#Se define el url donde se le pasa la funcion de la vista

app.add_url_rule('/', view_func=view_func)



if __name__ == '__main__':

    #Se ejecuta flask.

    app.run()





Al ejecutar el script:


Se consulta usando curl:
curl -H 'Content-type: application/graphql' -d '{hello}' http://localhost:5000/

Y este devuelve:

{"data":{"hello":"World"}}




Desde un script en python:



Instalación de librerías necesarias:

#pip3 install gql requests



El script cliente.py :



#!/usr/bin/env python3



#Se importa json

import json

#se importa ggl

from gql import gql, Client

from gql.transport.requests import RequestsHTTPTransport



#Se define el transport, se conecta el cliente.

transport = RequestsHTTPTransport('http://localhost:5000/')

client = Client(transport=transport)

#Se realiza una consulta buscando la  variable hello

response = client.execute(gql('{hello}'))



#muestra en pantalla la respuesta como un json.

print(json.dumps(response))



Se ejecuta el script:

python3 cliente.py 
{"hello": "World"}

En un artículo en genbetadev comparan API Restful con GraphQL y por que es necesario dejar de usar API Restful.
En futuros artículos se ampliará el uso de GraphQL.

Meetup de WordPress en San Cristóbal, Táchira

Desde Enero del 2016 nos estamos reuniendo varios entusiastas de WordPress ubicados en el estado Táchira (Venezuela). Para hablar sobre temas relacionados al mundo WordPress, tales como: desarrollo de temas, los mejores plugins, casos de éxito, diseño web, mercadeo, entre otros. Estos encuentros, mejor conocidos como meetup de WordPress han sido reconocido oficialmente por Automattic, la compañía detrás de WordPress. Por lo tanto nos han colaborado pagando la plataforma Meetup.com y aparecemos listados dentro sus meetups oficiales (ya aparecemos en el widget de encuentros cercanos).

¿Qué es un meetup de WordPress?

Es un encuentro de varios entusiastas, aficionados y profesionales que utilicen WordPress. En los encuentros se comparten diversos temas relacionados al gestor, como información técnica para crear sitios, experiencias de negocio, recomendaciones de plugines, experiencias laborales, entre otros. Los asistentes pueden ser creadores de páginas web, dueños de negocios con sitios hechos en WordPress, personas de mercadeo, profesores, desarrolladores web, diseñadores gráficos, comunicadores sociales, bloggers, entre otros. Los asistentes de este tipo de eventos suelen ser personas de distintas ramas y por lo tanto, se aprende mucho al aprender de ellos.

No todos los meetups son académicos y escuchar ponencias, algunos son eventos sociales donde nos reunimos en un sitio para compartir comida o bebidas. Pues la idea es compartir experiencias, crear lazos profesionales, laborales y de amistad.

Primer encuentro de meetup de WordPress del Táchira Ponencia en el FLISOL Instalación de Wordpress Ponentes desde otras ciudades Meetup de WordPress social en SCBC del Tachira Meetup de WordPress del Táchira sobre temas

¿Cómo puedo participar y colaborar?

Puedes participar de 4 formas: asistiendo, dictando una charla, patrocinando u organizando. Siempre buscamos nuevos colaboradores para participar:

  • Asistiendo: es la mas importante, pues sin asistentes no podemos realizar el evento. Como asistente debes confirmar tu puesto en el sitio de meetup de WordPress e invitar cada vez mas gente para crecer como comunidad.
  • Dictando una ponencia: necesitamos ponencia para compartir contenido en los encuentros. Este punto es nuestro mayor limitante para planificar encuentros. Los temas son relacionados a WordPress, puedes hablar de mercado de sitios, de la funcionalidad de un plugin que te guste, como desarrollar un tema, diseño gráfico, base de datos, seguridad de sitios, entre otros. Lo importante es que el tema este orientado a WordPress. Nos gusta tener ponencias sobre casos de éxito, donde nuestros colaboradores compartes sus experiencias empresariales al usar WordPress.
  • Patrocinando: colabora prestando un lugar para poder reunirnos, llevando refrigerios para compartir luego de cada encuentro, por mencionar algunas ideas. Los patrocinantes aparecer en el sitio del meetup y pueden dar un mensaje o publicidad a todos los asistentes.
  • Organizando: actualmente solo hay 1 persona organizando el evento. Requerimos mas colaboradores para buscar sitios, personas que quieran dar una ponencia. También necesitamos alguien que pueda grabar las ponencias, tomar fotos y luego publicarlas en Internet para las personas que viven fuera del estado. Si te interesa colaborar puedes escribirme.

No vivo en el Táchira, ¿cómo puedo participar?

También estamos de forma virtual en distintos medios. Te recomendamos unirte a nuestro canal en telegram creado por Richzendy. Allí intercambiamos información de complementos y resolvemos las dudas de la comunidad. Muchos participantes comparten videos, artículos y libros para adquirir nuevos conocimientos. Uno de los miembros administra la cuenta de @wordpressvzla en Twitter donde se comparte información de este gestor.

¡Así que puedes participar remotamente con la comunidad!

¿Cada cuanto se reúnen?

Nos solemos reunir cada dos meses, dependemos principalmente de la situación del país, la disponibilidad de un aula en la UNET y si podemos conseguir al menos dos ponencias. La mejor forma de enterarse del próximo evento es uniéndose a la página de Meetup de WordPress San Cristóbal. El sitio notifica cada vez que publicamos un evento, el llamado a ponencias, mensaje enviados a la comunidad, entre otros. Consideramos importante confirmar tu asistencia al evento, para conocer si el aula posee suficiente capacidad y comprobar ante Automattic el interés en los encuentros.

Logros del meetup de WordPress del Táchira

A pesar de tener poco tiempo de reunirnos hemos podido:

  • Ser reconocido como un meetups oficial de WordPress, el único en el país.
  • Ser el único grupo de latinoamérica en participar en el WordPress Global Translation Day.
  • Fuimos entrevistados en WordPress.tv

Esperamos tener mas logros, por lo tanto te invitamos a unirte en la página de Meetup de WordPress San Cristóbal, colabora invitando a mas amigos, asistiendo o dictando una ponencia. ¡Así creceremos para hacer eventos mas grandes como WordCamps!

La entrada Meetup de WordPress en San Cristóbal, Táchira aparece primero en El blog de Skatox.

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 17 de junio de 2017

Richzendy Contreras

Richzendy Contreras
Gnu y Linux – Richzendy.org

Comunidad WordPress Venezuela en Telegram

Sábado 27 de mayo de 2017

Aprende HTML con este vídeo de Metal

Si le preguntas a un desarrollador web cómo puedes iniciarte el mundo del desarrollo web. La respuesta mas común es aprende HTML. Navegando en Reddit encontré este genial vídeo, que explica las bases de las etiquetas HTML a través de una canción de Metal.

Así que si eres fanático del género musical del metal, aumenta el volumen de tus cornetas y disfruta de este grandioso video sobre metal ya aprende HTML al mimo tiempo.

¡Aprende HTML con este vídeo y conviértete en un desarrollador web metalero!

La entrada Aprende HTML con este vídeo de Metal aparece primero en El blog de Skatox.

Mi experiencia en el 9no Maracaibo Tech Meetup

El Maracaibo Tech Meetup es el encuentro tecnológico con mayor asistencia, con mas ediciones y por ende mas ponencias del país. Desde hace tiempo le he seguido el rastro y al enterarme que Joco Gonzalez, una persona activa en los chats de desarrollo del país, forma parte de los organizadores, le pregunté la posibilidad de brindar una charla por parte de Mozilla. Aceptó y preparé una sobre “Como desarrollar la web desde tu navegador”.

Luego de confirmar mi asistencia, tema de la charla y demás. Inicié el viaje de 8 horas en bus para llegar a Maracaibo, la segunda ciudad mas grande del país.

El Maracaibo Tech Meetup

El evento se realiza en el CEVAZ en un auditorio grande, amplio y buena calidad de sonido. Algunas personas llegan antes del evento y permite la interacción entre los asistentes. En mi caso, pude conocer a alguien que sigo en Twitter y pudimos compartir opiniones y conocernos en persona.

Las presentaciones abarcaron múltiples temas como: mercadeo, robótica, desarrollo de software, eventos locales, por mencionar algunos. La presentación de marcas con historias (story telling) realizada por Genesis Barrios, me gustó tanto que no pude tomar fotos. Me encantó los espacios y noticias entre ponencias, pues permite preparar a los ponentes mientras el público se entera de próximos eventos a realizar. La presentación de robótica también me fascinó porque me permitió conocer personas que también hacen robots y probablemente en mi ciudad no saben de estos proyectos.

Al terminar las presentaciones, los asistentes disfrutamos de unos refrigerios por parte de los patrocinantes. Las personas se reúnen, comienzan a platicar sobre las charlas y realizar enlaces.

Presentación del Maracaibo Tech Meetup Introduccion de José Gonzalez Desarrolladores de Yummy Club FIRST: Ponencia de robótica FIRST: El robot en acción La Prof. Mary Angel Bohórquez hablando sobre el Startup Weekend de Maracaibo

Mi presentación

Fue mi primera presentación como Tech Speaker en Venezuela. El contenido de la misma es presentar herramientas de desarrollo del navegador para crear sitios web. Mi charla iba dirigida a principiantes y nivel medio. Me gustó como la audiencia iba aportando sus opiniones durante mi charla. Además, como el nivel del público era medio-alto me permitió tratar temas mas técnicos. Excelente poder hablar sobre los navegadores sin problemas.

Miguel "Skatox"Useche dando una ponencia por parte de Tech Speakers en el Maracaibo Tech Meetup Miguel "Skatox"Useche dando una ponencia por parte de Tech Speakers en el Maracaibo Tech Meetup Miguel "Skatox"Useche dando una ponencia por parte de Tech Speakers en el Maracaibo Tech Meetup Miguel "Skatox"Useche dando una ponencia por parte de Tech Speakers en el Maracaibo Tech Meetup Viendo las presentaciones del maracaibo tech meetup

A continuación pueden visualizar la presentación sobre cómo construir la web desde tu navegador.

La experiencia de vivir un meetup de otra ciudad

Lo primero que notas al asistir a un evento de otro estado, es conocer gente nueva que está en la misma onda que tú. El evento me permitió conocer a varias personas no activas en mi círculo de Internet pero si en sus trabajos. Varios proyectos están relacionados con otros que se realizan en mi ciudad y así establecer esos vínculos. Las ponencias involucraban empresas o proyectos locales que no conocía, ademas que aprendes un poco de como es el movimiento tecnológico de la ciudad.

Aprendí ideas para tomar en los meetups que organizo. Me gustó la participación de empresas y organizaciones que pueden participar con breves comunicaciones y ayudar al evento con contenido. El tiempo de las presentaciones es mas corto que lo habitual en mi ciudad, pero me gustó porque es mas cómodo y permite extenderse un poco. Ofrecer unos pasapalos al final de las presentaciones para promover la interacción de los asistentes y crear acciones mas alla de escuchar las charlas.

Apoya el meetup

Agradezco al programa de Mozilla Tech Speakers por brindarme la posibilidad de asistir. Si tienen la oportunidad de estar en en las cercanías de Maracaibo en la fecha de un Maracaibo Tech Meetup. Les recomiendo movilizarse y asistir al evento, la calidad es muy buena, es gratis y conocen gente de distintas áreas. Este tipo de eventos son difícil de realizar en el país y requieren apoyo de todos, colabora asistiendo u organizando.

Felicito a los organizadores, sé por experiencia la dificultad de hacer estos eventos, por asegurarse y confirmar la calidad del contenido antes de hacer el evento, el manejo de las preguntas, el tiempo de las ponencias, pautas publicitarias, entre otros.

Les digo que valió la pena las 16 horas de viaje para asistir a este Maracaibo Tech Meetup.

 

 

 

 

La entrada Mi experiencia en el 9no Maracaibo Tech Meetup aparece primero en El blog de Skatox.

Miércoles 17 de mayo de 2017

Héctor Colina

Ejecutando múltiples instancias de tor

En algunas ocasiones, quizás necesitemos ejecutar varias instancias de tor al mismo tiempo. Sin embargo, quien haya realizado esto, recordará que tor le indica que ya hay una instancia ejecutándose y le indica que debe cerrar todas las instancias existentes para poder ejecutar una nueva.

Esta situación puede ser resuelta si seguimos el siguiente procedimiento:

  • Descargamos tor desde su sitio original
  • Descomprimimos y copiamos cuantas veces sea necesario el directorio resultante; cada uno de los directorios resultantes almacenará una instancia, por lo que si deseamos ejecutar 4 instancias en paralelo deberemos copiar el directorio original 4 veces; yo utilizo algo como:
tar xf tor-browser-linux64-6.5.2_es-ES.tar.xz
mv tor-browser-linux64-6.5.2_es-ES tor
cp -R tor tor1
cp -R tor tor2
cp -R tor tor3
  • Luego de esto, un poco de teoría, cada vez que se ejecuta tor, se requiere tener acceso exclusivo a dos puertos, uno de control y el otro del proxy, dosinstancias de tor no pueden utilizar el mismo puerto al mismo tiempo por lo que necesitamos indicar a cada instancia de tor que se conecte a un puerto diferente
  • Llegados a este punto, tome lápiz y papel (o lo que utilice para escribir) y planifique qué puertos utilizará (control y proxy) para cada  instancia de tor; yo hice un ejercicio como el siguiente
Instancia Puerto Control Puerto Proxy
tor 9050 9051
tor1 9052 9053
tor2 9054 9055
tor3 9056 9057
  1. Esto es, asigné un puerto aletorio y le sume 1, pero teniendo en cuenta cuál es el número para cada instancia ya que de no hacerlo así se podrán tener problemas al iniciar la instancia respectiva
  2. Ahora necesitamos iniciar la instancia número 1, en mi caso se llama tor, a secas y cuando abra el navegador, en la barra de herramientas escribir “about:config” y ubicar la clave “extensions.torlauncher.control_port” y colocar allí el número respectivo, en mi caso, el 9050, modificamos el valor y le damos Ok.
  3. Posteriormente, debemos ubicar la pestaña de configuración y allí en la opción  de “Avanzadas -> Red -> Configuración -> Configuración manual del proxy -> Servidor SOCKS colocaremos el valor que hayamos fijado en nuestra tabla de referencia, en mi caso 9051
  4. Finalizado este paso, cerramos el navegador y procedemos a realizar la edición del archivo de configuración del software el cual podemos ubicar en Browser/TorBrowser/Data/Tor/torrc-defaults en la carpeta de la instancia que estamos modificando y allí al abrir el archivo, con un editor de textos,  y buscamos las siguientes entradas:
    • SocksPort y colocamos el valor 9051, en mi caso
    • ControlPort y colocamos 9050, en mi caso
  5. Guardamos los cambios realizados en el archivo y cerramos la edición del mismo
  6. Listo! ya nuestra instancia de tor está preparada para ejecutarse, sólo nos queda repetir los pasos 2, 3, 4 y 5 por cada instancia que hayamos copiado
  7. Luego de que finalice todas las ediciones, puede ejecutar cada instancia de tor sin ningún problema
Ejecución de varias instancias de tor al mismo tiempo

Espero les sea útil esta ayuda

NOTA

Es MUY importante que tome en cuenta que cada instancia consume abundante memoria  y que de tener muchas instancias andando puede hacer que su equipo empiece a presentar problemas de rendimiento, en mi caso, tengo una máquina virtual de 1 Gb y con 3 instancias funcionando al mismo tiempo y  un terminal abierto consume casi el 95% de la memoria RAM , mientras que el consumo de CPU no llega al 10%

Lunes 15 de mayo de 2017

Instalar Impresoras HP en Linux con HPLIP

Está Escrito:
"Mas Dios muestra su amor para con nosotros, en que siendo aún pecadores, Cristo murió por nosotros." (Romanos 5:8)
Tomado de: ubuntufacil
Hoy he tenido la necesidad de imprimir unos documentos en la oficina. La impresora que tenemos es una HP Deskjet F2400.
Antiguamente daban algunos problemas cuando instalabamos algunas impresoras en Linux, teníamos que instalar CUPS y bajarnos los drivers para nuestra impresora, tampoco es que fuese complejo pero actualmente es mucho más sencillo. Los vendedores de impresoras se han puesto las pilas y la mayoría ofrece soluciones para poder usar su hardware en Linux. Algunas nos ofrecen los paquetes de instalación en el CD como hacen con los de Windows. En el caso de HP, tienen HPLIPque podemos descargarnos desde su web.
HPLIP, que significa HP Linux Imaging and Printing, es software libre y de código abierto que nos ayudará y guiará con lainstalación de una impresora HP en Linux, ya que es compatible con todas las impresoras de Hewlett Packard.
El proceso es realmente sencillo, descargamos HPLIP, lo ejecutamos via terminal y nos irá preguntando y guiando en la instalación de la impresora. Es muy sencillo, y en Ubuntu no me ha dado ningún problema. Instala el anteriormente citadoCUPS y alguna librería más que le hace falta, todo después de preguntarnos.
No conocía con anterioridad este pequeño pero útil software de Hewlett Packard para instalar cualquier impresora HP en Linux. Siempre es de agradecer que las grandes empresas no pasen por alto a los usuarios de Linux.
 ACTUALIZADO: Como dice Talie en los comentarios, también podemos instalarla desde el Centro de Software Ubuntu buscando hplip-gui, o desde la linea de comandos con:
 sudo apt-get install hplip-gui    hplip
 y Este para los Complicados Tomado de: profesionalesdevenezuela
Paso 1 Ingresamos a la siguiente Web y descarha los tar.gz de hplip-3.13.3.tar.gz (Puedes copiar y pegar en tú navegador Cunaguaro)

http://sourceforge.net/projects/hplip/f ... hivelocity


Paso 2 Abre un terminal y como root
su

Paso 3 Descomprime la carpeta que descargaste
tar xvf hplip-3.13.3.tar.gz
Copiamos la carpeta descomprimida en el Escritorio
cp -r  hplip-3.13.3.tar.gz    /home/usuario/Escritorio

Paso 4 Ingresa al directorio de la carpeta que descargaste y descomprimiste
cd hplip-3.13.3
Paso 5 Configura HPLIP para Instalarlo
./configure --prefix=/usr --with-hpppddir=/usr/share/ppd/HP --enable-qt4 --enable-hpcups-install --enable-cups-drv-install --disable-cups-ppd-install --disable-hpijs-install --disable-foomatic-drv-install --disable-foomatic-ppd-install --disable-foomatic-rip-hplip-install --enable-fax-build --enable-dbus-build --enable-network-build --enable-scan-build --disable-policykit --disable-libusb01_build --disable-udev_sysfs_rules --enable-doc-build
Nota Importante: sólo si posees debian o canaima de 32 Bit, para debian o canaima 64 bit se escriben otros comando los cuales se escribirán al final de esta guía.


Paso 6 Compila el HPLIP

Escribe en el terminal el siguiente comando
make
Paso 7 Compila el HPLIP

Este paso es para instalar el HPLIP
su -c "make install"
Paso 8 Para los usuarios normales que no sean el nombre de usuario root para agregar "lp" grupo:
su -c "usermod -a -G lp,lpadmin $USER"
Paso 9 Agregue su Impresora Reinicie el PC Asegúrese que esta conectada al equipo con el cable USB y verifique que esté encendida.

B. Si va a configurar una impresora con USB y la impresora ya está instalada, tendrá que hacer una de las siguientes acciones:

1. Unlpug y volver a enchufar la impresora USB, o 2. Reinicie el PC.

Si no hace esto hará que su impresora USB no ser detectado por HPLIP.

Paso 10 Configure la impresora utilizando hp-setup
hp-setup
Nota: Observa que en la parte superior derecha al lado del icono de conectividad de red esta un icono de la HP desde allí también podrás agregar la impresora. 

De otra manera para agregar tu impresora tendrás que abrir un navegador y escribir:

localhost:631 

Te solicitará la clave usuario y el nombre del usuario de tu equipo Linux.

selecciona el modelo de tu impresora y agregala desde el administrador de impresoras.

Domingo 14 de mayo de 2017

José Miguel Parrella Romero

José Miguel Parrella Romero
null pointer dereference

Why I’m writing about hackers and parenting in Spanish

Earlier this month I went live with a self-published e-book in Spanish titled Cómo criar un hacker: how to raise a hacker.

This book is aimed at parents who are not IT professionals but wish to understand the hacker ethos and a key set of things they can do to build that ethos that is more than just teaching kids to code.

Sure, in the book I say it’s OK if your child isn’t interested in coding, I mention 2600 and Club Mate and I quote ESR profusely (largely for his authority on this topic, and not because I validate or agree with every position of his) but I hope all of that isn’t controversial because it isn’t at the core of the motivations for the book.

Instead, I challenge the inconsistent and unjustified battle against screens, I highlight the relevance of open source and I stake a claim for hackers on note taking and humor as a tool for building character and I do this all under the assumption that digital natives (whatever that means) aren’t set for excellence in a generation where every world leader is also a digital native: only hackers are.

Since this is a short book on parenting, I evidently don’t go into building actual infosec skills at any significant depth. I don’t even discuss the tactics of screen management, covered eloquently and empathetically in books like Screenwise.

In fact, it was by reading reviews on similar work that I found a huge gap in Spanish-speaking markets on this and decided to start there (plus, self-publishing in English would probably have taken me longer as I’m not a native English speaker)

I’m ultimately neither a family counselor, not an expert on parenting. I was just raised a hacker by folks who didn’t even know what that was. Feedback is always welcome. (Cómo criar un hacker is available on Amazon and Smashwords)


Jueves 04 de mayo de 2017

Héctor Colina

Prestashop, página no encontrada

Si vas a mover tu instalación de prestashop hacia un nuevo sitio y estás usando varios lengiajes, está pendiente porque, algunas veces, puede aparecer un error de “Página no encontrada” ya que el sistema interpreta “en” y “es” (en caso de que uses inglés y español) como carpetas y no como parte del nombre.

Una sencilla solución es remover el archivo .htaccess y luego ir a la sección “Preferences -> Seo Urls”y allí desactivar y guardar la opción enlaces amigables y luego, volver a activar dichas opciones. Esto obliga a regenerar el archivo .htaccess.

Disfruta la  ayuda!

Héctor Colina

Prestashop page not found

Moving prestashop to new server?, be advise about “page not found” error when you’re using severals languages.

Solving it is easy, just remove your .htaccess and go to “Preferences -> Seo Urls” and turn on friendly urls – and right after that – turn it off.

This action regenerate .htaccess file and solve your issue.

Enjoy it!

Viernes 14 de abril de 2017

ubuntu-ve: FLISoL 2017

Viernes 07 de abril de 2017

Richzendy Contreras

Richzendy Contreras
Gnu y Linux – Richzendy.org

Invitación al FLISOL San Cristóbal 2017

Sábado 25 de marzo de 2017

Git log para obtener commits de una branch específica

Tengo un repositorio en el que estoy trabajando en unas 4 branches diferentes. Y hoy retomando el trabajo en una, quería solamente mostrar el log de los commits hechos en dicha branch. ¿Cómo se hace?.

Viernes 03 de marzo de 2017

Tutorial: Instalar paquetes .tar.gz y .tar.bz2

Está Escrito:
Porque el amor de Cristo nos constriñe, pensando esto: que si uno murió por todos, luego todos murieron; y por todos murió, para que los que viven, ya no vivan para sí, sino para aquel que murió y resucitó por ellos. (2 Corintios 5:14-15)
Tomado de: DesdeLinux
Al principio cuando nos iniciamos en Linux y buscamos un programa lo normal es que encontremos un .deb o .rpm y en muchos casos nos encontramos programas con la extensión .tar.gz y .tar.bz2, estos archivos están comprimidos y por lo general contienen aparte del programa unas instrucciones para instalarlo.
La instalación para estos dos tipos de paquetes es exactamente igual.

Primero entramos a la carpeta donde tengamos el archivo, si la carpeta tiene varias palabras tenemos que ponerlas con “” o si no nos buscará carpetas con cada palabra.
 
Dentro descomprimimos
tar -zxvf nombredelarchivo.tar.gz

tar -jxvf nombredelarchivo.tar.bz2
cd carpeta nombredelarchivo

cd “carpeta nombre del archivo”

Configuramos
./configure
Hacemos make (compilamos)
make
Ahora make install
make install
A veces nos puede dar un error en ./configure, en ese caso no necesita compilación y con ejecutar nos sobra, en una terminal hacemos
nombredelprograma
O bien creamos un lanzador.

Notas:
en realidad lo correcto para descomprimir es
tar -zxvf archivo.tar.gz
tar -jxvf archivo.tar.bz2

y para el configure existe una infinidad de opciones (dependiendo del software) para personalizar la instalación
./configure –help
Con eso verán las distintas opciones adicionales al instalar un programa.
No todas las distribuciones usan /usr/local para instalar los programas, eso hay que mencionarlo también.
--------------------------------------------------------
De todas maneras el .tar.gz lo es el último recurso, si no lo hay ni en paquete deb/rpm o en los repositorios
--------------------------------------------------------
Si cambias el “make install” por “checkinstall” (lo puedes instalar con aptitude, esta en los repositorios) te instala el programa, pero ademas:
-Crea un .deb para que puedas instalarlo en futuras ocasiones
-El programa instalado aparecerá en Synaptic, con lo que lo puedes desinstalar fácilmente desde allí 
--------------------------------------------------------
Los que usan qmake de Qt son más o menos así:

cd CarpetaPrograma
qmake
make
sudo make install
Y agrego otro caso más que son los cmakes:

cd CarpetaPrograma
mkdir build
cd build
cmake ..
make
sudo make install
O hay otros que sólo hay que ejecutar el make && sudo make install.
Esos son los casos más comunes...

Viernes 10 de febrero de 2017

Silvio Perez: Ansible … :)

Jueves 02 de febrero de 2017

Montando ficheros VHD en Linux Debian

Está Escrito:
Antes bien, como está escrito: Cosas que ojo no vio, ni oído oyó, Ni han subido en corazón de hombre, Son las que Dios ha preparado para los que le aman. (1 Corintios 2:9)

Tomado de :Javier Anto
Es posible montar discos virtuales en formato VHD

Si desea montar la imagen de unidad VirtualBox (vdi) en Debian 8, use vdfuse. Este módulo Fuse utiliza la biblioteca de acceso de VirtualBox para abrir un archivo de imagen VD compatible con VirtualBox y montarlo como un sistema de archivos Fuse. El punto de montaje contiene un directorio plano que contiene los archivos EntireDisk, Partition1 .. PartitionN.  

Estos pueden ser montados en bucle para acceder a los sistemas de archivos subyacentes.
 
Se instalan las utilidades virtualbox-fuse

sudo apt-get install virtualbox-fuse
Para montar una unidad vhd

sudo vdfuse -f /path/to/file.vhd /path/to/mountpoint

Una vez montada la unidad, /path/to/mountpoint contendrá unos ficheros como 'EntireDisk', 'Partition1′, etc. Si solo hay una partición , probablemente será lo quiera verse, así que para montar esa partición en otra carpeta hay que ejecutar:

mount /path/to/mountpoint/Partition1 /path/to/someother/mountpoint

Y ahora si en /path/to/someother/mountpoint tendremos el sistema de archivos

Listo...

Domingo 08 de enero de 2017

David Moreno

David Moreno
dm's blog

Thanks Debian

I sent this email to debian-private a few days ago, on the 10th anniversary of my Debian account creation:

Date: Fri, 14 Aug 2015 19:37:20 +0200
From: David Moreno 
To: debian-private@lists.debian.org
Subject: Retiring from Debian
User-Agent: Mutt/1.5.23 (2014-03-12)

[-- PGP output follows (current time: Sun 23 Aug 2015 06:18:36 PM CEST) --]
gpg: Signature made Fri 14 Aug 2015 07:37:20 PM CEST using RSA key ID 4DADEC2F
gpg: Good signature from "David Moreno "
gpg:                 aka "David Moreno "
gpg:                 aka "David Moreno (1984-08-08) "
[-- End of PGP output --]

[-- The following data is signed --]

Hi,

Ten years ago today (2005-08-14) my account was created:

https://nm.debian.org/public/person/damog

Today, I don't feel like Debian represents me and neither do I represent the
project anymore.

I had tried over the last couple of years to retake my involvement but lack of
motivation and time always got on the way, so the right thing to do for me is
to officially retire and gtfo.

I certainly learned a bunch from dozens of Debian people over these many years,
and I'm nothing but grateful with all of them; I will for sure carry the project
close to my heart — as I carry it with the Debian swirl I still have tattooed
on my back ;)

http://damog.net/blog/2005/06/29/debian-tattoo/

I have three packages left that have not been updated in forever and you can
consider orphaned now: gcolor2, libperl6-say-perl and libxml-treepp-perl.

With all best wishes,
David Moreno.
http://damog.net/


[-- End of signed data --]

I received a couple of questions about my decision here. I basically don’t feel like Debian represents my interests and neither do I represent the project – this doesn’t mean I don’t believe in free software, to the contrary. I think some of the best software advancements we’ve made as society are thanks to it. I don’t necessarily believe on how the project has evolved itself, whether that has been the right way, to regain relevancy and dominance, and if it’s remained primarily a way to feed dogmatism versus pragmatism. This is the perfect example of a tragic consequence. I was very happy to learn that the current Debian Conference being held in Germany got the highest attendance ever, hopefully that can be utilized in a significant and useful way.

Regardless, my contributions to Debian were never noteworthy so it’s also not that big of a deal. I just need to close cycles myself and move forward, and the ten year anniversary looked like a significant mark for that.

Poke me in case you wanna discuss some more. I’ll always be happy to. Specially over beer :)

Peace.

Martes 27 de diciembre de 2016

Valencia Software Libre: Donaciones de VaSlibre Navidad 2016

Martes 13 de diciembre de 2016

Veracidad noticias internacionales Bolivar y bitcoin

Leyendo este artículo (https://www.cryptocoinsnews.com/venezuela-demonetizes-100bs-banknotes-india-like-panic-awaits/), hay puntos que no comparto, y es donde digo que para defender una opinión hay que ser lo mas imparcial posible, de lo contrario se pone a tela de juicio la credibilidad. Por ejemplo:

  1. Indican que en Septiembre, medio cartón de huevos costaba 150$ (a 10Bs el $USD, lo que indica que usan tasa de cambio según conveniencia (en este caso para que se vea mayor), ignoro si esta es la tasa que le cobran a los extranjeros cuando pasan sus tarjetas en Venezuela. Cuando conviene usan la tasa paralela.
  2. También reflejan que el paralelo llegó a 4.400. Según la gráfica que muestran (http://www.venezuelaecon.com/) fué así, en caso de ser afirmativo… ponen el ejemplo con el dato mas drástico y momentaneo, me estoy enterando que llegó a ese punto.
  3. Desinforman diciendo que minar bitcoins es ilegal, cosa que no comparto, no ha habido pronunciamiento oficial de parte del gobierno sobre si bitcoin es una moneda o no (tiene propiedades únicas respecto a lo que se considera moneda), aparte que tendrían que legislar sobre cada punto… minar, aceptar pagos con bitcoins (u otra criptomoneda), transferencia, etc.

Lunes 12 de diciembre de 2016

Carlos Colmenarez

Carlos Colmenarez
LINUX – El Blog de Zero

21 gestores de ventanas para GNU/Linux

Listado de 20 gestores o administradores de ventanas para GNU/Linux, como Mutter, Metacity (Gnome), Kwin (KDE), XFWM (XFCE), Openbox y muchos otros.

Los gestores de ventanas (también llamados administradores de ventanas) son la parte del software que se encarga de mostrar una interfaz gráfica al usuario, con la que se pueda comunicar con el sistema de forma sencilla.

Muy comúnmente, son también llamados entornos gráficos o entornos de escritorio, aunque en realidad éstos (por ejemplo, KDE, Gnome, XFCE…) son un conjunto más amplio de software, entre los que se encuentran los mencionados gestores de ventanas.

En Windows sólo disponemos de un gestor de ventanas, DWM (Vista/7), mientras que en GNU/Linux podemos elegir el gestor de ventanas que más se adapte a nuestras necesidades (interfaz gráfica más atractiva, menor consumo de recursos, etc…).

Metacity

Metacity es el gestor de ventanas actualmente utilizado por el proyecto Gnome. Se trata de una interfaz sencilla pero muy agradable.

Previamente, el proyecto Gnome utilizaba otros gestores de ventanas más configurables (como Sawfish o Enlightenment) pero se optó por sacrificar esas funcionalidades por una interfaz más amigable, sencilla y usable.

Se utiliza en cantidad de distribuciones, algunas de ellas tan famosas como Ubuntu o Fedora, que tienen a disposición diversos themes.

URL | Metacity

Mutter

Mutter es el nuevo gestor de ventanas que incorporará el proyecto Gnome.

En GnomeShell puedes encontrar más información sobre esta evolución de Metacity, que tiene muy buena pinta.

URL | GnomeShell

KWin

KWin es el administrador de ventanas del famoso KDE, que junto a Gnome, son los dos entornos de escritorio más utilizados en la actualidad.

Un interfaz de usuario más complejo que el anterior, con muchos aspectos visuales configurables y gran cantidad de temas disponibles. Se puede encontrar en muchas distribuciones, como por ejemplo, OpenSUSE, Kubuntu o Xandros.

URL | Kwin

XFWM

XFWM es el gestor de ventanas de XFCE, quizás el tercer escritorio de Linux más utilizado. Es usado en distribuciones como Xubuntu.

En el logo de XFCE se ve siempre un pequeño ratón. Esto tiene su explicación, puesto que XFCE es un entorno que le da mucha importancia a este dispositivo, puesto que muchos de sus menús, utilidades u opciones, pueden realizarse íntegramente con el ratón.

URL | XFWM4

Enlightenment

Enlightenment, también conocido como E por el entorno de escritorio E16 o el reciente E17, es un gestor de ventanas como su propio nombre indica, muy ligero.

Sin embargo, a pesar de los efectos, el administrador de ventanas no renuncia a uno de sus puntos principales, no recargar el sistema innecesariamente.

Se puede encontrar por defecto en distribuciones como Elive o OpenGEU.

URL | Enlightenment

Blackbox

Blackbox es un gestor de ventanas minimalista, en el que el objetivo principal es aprovechar al máximo los recursos del sistema.

Esto lo hace especialmente útil para equipos antiguos o escasos de hardware, ya que consume apenas un 2% de RAM en comparación con entornos comunes como KDE o Gnome.

URL | Blackbox

IceWM

IceWM es uno de los administradores de ventanas alternativos por excelencia desde hace mucho tiempo. Su interfaz gráfico imitaba la apariencia de la barra de Windows para facilitar el uso a usuarios nóveles.

El netbook Asus EEE-PC tiene un modo en el que utiliza este gestor de ventanas.

URL | IceWM

UltimateWM

UWM (no confundir con UltrixWM (1985)) es un reciente gestor de ventanas asociado a un proyecto llamado UDE.

La filosofía de este administrador es ligeramente diferente a otros, donde se eliminan las tradicionales barras de estado o similares y se provee de un menu de celdas hexagonales, donde aparecen las opciones relevantes.

URL | UDE Project

Fluxbox

Fluxbox es un administrador de ventanas muy ligero, basado en el gestor Blackbox. Sin embargo, y a pesar de ello, tiene muchas opciones de personalización que lo hacen muy interesante.

Suele ser utilizado por multitud de distribuciones que necesitan un entorno ligero y rápido, como por ejemplo Damn Small Linux o Fluxbuntu.

URL | Fluxbox

JWM

El gestor de ventanas JWM se incorpora como un sistema rápido de administración de ventanas para distribuciones como Puppy Linux.

Molinux, la distribución oficial de la Junta de Comunidades de Castilla-La Mancha, tiene una versión llamada Molinux zero, una mini-distribución de Linux en español, basada en Puppy Linux, que permite funcionar hasta en los sistemas más antiguos.

URL | JWM

Openbox

Openbox comenzó como un gestor de ventanas basado en Blackbox, pero recientemente fue reescrito desde cero. Muy aceptado con la aceptación del entorno de escritorio LXDE.

Una de sus características más interesantes es que puede iniciar sesión muy rápidamente, en apenas unos segundos, aún en equipos modestos. Para ello prescinde de menús o sistemas visuales, pero aportando un menú contextual altamente configurable.

Es utilizado en distribuciones como Lubuntu, gOS o CrunchBang.

URL | Openbox

FVWM

FVWM es uno de los padres de muchos de los gestores de ventanas de este artículo, como por ejemplo AfterStep, WindowMaker, Enlightenment o XFWM.

Una de las distros que adoptan FVWM como gestor de ventanas por defecto es SymphonyOS, mediante su entorno de escritorio Mezzo.

URL | FVWM

VTWM

Virtual Tabbed WM es un gestor de ventanas sencillo bastante veterano, pero que supo resistir hasta la actualidad, guardando el formato de entonces.

Utiliza los estilos tan asociados a sistemas antiguos (TomWM), pero que tanto gustan a algunos.

URL | VTWM

AfterStep

AfterStep nació con la idea de imitar el formato de las estaciones de trabajo NextStep, obteniendo un buen resultado.

Una apariencia simple pero justa, para manejar de forma gráfica las tareas del sistema.

URL | AfterStep

WindowMaker

WindowMaker «retomó» el proyecto de AfterStep, renovándolo y convirtiéndolo en un gestor de ventanas muy similar, sencillo pero potente, emulando el entorno NeXT y adheriendose al proyecto GNUStep, el cuál ha terminado por apoyar Étoilé.

WindowMaker aún continua siendo una buena opción para algunos usuarios a los que le gusta su capacidad de personalización.

URL | WindowMaker

Matchbox

Matchbox es el administrador de ventanas incluído en la distribución Linux por defecto en el proyecto OLPC (Un portátil por niño) o en móviles como el Nokia 770.

Esta diseñado para sistemas portátiles, mínimos, como PDAs, móviles o portatiles muy limitados. También cabe recalcar que está especialmente indicado para mostrar una sóla ventana simultáneamente y así dar prioridad a las tareas principales y ahorrar recursos.

URL | Matchbox Project

WindowLab

WindowLab nació en 2001 como un clon similar al aspecto gráfico de la Amiga.

Con el tiempo, fue adaptándose a los requisitos de los usuarios y permitiendo todo tipo de personalización gráfica, entre otras opciones.

URL | WindowLab

Ion

Ion, también denominado Ion3, nace de un experimento en el que se intenta reducir al máximo el tiempo que el usuario pasa cambiando, buscando o redimensionando ventanas.

El gestor de ventanas muestra las ventanas abiertas en un mosaico de ventanas en serie, fijas, las cuales no es necesario manipular.

URL | Ion Project

DWM & WMII

DynamicWM es un administrador de ventanas simple, basado en texto y muy ligero. De forma muy similar, también tenemos wmii, otro gestor de ventanas similar del mismo autor.

DWM ha sido utilizado para muchos forks, como xmonad -gestor de ventanas escrito en Haskell- o Awesome -llamado así por la famosa frase de Barney Stinson (de la serie Como conocí a vuestra Madre).

URL | DWM | WMII

RatPoison

RatPoison es un administrador de ventanas que, como dice su nombre, es veneno para ratones, por lo que el ratón de tu ordenador de poco te va a servir en este gestor.

Esta directamente diseñado para personas que prefieren utilizar el teclado y no gustan de usar dispositivos apuntadores como ratones o trackballs. RatPoison fue relevado por StumpWM, su sucesor.

URL | Ratpoison

HaZe

Basado en MLVWM, que a su vez está basado en FVWM, HaZe se define como un sistema real en blanco y negro.

Se trata de un gestor de ventanas minimalista, muy rústico y de alto contraste.

URL | HaZe

 articulo visto en : emezeta

 

 


Miércoles 07 de diciembre de 2016

Jorge Ortega

Jorge Ortega
Joenco

Configurando parámetros de accesibilidad en Debian

Cómo están amigos? espero que excelente! aquí les vengo con un interesante artículo sobre cómo configurar algunos parámetros de accesibilidad después de instalar Debian, para que nuestro equipo este casi perfecto!

Estas son las que yo realizo cada vez que hago una instalación nueva de Debian, vamos a ello:

    • Activar un sonido en el grub

Solo debemos agregar o descomentar en el archivo /etc/default/grub lo siguiente:
GRUB_INIT_TUNE="480 440 1"
y luego ejecutamos update-grub para actualizar los cambios, si quieres colocar un tono diferente puedes leer el articulo Colocando un tono al grup.

    • Accesibilidad en aplicaciones QT.

Tenemos que instalar la biblioteca qt-at-spi:
apt-get install qt-at-spi
y la variable de entorno QT_ACCESSIBILITY la establecemos en 1, escribiendo al final del archivo /etc/profile lo siguiente:
export QT_ACCESSIBILITY=1

    • Accesibilidad en aplicaciones de 32 Bits en equipos de 64 Bits

Para poder hacer accesible aplicaciones de 32 Bits debemos hacer lo siguiente desde un terminal cómo superusuario:
dpkg --add-architecture i386
luego actualizamos:
apt-get update
e instalamos lo siguiente para hacer accesible los paquetes de 32 bits:
apt-get install libatk-adaptor:i386 libatk-adaptor

    • Accesibilidad en Java

Hay que instalar el paquete libatk-wrapper-java:
apt-get install libatk-wrapper-java
se debe activar la accesibilidad en OpenJDK manualmente, descomentando, en el archivo /etc/java-6-openjdk/accessibility.properties para Debian 7 (Wheezy) o /etc/java-7-openjdk/accessibility.properties en Debian 8 (Jessie), la siguiente línea:
assistive_technologies=org.GNOME.Accessibility.AtkWrapper

    • Mostrar los íconos en el escritorio

Para mostrar los iconos en el escritorio sigue este articulo: Mostrar los íconos en el escritorio en Debian 7 o superior.

    • Accesibilidad en el GDM

Para que orca nos verbalice en el GDM, cuando nos pide iniciar sesión (esto en debian jessie) presionamos las teclas alternar+supra+S.
También se puede activar ejecutando cómo root lo siguiente:

    • para Squeeze:

/bin/sh -c "gconftool-2 --type bool --set /desktop/gnome/applications/at/screen_reader_enabled true" Debian-gdm

    • O en Wheezy y posteriores así:

/bin/sh -c "eval $(dbus-launch) ; export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID ; GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true" Debian-gdm || true
Con estas configuraciones tendremos un sistema accesible y funcional, les recomiendo leer el wiki de debian sobre accesibilidad en español y si tienen preguntas, dudas o sugerencias pueden dejarlas en los comentarios!

Saludos y nos encontramos pronto …


Viernes 02 de diciembre de 2016

ubuntu-ve: Ubuntu lanza un concurso para crear apps navideñas para Raspberry Pi

Martes 29 de noviembre de 2016

ubuntu-ve: Creados grupos Telegram para la Región Sur

Lunes 21 de noviembre de 2016

Valencia Software Libre: Publicados premios de Observatorio Tecnologico de PortalProgramas

Domingo 06 de noviembre de 2016

Remover dangling commits

Escribo este artículo, porque es otra de esas cosas que olvido y siempre termino buscando repetidas veces (aunque tenga en guardado en mi zsh los 10.000 últimos comandos ejecutados). Voy a escribir brevemente sobre los dangling blobs o dangling commits.

Viernes 28 de octubre de 2016

César Sevilla

César Sevilla
Linux

1er Festival Universitario de Tecnologías Libres

banner2-1024x512A petición del público traemos para todos ustedes a través de la Unidad Territorial – Fundacite Zulia (UTZ) el “Festival Universitario de Tecnologías Libres”, el mismo tiene como objetivo: Impulsar el crecimiento y desarrollo del Software Libre y Código Abierto dentro del ámbito Educativo Institucional en la Región Occidental, para lograr la independencia Científica–Tecnológica del software, apoyándose en los Decretos Nacionales y leyes que ampara el estado venezolano.

Este Festival, se llevará a cabo en el Auditorio de la Universidad José Gregorio Hernández los días viernes 11/11/16 de 8:00 am / 12:00 m – 2:00 pm / 5:00pm y el sábado 12/11/16 de 9:00 am / 12:00 m.

El día Viernes realizaremos 5 Charlas técnicas y para el día Sábado realizaremos 2 charlas y una Jornada de Instalación de Sistemas Operativos Libres y/o Herramientas Libres.

Es importante resaltar que contaremos con varios representantes a nivel nacional, entre ellos Representante de la Cámara Venezolana de la industria Tecnológica, del Laboratorio Vivencial, de la Comunidad de Ubuntu-ve, y de diferentes organizaciones con el propósito de presentar los diferentes proyectos tecnológicos hechos con herramientas libres.

Si deseas participar en dicha actividad recuerda que debes registrarte a través del siguiente enlace: https://www.eventbrite.es/e/entradas-festival-universitario-de-tecnologias-libres-2016-27283438499

Si deseas obtener mayor información, puedes contactarme a través del correo csevilla@fundacite-zulia.gob.ve


Miércoles 14 de septiembre de 2016

Cómo cargar el driver de VirtualBox

Si por algún motivo (Por ejemplo que Genymotion te dice que no consigue VirtualBox) y necesitas reiniciar el driver de Virtualbox, ten en cuenta que en versiones recientes de Debian y Ubuntu el script que realizaba esto cambió de ruta, por lo que si antes hacías esto:

/etc/init.d/vboxdrv.sh setup

Ahora debes cargar el módulo de la siguiente manera:

/usr/lib/virtualbox/vboxdrv.sh setup

Lunes 29 de agosto de 2016

David Moreno

David Moreno
dm's blog

Webhook Setup with Facebook::Messenger::Bot

The documentation for the Facebook Messenger API points out how to setup your initial bot webhook. I just committed a quick patch that would make it very easy to setup a quick script to get it done using the unreleased and still in progress Perl’s Facebook::Messenger::Bot:

use Facebook::Messenger::Bot;

use constant VERIFY_TOKEN => 'imsosecret';

my $bot = Facebook::Messenger::Bot->new(); # no config specified!
$bot->expect_verify_token( VERIFY_TOKEN );
$bot->spin();

This should get you sorted. What endpoint would that be, though? Well that depends on how you’re giving Facebook access to your Plack’s .psgi application.

Jueves 25 de agosto de 2016

Liquify de Darktable, deformación directa a tu RAW

Si hay algo cierto es que cuando editas fotografías, tratas de capturar a la persona tal y como es, pero en un mundo tan saturado de “perfección” los clientes siempre piden un poco de retoque; a veces no es por inseguridad de la persona, sino por mera estética. Lo cierto es que la herramienta de IWarp de Gimp se había convertido en mi mejor amiga a la hora de mover cosas, pero como siempre, darktable sigue agregando cosas increíbles para que mi flujo de trabajo tanto de revelado como de post-producción sea hecho completamente dentro de la app.

Liquify (o Licuar) es uno de los nuevos módulos que se encuentra en Darktable y ofrece una forma versátil de mover pixeles aplicando estilos libres de distorsión a distintas partes de la imagen. Hay tres herramientas para lograrlo, puntos, líneas y curvas; todos basados en nodos. Por ahora, hay un límite de 100 nodos por instancia, pero en serio… ¿Quién usa mas de 100 nodos por instancia? Antes de probarlo, toma en consideración que el módulo consume una cantidad considerable de recursos.

Para crear el nodo solo da click en la zona que quieres afectar. Una vez hecho el click, aparecerá un circulo que podrás controlar de 3 formas: Arrastrando el punto central para re-ubicación, arrastrando el punto al borde externo de la circunferencia para agrandar/disminuir el tamaño de la zona afectada, y arrastrando la flecha interna para determinar la dirección y tamaño de la deformación. Puedes utilizar nodos simples (un solo nodo) o nodos compuestos, que crearán una deformación siguiendo el patron de puntos afectados.


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Domingo 21 de agosto de 2016

César Sevilla

César Sevilla
Linux

Problemas con Revolution Slider (Abort Class-pclzip.php : Missing Zlib)

Si eres una persona que te gusta utilizar WordPress y te llega a salir este pequeño detalle (Abort Class-pclzip.php : Missing Zlib) cuando estás importante un Slider de Revolution Slider, no te preocupes, la solución es la siguiente:

  1. Debes editar el archivo que se encuentra dentro de la carpeta wp-admin/includes/: sudo nano /carpetadondeseencuentresusitio/wp-admin/includes/class-pclzip.php
  2. Encontrar la linea if (!function_exists(‘gzopen’)) y reemplazar gzopen por gzopen64.

Con ese pequeño cambio podrás seguir utilizando sin ningún problema el plugin.

Ahora, ¿Porqué da ese error?, en las últimas versiones de Ubuntu gzopen (función de PHP que nos permite abrir un archivo comprimido en .gz), solo está incluido para arquitectura de 64bits, es por esta razón que es necesario reemplazar gzopen por gzopen64 para que podamos importar todos esos archivos que se encuentran comprimido a través de este tipo de formato.

Happy Hacking!


David Moreno

David Moreno
dm's blog

WIP: Perl bindings for Facebook Messenger

A couple of weeks ago I started looking into wrapping the Facebook Messenger API into Perl. Since all the calls are extremely simple using a REST API, I thought it could be easier and simpler even, to provide a small framework to hook bots using PSGI/Plack.

So I started putting some things together and with a very simple interface you could do a lot:

use strict;
use warnings;
use Facebook::Messenger::Bot;

my $bot = Facebook::Messenger::Bot->new({
    access_token   => '...',
    app_secret     => '...',
    verify_token   => '...'
});

$bot->register_hook_for('message', sub {
    my $bot = shift;
    my $message = shift;

    my $res = $bot->deliver({
        recipient => $message->sender,
        message => { text => "You said: " . $message->text() }
    });
    ...
});

$bot->spin();

You can hook a script like that as a .psgi file and plug it in to whatever you want.

Once you have some more decent user flow and whatnot, you can build something like:



…using a simple script like this one.

The work is not finished and not yet CPAN-ready but I’m posting this in case someone wants to join me in this mini-project or have suggestions, the work in progress is here.

Thanks!

Lunes 15 de agosto de 2016

César Sevilla

César Sevilla
Linux

Scratch, un Software interesante

Hola a todos, después de tanto tiempo me he permitido escribir este artículo como propósito de compartir una experiencia vivida hace poco a través de un programa de formación presentado por www.zuliatec.com llamado Procodi www.procodi.com, programa de formación para niños donde les brinda desde muy temprana edad herramientas que les permiten a ellos desarrollar habilidades y destreza en las áreas de desarrollo, diseño gráfico, Electrónica Digital, Robótica, Medios digitales y música digital.

Scratch (Cómo lo dice su misma página web), está diseñado especialmente para edades entre los 8 y 16 años, pero es usado por personas de todas las edades. Millones de personas están creando proyectos en Scratch en una amplia variedad de entornos, incluyendo hogares, escuelas, museos, bibliotecas y centros comunitarios.

También cita: La capacidad de codificar programas de computador es una parte importante de la alfabetización en la sociedad actual. Cuando las personas aprenden a programar en Scratch, aprenden estrategias importantes para la solución de problemas, diseño de proyectos, y la comunicación de ideas.

Dado a que es muy provechoso esta herramienta tanto para niños como para los adultos me dedico a explicarle de una manera sencilla como hacer funcionar el programa desde GNU/Linux de manera OffLine.

Si usas Gnome o derivado es necesario tener instalado una librería que tiene como nombre Gnome-Keyring y si usas KDE debes tener instalado Kde-Wallet.

Para este ejemplo explico como hacer funcionado Scratch para Linux Mint y que puede servir para S.O derivados para Debian.

  1. Descarga primero desde la web oficial de Scratch https://scratch.mit.edu/scratch2download/ los archivos para instalar Adobe Air y Scratch para Linux, también está disponible para Windows y para Mac.
  2. Luego instalar gnome-keyring: sudo aptitude install gnome-keyring
  3. Agregar dos enlaces simbólicos a la carpeta /usr/lib/ de la siguiente manera: sudo ln -s /usr/lib/i386-linux-gnu/libgnome-keyring.so.0 /usr/lib/libgnome-keyring.so.0 && sudo ln -s /usr/lib/i386-linux-gnu/libgnome-keyring.so.0.2.0 /usr/lib/libgnome-keyring.so.0.2.0
  4. Luego te posiciones desde la consola donde se encuentre el instalador de Adobe Air, y desde allí ejecutar lo siguiente: chmod +x AdobeAIRInstaller.bin && ./AdobeAIRInstaller.bin
  5. Sigue todos los pasos que te indique el instalador y ten un poco de paciencia.
  6. Ya instalado el Adobe Air, buscamos gráficamente el archivo Scratch-448.air y lo abrimos con Adobe AIR application Instaler. También hay que tener un poco de paciencia, pero al terminar te generará un enlace en tu escritorio donde podrás acceder al sistema las veces que desees.

Con lo ante expuesto ya podemos utilizar Scratch OffLine, pero recuerda que si entraste en la web oficial del proyecto pudiste haber notado que también lo podemos utilizar en linea.

Happy Hacking.


Martes 09 de agosto de 2016

Aprendizaje del FlocktoFedora para Diversidad

No puedo expresar la alegría de tener un equipo de personas tan maravillosas, quienes a pesar de las 12h de diferencia, han logrado mantenerme informada sobre todo lo que sucede al rededor de nuestro trabajo de Diversidad en Fedora durante el Flock. Interminables logs de IRC y Telegram han hecho esto posible. Así que acá está mi lista de pensamientos, tareas e ideas sobre las coas logradas en el Flock de Polonia.

Primeros Pasos

Buzón de Diversidad

Estoy bastante impactada con la gran cantidad de casos que mi equipo de Diversidad ha obtenido durante el Flock. Tenemos personas que, a pesar de ser fantásticas para el proyecto, necesitan un poco de guía sobre como tratar a sus compañeros con mas respeto. Es hora de educar a las personas sobre como mantener un ambiente mas amigable y acogedor, sin tantas criticas a las personas nuevas, o a aquellas personas que simplemente no tienen tanto tiempo para colaborar.

Luego de realizar una encuesta personal, más del 80% de las personas que tienen dificultades encontrando un ambiente armónico en Fedora no quieren hablar en voz alta, ni quieren decir sus nombres, y casi 2/3 de ellos ni siquiera quieren reportar el caso ya que piensan que no son relevantes. SI SON RELEVANTES.

A principios de año se comentó la idea de que necesitamos un Buzón de Diversidad lo cual me reforzó Amita luego de conversar con los amigos en el Flock, para que las personas se sientan con la confianza suficiente de conversar con nosotros sin tener que poner sus nombres públicamente. Tenemos casos en otras comunidades donde por el simple hecho de hablar en voz alta han sufrido mucho mas, y transformar un problema pequeño en grande no es nuestra meta.

Este buzón debería ser capaz de registrar información personal o permitir entradas anónimas, así como adjuntar registros o pruebas del problema, para que podamos estudiarlo y buscar la mejor solución. Puedes ayudarnos? por favor, contácteme ASAP para que podamos sacar este buzón!

Programas de Inclusión

Tuvimos un excelente programa inicial con el FWD organizado el mes pasado, y a pesar de que comenzamos pequeño, lo hicimos con mucha energía. Fui parte de una jornada de Diseño online en Perú y me uní a los esfuerzos locales de las reuniones de WordPress en mi ciudad, Amita organizó un excelente FWD en India, Jona hizo un fantástico trabajo con su grupo de chicas en Albania y Christos se nos unió con un excelente panel en el FWD de Grecia. La asistencia fue fantástica, mejor de lo esperado!

Mientras mas comencemos a aprender sobre los colaboradores, podremos crear mejores programas para ayudar a cada grupo de minoría. FWD demostró ser una excelente iniciativa pero queremos mas, y para eso necesitamos el elemento mas importante, colaboradores. A pesar de que hagamos nuestro mejor esfuerzo en conocer cada minoría, aquellos que las experimentan de primera mano son quienes nos ayudarán a aprender a comprender mejor a cada colaborador de forma particular en nuestro proyecto. Nuestra idea es no solo tener reuniones anuales, pero también tener tantas reuniones en línea como sea posible para que nuestras barreras desaparezcan. Te interesa organizar alguna de estas reuniones?

Nuestra meta es organizar al menos una reunion mensual donde no solo podamos construir una mejor comunidad Fedora, pero también expandir los conocimientos que tenemos sobre cada miembro de nuestra comunidad.

Próximos Pasos

Encuesta de Diversidad

Una de las primeras ideas que tuvimos para el team de Diversidad fue la (no tan famosa) encuesta, que nos ayudaría a comprender mejor como esta construida nuestra comunidad. A pesar de que tenemos infinidad de nombres en nuestra FAS, conocemos muy poco sobre nuestros colaboradores. Es imperativo seguir presionando para que esta idea se convierta en realidad.

Puedes ver el estado actual de nuestra encuesta revisando al final de los registros de nuestras reuniones de Diversidad en Polonia en este pad.

Reportes Anuales

Cada año tenemos estadísticas sobre cuantos tickets fueron resueltos, cuantos nuevos embajadores tenemos y cuantas badges fueron otorgadas, pero necesitamos estadísticas sobre nuestros esfuerzos de diversidad e inclusión.

Con reportes anuales que nos ayuden a comparar y aprender, podremos ver si nuestros esfuerzos están generando una comunidad mas acogedora, y nos está ayudando a combatir el bullying y el acoso, permitiéndonos mejorar.

Qué sigue?

Queremos escuchar tus ideas! No seas penos@!

[contact-form]

This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Viernes 05 de agosto de 2016

Jorge Ortega

Jorge Ortega
Joenco

Activar la accesibilidad en el escritorio Mate en Debian

¡Saludos amigos!, feliz comienzo de vacaciones deseando que las disfruten lo mejor posible, yo seguiré trabajando ya que mis vacaciones ya las disfrute, pero dejemos de dar tantas vueltas y revisemos cómo podemos activar la accesibilidad en el escritorio Mate cuando lo instalamos en Debian Jessie teniendo otro entorno cómo Gnome que es mi caso, ya que al parecer esta no se activa. La información aquí detallada la puedes conseguir en inglés en el articulo “Mate Desktop Installation and Accessibility”, por si desean revisar, además que hacen algunas recomendaciones para dejar mucho más accesible este escritorio.
 
Comencemos por instalar el escritorio, abriendo un terminal como superusuario(root) y escribiendo:
aptitude install mate-desktop-environment-extras
con el comando anterior instalaremos todo el entorno Mate y algunos extras.
 
Cuando termine de instalar y antes de reiniciar, desde la misma terminal/consola, vamos a crear un archivo en /etc/profile.d/ con extensión .sh, el cual yo llame accesibilidadmate.sh, aquí los pasos:
 
1. Escribimos en terminal:
nano /etc/profile.d/accesibilidadmate.sh
eso nos abrirá un archivo vacío, en el cual agregamos las siguientes líneas:
 
#!/bin/bash
export GTK_MODULES=gail:atk-bridge
 
2. guardamos presionando “control+O”, presionamos enter para que lo guarde con el nombre que habíamos colocado y cerramos con “control+X”, este archivo exporta el modulo GTK requerido para que el escritorio Mate, así cómo otros sean accesibles
 
3. Ahora le damos permisos de ejecución, por lo que escribimos en el terminal:
chmod 755 /etc/profile.d/accesibilidadmate.sh
 
4. Nos toca reiniciar, así que desde la misma terminal/consola escribimos:
reboot
 
5. Antes de iniciar sesión, cuando nos pida colocar la contraseña presionamos 2 veces la tecla tabular, luego pulsamos la barra espaciadora y elegimos el escritorio Mate, al elegir el escritorio ya podremos iniciar sesión.
 
6. Ya dentro del escritorio abrimos un terminal, pulsando alternar + F2 y escribiendo “mate-terminal”, cuando se abra el terminal/consola nos logueamos cómo superusuario(root) y activamos las tecnologías de asistencia colocando:
 
gsettings set org.mate.interface accessibility true
gsettings set org.gnome.desktop.a11y.applications screen-reader-enabled true
 
Si aún no tenemos accesibilidad, sólo nos toca reiniciar y listo, ya podremos usar el escritorio sin problemas!
 
Todas estas configuraciones las tuve que hacer ya que cómo tenia instalado el entorno Gnome previamente, al parecer al instalar Mate este último no tenia accesibilidad, es decir, el lector de pantalla orca se activa pero no verbaliza nada del escritorio, ni los menús, ni las aplicaciones, ni nada.
 
Y ya sabes, si te ha gustado la entrada o te parece interesante puedes compartirla para que otros se enteren cómo activar la accesibilidad en el escritorio Mate. Además si tienes alguna duda o sugerencia puedes dejarla en los comentarios, con gusto te respondo!.


Miércoles 03 de agosto de 2016

Diversidad en el Flock Krakow (Polonia)

Hay algo que todos amamos, una buena charla con amigos, y eso fue el Panel de Diversidad en el Flock Krakow. En un Panel realmente interesante lleno de no solo personas increíbles, pero experimentadas, discutimos como podemos mejorar nuestros esfuerzos para lograr que todos se sientan cómodos y animarlos a hacer lo que les gusta sin que tengan que preocuparse por lo que la gente piense.

Tengo que darle un agradecimiento especial a mi equipo de Diversidad, Justin, Amita, Jona, Bee y Silvia; quienes hicieron posible que asistiera a pensar de las dificultades; no puedo expresar lo agradecida que estoy por el esfuerzo de todos! Ahora, entremos en tema: (mis disculpas si no coloco los nombres al lado de las ideas expuestas, el video no era lo suficientemente bueno para identificarlos a todos)

Escuchar

Es fácil llenarse la cabeza con los últimos paquetes que necesitan ser armados, sobre los últimos .po que deben ser traducidos, o sobre ese bendito px que sigue interfiriendo en el diseño; debemos tomarnos un momento para levantar la cabeza y ver las personas que trabajan con nosotros. Nuestra comunidad está llena de toneladas de personas con cualidades que hacen que el proyecto crezca cada día, sin embargo, a veces consideramos que esto es un trabajo de tiempo completo en vez de un trabajo colaborativo. El momento en que dejamos de escuchar a nuestros colaboradores que necesitan guía, nuestros números bajaran ya que no seremos capaces de  generar una nueva generación de relevo.

Difundir

Siéntete orgulloso de trabajar con otros en vez de solo buscar tus propias recompensas. La comunidad ES tu familia, y deberías tratarla como tal. no seremos capaces de incluir mas personas a nuestras líneas a menos de que hablemos de ello, siente orgullo sobre tu comunidad y deja de darle importancia al que dirán. Es fácil olvidad que todos comenzamos como novatos preguntando cosas tontas, es fácil olvidar que NOSOTROS somos quienes tenemos la responsabilidad de mostrar que hay una tarea para todos en la comunidad. Es momento de que difundamos que nos sentimos orgullosos por nuestros compañeros en el proyecto. Una gran idea es tener una persona del equipo de Diversidad como representante en cada Team, para así poder hacer que todos se sientan incluidos. No es un secreto que conocemos mas a las personas que están dentro de nuestro mismo equipo, y no conocemos mucho a el resto de personas que están en el proyecto… es un gran proyecto. Al tener un miembro de Diversidad en cada Equipo podremos reducir la brecha entre nosotros y las personas que necesiten de nuestra ayuda.

Incentivar

Yo creo que nuestros procesos son inclusivos, si no, muchos de nosotros no estaríamos aquí en primer lugar, sin embargo, si creo que tenemos algunos miembros activos que son una debilidad. Una de nuestras debilidades es que no sacamos la cabeza de lo que estamos haciendo, y no tomamos un momento para ver lo que nos rodea. Hay un MONTÓN de personas dispuestas a colaborar, sin embargo, TODOS tenemos que trabajar como mentores (sin importar si eso te agrega un +1 de karma). Con tantos badges, estadísticas y similares, de cierta forma estamos olvidando el porque somos una comunidad, no es solo para hacer cosas fantásticas con software, pero también para divertirnos. Una vez comprendamos que el número de colaboradores felices es tan importante (o mas) que el número de badges que tenemos o nuestras estadísticas en el track, seremos capaces de tener una comunidad mas saludable y acogedora.

Apoyar

No es un secreto que hay personas que se sienten incómodas y otras personas que disfrutan de esto, siempre hay un troll y un peleón. Necesitamos crear una red de soporte con la que podamos ayudar a las personas a sentirse protegidas y seguras, y también un lugar donde podamos enseñarles a lidiar con estas situaciones. No debemos construir una pared al rededor de nuestros colaboradores, debemos enseñarlos a forjar herramientas que los preparen para defenderse ante cualquier ataque. Creo que podemos ser un instrumento para enseñarle a las personas como vivir felices en este mundo.

Me gustaría agradecer a Matthew, Christoph, Marina, Laura, Kohane, Kushal y todos aquellos a quienes no les reconocí las voces mientras colaboraban en el panel; esto demuestra que hay un interés real en construir una mejor comunidad para nuestros usuarios, y no solo construir buen software.


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Martes 31 de mayo de 2016

Jorge Ortega

Jorge Ortega
Joenco

Actualizar el Libreoffice en Debian 8 (jessie)

Hola! Espero hayan tenido un feliz Mayo, se acuerdan el artículo donde actualizamos la versión del lector de pantalla orca en jessie? la entrada era: Actualizar el lector de pantalla orca a la versión 3.18 en Debian Jessie, lo que mejora la accesibilidad, pero al realizar esta actualización el libreoffice pierde algo de accesibilidad ya que orca no verbaliza el contenido que tiene el documento.
 
Para resolver este problema solo debemos actualizar el libreoffice y es justo lo que haremos a continuación:

  1. Abrimos un terminal/consola y entramos cómo superusuario (root).
  2. Abrimos el archivo sources.list escribiendo en el terminal/consola:
  3. gedit /etc/apt/sources.list

  4. Revisamos el archivo para saber si tenemos los Backports, en caso contrario los añadimos al archivo copiando y pegando al final del mismo la siguientes 3 líneas:
  5. # Backports
    deb http://ftp.fr.debian.org/debian jessie-backports main contrib non-free
    deb-src http://ftp.fr.debian.org/debian jessie-backports main contrib non-free

  6. Guardamos los cambios con “Control+S” y cerramos con “Control+Q”.
  7. Actualizamos escribiendo en el terminal/consola lo siguiente:
  8. aptitude update

  9. Instalamos la última versión de libreoffice escribiendo:
  10. apt-get -t jessie-backports install libreoffice

  11. Finalizamos escribiendo en nuestra terminal:
  12. aptitude upgrade

 
Y eso es todo lo que debemos hacer para tener el libreoffice actualizado y completamente accesible!!
 
La información de cómo actualizar la conseguí en: Como instalar la última versión de Libre Office en Debian Jessie por si desean más información.
 
Saludos y nos encontramos en una próxima entrada!


Lunes 09 de mayo de 2016

Richzendy Contreras

Richzendy Contreras
Gnu y Linux – Richzendy.org

Flisol 2016 San Cristóbal

Lunes 02 de mayo de 2016

Cómo actualizar el huso horario en Linux

time zone map

El 1° de mayo, el huso horario cambiará en Venezuela a UTC-4, por lo que debes actualizar el paquete tzdata en Linux para estar preparado para este cambio. Para hacer esto solo debes hacer lo siguiente:

Debian/Ubuntu

aptitude update
aptitude safe-upgrade tzdata

Red Hat

yum check-update
yum update tzdata

Para verificar que se la actualización tiene el cambio del huso horario se puede ejecutar la siguiente orden:

zdump -v /usr/share/zoneinfo/right/America/Caracas  | grep 2016

/usr/share/zoneinfo/right/America/Caracas  Sun May  1 06:59:59 2016 UT = Sun May  1 02:29:59 2016 VET isdst=0 gmtoff=-16200
/usr/share/zoneinfo/right/America/Caracas  Sun May  1 07:00:00 2016 UT = Sun May  1 03:00:00 2016 VET isdst=0 gmtoff=-14400

Referencia: How to check if the Time Zone database

Domingo 01 de mayo de 2016

Alberto Capella

Alberto Capella
alberkman Blog

Cambio de Huso Horario en Venezuela V3

Faltan pocas horas para el cambio de huso horario en Venezuela, y hace poco me preguntaban: ¿Tengo PfSense como firewall, qué hago al respecto?

Por defecto, PfSense viene sin el compilador, así que no es posible generar el archivo de zona en el mismo equipo.

La solución es muy sencilla, teniendo actualizado el paquete tzdata en algún servidor (o en tu estación de trabajo) con GNU/Linux, solo debes copiar el archivo de zona “Caracas” (ubicado en el directorio /usr/share/zoneinfo/America/ de tu sistema Debian) al directorio “/usr/share/zoneinfo/America/” en el servidor PfSense.

Para validar, solo deben ejecutar zdump -v America/Caracas | grep 2016 en una consola dentro del servidor PfSense; o ir al menú “Diagnostics” opción “Command Prompt” del dashboard y colocar el comando anterior.

Saludos.

Viernes 29 de abril de 2016

Alberto Capella

Alberto Capella
alberkman Blog

Cambio de Huso Horario en Venezuela V2

Prácticamente en menos de 48 horas el país cambiará nuevamente de Huso Horario, y como cosa rara, he visto personas tratando el tema de una manera “brillante” (joke).

Para hacer el cambio (de Huso Horario) en sistemas GNU/Linux solo hay una vía; actualizar el paquete tzdata al release 2016d; que ya incluye el cambio automático para Venezuela.

Ahora bien, que debes hacer si tienes Debian como Sistema Operativo ?

  1. Verificar que en el archivo de repositorios (/etc/apt/source.list) tengas el repositorio updates (si no lo tienes, debes agregarlo); tal como:
    deb http://ftp.br.debian.org/debian wheezy-updates main
    o
    deb http://ftp.br.debian.org/debian jessie-updates main
  2. Actualizar la lista de paquetes con el comando: apt-get update
  3. Instalar la actualización de el paquete tzdata con el comando: apt-get install tzdata
  4. Probar la actualización del paquete, con el comando: zdump -v America/Caracas | grep 2016

En Sistemas RHEL/CentOS/Etc, la actualización de este paquete se encuentra en el apartado updates en el archivo <distro>.repo que se encuentra en el directorio /etc/yum.repos.d/

Preguntas y Respuestas:

  • ¿Puedo utilizar el protocolo NTP para actualizar el huso horario? Resp: NO, para esto debes actualizar el paquete tzdata al release 2016d. El protocolo NTP sirve para actualizar la hora, NO el huso horario.
  • ¿No puedo sincronizar la hora usando NTP, puedo “setear” de forma manual la hora al sistema? Resp: , siempre y cuando actualices el paquete tzdata al realease 2016d; si no actualizas el tzdata, tu sistema podrá tener la hora teóricamente correcta, pero el sistema seguirá estando en el huso horario UTC -0430, por lo tanto, legalmente y técnicamente no tendrás la hora correcta.

Saludos.

Sábado 16 de abril de 2016

Alberto Capella

Alberto Capella
alberkman Blog

Cambio de Huso Horario en Venezuela

Hola, debido al cambio de huso horario que entrará en vigencia en el país a partir del 1 de mayo, me tome la libertad de reportar el caso en Debian y crear (disponibles desde  acá) los binarios deb y rpm con el último release de tzdata (Time Zone Data v. 2016d Released 2016-04-17); esta versión ya incluye el cambio en el huso horario Venezolano.

Solo deben descargar el paquete de acuerdo a su distro e instalarlo usando dpkg -i <paquete.deb> o rpm -iUvh <paquete.rpm>.

Para comprobar el cambio solo deben ejecutar lo siguiente:

$ zdump -v America/Caracas | grep 2016

America/Caracas Sun May 1 06:59:59 2016 UT = Sun May 1 02:29:59 2016 VET isdst=0 gmtoff=-16200
America/Caracas Sun May 1 07:00:00 2016 UT = Sun May 1 03:00:00 2016 VET isdst=0 gmtoff=-14400

Si tienen una instalación de PstgreSQL, basta con lanzar este par de querys:

SELECT TIMESTAMP ‘2016-04-30 07:00:00’ AT TIME ZONE ‘UTC’;

SELECT TIMESTAMP ‘2016-05-01 07:00:00’ AT TIME ZONE ‘UTC’;

El resultado será algo parecido al anterior.

 

Saludos.

Martes 12 de abril de 2016

Valencia Software Libre: Flisol 2016 - Valencia | Carabobo

Domingo 10 de abril de 2016

José Miguel Parrella Romero

José Miguel Parrella Romero
null pointer dereference

Perspective at //build

Recently I had the opportunity to share stage with some brilliant internal and external colleagues advancing open source in the cloud at //build, Microsoft’s developer conference in San Francisco. Beyond having been able to talk to about 400 attendees about how we’re approaching open source in the cloud, how customers are building open source applications in Azure and much more, speaking at //build had a very special meaning for me.

Before joining Microsoft, I didn’t have a lot of exposure to the Microsoft developer ecosystem, the Microsoft subsidiaries themselves or the employees working there. I was focused in a number of open source projects such as Canaima (Venezuela’s national distro) a number of communities and expanding a small open source system integrator in the region.

Most of my interaction with Microsoft was limited to public debates, at industry events or in Congress, or to the ISO/IEC 29500 discussion back in the days (both of which I’ve covered in this blog, in Spanish) However, around 2009 or so, the company I was a CTO for and Microsoft decided to create an Open Source Interoperability Lab in Venezuela. The idea was to document common hybrid technology use cases (such as Samba-based DCs in Windows environments, or PHP and ASP.NET communicating via ESB) and transfer that knowledge to customers.

As a result of that effort, I ended up being invited to and participating in PDC09 in Los Angeles. PDC was the precursor of //build, a yearly conference aimed at Microsoft-centric developers. There are 3 things I remember clearly from PDC09: one, was the “convertible tablet PC” they offered attendees (running Windows 7 bits that rapidly became Debian bits), the second one was the PHP SDK for Azure, and the preview access to that new “cloud” thingy, and the third one was an open source roundtable led by Miguel de Icaza that mainly talked about governance and CodePlex.

While I didn’t know it back then, a lot of the things discussed in that roundtable influenced my decision, about a year later, to join Microsoft and work in open source strategy; a journey that brought me to Azure in less than 5 years. But I digress, and that whole story deserves another post.

Maybe some of the attendees then foresaw that Microsoft would end up acquiring Xamarin, or that attention would be put in non-CodePlex initiatives, like GitHub. What I really didn’t expect was that all of that new reality would converge into a PDC-like event, less than 10 years after. This year at //build it did, and then some.

For me, speaking at //build was a humbling opportunity to reconcile the many worlds increasingly pulled together by the force of open source. From the announcements to the content and all other metasignals at the conference, it was incredibly exciting to see this transformation manifesting itself within Microsoft’s developer community.

It highlights the importance of leaving no one behind when we explore new paradigms and technologies in the cloud, and how every individual in the open source community can exert change in this industry.


Domingo 20 de marzo de 2016

Silvio Perez: Creating a simple puppet manifest
Silvio Perez: Script that change all filenames in a directory to upper/lower case

Sábado 06 de febrero de 2016

Luis A. Martínez F.

Luis A. Martínez F.
Hunting Bears

Rescatando la memoria técnica del proyecto Canaima GNU/Linux

6ta Cayapa Canaima. Imagen de David Hernández (by-nc-sa).

Una actividad creativa tiene muchos matices y particularidades. Podemos estar de acuerdo en que nada está realmente hecho desde cero, puesto que siempre existe un antecedente del cual hemos tomado prestado inspiración. Específicamente en el desarrollo de Software Libre, esta es una actividad recurrente e incluso alentada como buena práctica. Y es que, todo el movimiento del conocimiento libre tiene como premisa la mejora progresiva de la forma en que la sociedad satisface sus necesidades, tomando como referencia los avances que otros han hecho y publicado.

El Proyecto Canaima, por su parte, cumple 9 años desde la publicación de la versión 1.0. Desde ese entonces, año tras año, incontables personas han ayudado con su trabajo de diversa índole a la mejora progresiva de los procesos técnicos y no técnicos de la distribución.

Realmente son incontables. A pesar de no poseer la mano de obra de otras distribuciones, Canaima es utilizada en un número significativo de instituciones de la administración pública, sirve como sistema operativo para las más de 4 millones de canaimitas distribuídas a nivel nacional y ha entrado varias veces dentro de las 100 distribuciones más populares, según distrowatch.

Como trabajador del CNTI, fuí testigo directo de la evolución de la distribución, y de como con cada Cayapa (reuniones técnicas o bug squash parties), la calidad del código, conceptos y estructura de la distribución maduraban.

Borrón y cuenta nueva

En la última minicayapa celebrada en la Escuela Venezolana de Planificación en la ciudad de Caracas, los actores presentes tomaron la decisión de rehacer la distribución desde cero, bajo la justificación de que lo existente era tan desastroso que no servía.

Con un quórum cuestionable y una premura impresa por la institucionalidad, nacieron nuevos paquetes y nuevos procesos. Pero con ellos también volvieron los errores superados, las malas estructuras de diseño corregidas, los errores conceptuales que ya habían quedado atrás, sin mencionar los acuerdos alcanzados que fueron fácilmente rotos sin mayor explicación.

No es justificable de ninguna forma este accionar. Incluso, no estaría de acuerdo si se hubiese hecho borrón y cuenta nueva para sustituirlo por algo mejor. La memoria técnica de un proyecto no debe perderse.

Rescatando lo perdido

Es así como he decidido continuar con la línea de investigación que el Proyecto Canaima (directa o indirectamente) echó a un lado. La nueva distribución tomará el nombre de Tribus GNU/Linux, el mismo nombre de su plataforma (Tribus). Preliminarmente estaré haciendo una imagen ISO con los mismos paquetes originales de Canaima (con los nombres cambiados), basada en Debian Sid y comenzando su versionamiento en 0.1, pero luego me dedicaré enteramente a terminar la plataforma de Tribus para poder establecer los criterios de participación comunitaria, modelos de gobernanza y automatización de procesos.

Por ahora, mientras la plataforma de Tribus se completa, las plataformas asistentes serán las siguientes:

Si alguno desea sumarse a esta iniciativa, es bienvenido en las listas de correo. Esta nueva distribución está dirigida al usuario común y tiene como propósito fundamental mejorar la experiencia en el área de escritorio.

Martes 19 de enero de 2016

Carlos Colmenarez

Carlos Colmenarez
LINUX – El Blog de Zero

BlackBerry abandonará definitivamente su sistema operativo en favor de Android

BlackBerry 10 ha muerto. Así lo ha anunciado John Chen, el director ejecutivo de la compañía canadiense que apostará por Android en 2016 con uno o dos terminales nuevos este año. El anuncio llega mientras explicaba como el BlackBerry Priv llegaría a más operadores estadounidenses, pero sin añadir fechas para Europa todavía, pero que llegará a 31 países más a lo largo de los próximos trimestres.

BlackBerry es una compañía peculiar, y al depender mucho de las ventas corporativas no necesita tener una amplia gama o tener nuevos dispositivos cada trimestre en el mercado. Pero sí necesita una buena ejecución en cada uno. John Chen piensa que es así. En los resultados financieros presentados a finales de diciembre así lo afirmaba.

Blackberry tiene una base sólida financieramente, y estamos ejecutando bien sobre ella. Para sostener nuestra dirección actual estamos aumentando las inversiones para añadir crecimiento continuado en software

Esta estrategia de apostar por el software y los servicios, manteniendo productos con un sistema operativo que las empresas estén dispuestas a implementar, así como usuarios avanzados. El salto a Android despeja las dudas que los inversores pueden tener, y permite liberar a ingenieros de software atados en BB10 para el desarrollo y personalización de Android, así como los servicios.

blackberry resultados

El hardware de BlackBerry ya solo constituye el 40% de sus mermados ingresos. En plena cima, cuando los ingresos de BlackBerry se contaban en las decena de miles de millones y no en las centenas de millones, el hardware suponía más del 80% de sus ingresos. No es secreto que el futuro de BlackBerry pasa por los servicios y el software que puedan ofrecer a las empresas. Pero no está claro cómo de potente sea la diferenciación que puedan ofrecer para seguir siendo relevantes.


Lunes 02 de noviembre de 2015

Manuel Mújica

Manuel Mújica
Experiencias Doctorales

Los permisos de archivos en Linux

Origen: Los permisos de archivos en LinuxArchivado en: Varios