Quantcast
Channel: Planeta Linux Venezuela
Viewing all 714 articles
Browse latest View live

Miguel Useche: Resumen del evento de Herramientas para el desarrollo moderno

$
0
0

El pasado viernes 6 de octubre de 2017 se realizó en la Universidad Nacional Experimental del Táchira un evento llamado Herramientas para el desarrollo Moderno. Este evento en la UNET fue organizado por el Centro de Estudiantes de Informática en conjunto con el área de eventos del Departamento de Informática. Contó con la participación ponentes compuestos de un estudiante, un profesor, un invitado de otra ciudad y un invitado internacional. Ademas abarcó distintos temas y finalizó con el desarrollo del Firefox Quantum Sprint.

Temas

Se contaron con 4 ponencias dividas en 2 turnos:

  1. Edwin Vargas nos dió una introducción a React Native, un gran tecnología para hacer aplicaciones nativas utilizando Javascript. Explicó como es la tecnología, como iniciar y ejemplos de código. Excelente forma de iniciarse en el desarrollo de aplicaciones móviles.
  2. Luego Arturo Martinez, representante de Mozilla en Venezuela. Nos comentó sobre las mejoras prácticas para la elaboración de Interfaces de Usuario. Posteriormente, se repartió recuerdos de Mozilla a todos los asistentes del evento.
  3. En la tarde desde Argentina, Andrés Villanueva nos mostró todas las bondades de Firebase. Me gustó bastante esta ponencia porque no conocía la plataforma, ademas que Andrés siempre da un buen toque de humor y logra mantener la atención del grupo.
  4. Para cerrar, estuve hablando sobre las herramientas de desarrollo de Firefox. Pude mostrar unos pequeños ejemplos de como utilizarlas. Invitar a la audiencia a participar en el proyecto Mozilla y finalmente repartir mercancía de Mozilla.
Edwin Vargas hablando sobre React NativeArturo Martinez exponiendo sobre UXAndres Villanueva hablando sobre FirebaseMiguel Useche hablando sobre las herramientas de desarrollo de Firefox

Firefox Quantum Sprint

Luego de finalizar las charlas, procedimos a realizar el Firefox Quantum Sprint. Un evento de Mozilla que se estaba realizando en varios países del mundo. Este evento consistía en probar los sitios web mas importantes de Venezuela con la versión 57 del navegador. En caso de encontrar fallas se reportaba al equipo de Mozilla para posterior corrección (de hecho nos contactaron en tiempo real sobre algunos reportes, así que si estaban monitoreando).

Esta parte del evento fue divertida porque se notó mucho interés de los participantes. Logramos probar aproximadamente 100 páginas y como 10 de ellas presentaron problemas en la nueva versión.  Al finalizar se rifó una franela del zorro, un kit de detalles de Mozilla a las chicas y calcomanías para todos.

Firefox Quantum Sprint, el otro evento en la UNET

Foto de Kevin Cortés | @Kevincortes13

Me gustó la iniciativa de realizar este tipo de evento en la UNET por parte de estudiantes, siempre se logra aprender cosas nuevas y actuales. Como profesor es gratificante ver la asistencia de alumnos y ver en sus rostros cuando se interesas por estos temas. Espero que este tipo de evento en la UNET ese realicen con mas frecuencia y mas participación de la comunidad. Gracias a todos los que hicieron posible la realización del evento.

La entrada Resumen del evento de Herramientas para el desarrollo moderno aparece primero en El blog de Skatox.


Jesus Palencia: Un PC sumergido en aceite mineral

$
0
0
Hace unos días compre los componentes para armar un nuevo PC pero al intentar colocarlo en la antigua carcasa me doy cuenta que la tarjeta madre no encaja correctamente por lo que me puse a buscar posibles soluciones y me … Sigue leyendo

Héctor Colina: docker y odoo – I

$
0
0

Desde hace algún tiempo, he venido trabajando-investigando con docker, tiempo en el cual he solventado algunos pequeños escollos a medida que se me han ido presentando.

Estos posts, de la serie docker, relatarán dichas peripecias.

En esta oportunidad, necesitaba ingresar como root dentro de un contenedor de docker sobre el cual funcionaba odoo; luego de leer la documentación [1], di con la instrucción precisa:

docker exec -u root -it odoo /bin/bash

La explicación de este comando es:

  • docker exec= ejecuta un comando docker dentro de una instancia determinada
  • -u root = usuario que ejecutará el comando, es importante notar que acá puede utilizarse tanto el nombre del usuario como uid del mismo
  • -it = esto es la unión de dos parámetros, -i -t, los cuales indican, respectivamente, ejecutar el comando de forma interactiva (-i) y crear una pseudo tty (-t) para “enganchar” un comando en específico. Es importante recordar que un contenedor es una máquina y que para acceder a la misma necesitamos “engancharnos”, esto es crear un pseudo dispositivo sobre el cual se anexará un comando
  • odoo = en esta secuencia es el nombre del contenedor sobre el cual se ejecutará la acción
  • /bin/bash = acá significa que esta es la orden a ejecutar

En resumidas, el comando dice

Crea un consola bash dentro del contenedor de nombre odoo y en la misma ingresa al usuario root

Espero les sea de ayuda

[1] https://docs.docker.com/engine/reference/commandline/exec/#options

César Mata Moya: Instalación de OCSInventory 2.3.1 en Debian Jessie 8.9 con Mysql 5.5 - Apache 2.4 - PHP5-FPM

$
0
0
PAQUETES

apt-get install mysql-server apache2 php5-fpm php5-gd libphp-pclzip libxml-simple-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libio-compress-perl make build-essential  php5-curl php5-mysql

PHP5-FPM

Editar /etc/php5/fpm/pool.d/www.conf

listen = 127.0.0.1:9000
pm = ondemand
pm.max_children = 200

Editar /etc/apache2/sites-available/000-default.conf
Añadir antes de </VirtualHost>:

    <FilesMatch \.php$>
            SetHandler proxy:fcgi://127.0.0.1:9000
    </FilesMatch>

Editar /etc/apache2/sites-available/default-ssl.conf
Añadir antes de </VirtualHost>:

    <FilesMatch \.php$>
            SetHandler proxy:fcgi://127.0.0.1:9000
    </FilesMatch>

Reiniciar php5fpm:
/etc/init.d/php5-fpm restartActivar las configuraciones de Apache
a2enmod proxy_fcgi
a2enmod cgi
a2ensite default-ssl
a2enmod ssl
service apache2 restart
MYSQL

Configurar MySQL
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'ocs'@'localhost' IDENTIFIED BY 'ocs' WITH GRANT OPTION;
exit
CPAN - PERL

Actualizar CPAN
perl -MCPAN -e shell
install CPAN
reload CPAN
exit
Instalar módulos de CPAN
cpan -i XML::Entities
cpan -i YAML
cpan -i Archive::Zip

OCSINVENTORY

Descomprimir OCSNG_UNIX_SERVER-2.3.1.tar.gz
tar -xvzf OCSNG_UNIX_SERVER-2.3.1.tar.gz
cd OCSNG_UNIX_SERVER-2.3.1
./setup.sh
Seleccionar todas las opciones por defecto
Ignorar *** Warning: PERL module Apache2::SOAP is not installed !
Editar /etc/apache2/conf-available/ocsinventory-reports.conf
Añadir después de <Directory /var/lib/ocsinventory-reports/download> las líneas:
Options Indexes FollowSymLinks
AllowOverride Options
a2enconf z-ocsinventory-server
a2enconf ocsinventory-reports
service apache2 restart
Acceder a la aplicación:
http://ip/ocsreports
Colocar los valores por defecto:
Usuario: ocs
Contraseña: ocs
Base de Datos: ocsweb
Host: localhost

Jesus Palencia: Como desmontar un Nintendo Wii

$
0
0
Hace mucho tiempo les mostré un vídeo sobre como hackear la Wii sin chip ni juego, en aquella ocasión solo tocamos el tema del software, pues hoy le toca el turno al hardware de esta popular consola.Sin mas preámbulo acá … Sigue leyendo

César Mata Moya: Compilar warzone2100 2.3.9 en Ubuntu 16.04 para equipos que no soportan OpenGL >= 2.0

$
0
0
Instalar Paquetes

apt-get install build-essential automake flex bison libpopt-dev libpng12-dev libsdl1.2-dev libopenal-dev  libphysfs-dev libtheora-dev libglc-dev zip bisonc++ libtool libglew1.13 libminiupnpc10 libqt4-script libqt4-xml libqtcore4 libqtdbus4 libvorbisfile3 qtcore4-l10n

cd /var/tmp/

Descargar Fuentes

https://sourceforge.net/projects/warzone2100/files/archives/unsupported/Warzone2100-2.3/2.3.9/warzone2100-2.3.9.tar.gz/download
http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.gz

En /var/tmp/
tar -xvzf warzone2100-2.3.9.tar.gz
mkdir /var/tmp/warzone2100-2.3.9/lib/vorbis

tar -xvzf libvorbis-1.3.2.tar.gz
cd /var/tmp/libvorbis-1.3.2/

./configure --libdir=/var/tmp/warzone2100-2.3.9/lib/vorbis/lib --includedir=/var/tmp/warzone2100-2.3.9/lib/vorbis/include --disable-shared --oldincludedir=/var/tmp/warzone2100-2.3.9/lib/vorbis/lib

make -j 2
make install

cd /var/tmp/warzone2100-2.3.9/

OGGVORBIS_CFLAGS="-I/var/tmp/warzone2100-2.3.9/lib/vorbis/include/" LDFLAGS="/var/tmp/warzone2100-2.3.9/lib/vorbis/lib/*.a" CFLAGS="-I/var/tmp/warzone2100-2.3.9/lib/vorbis/include/" OGGVORBIS_LIBS="/var/tmp/warzone2100-2.3.9/lib/vorbis/lib/*.a"  ./configure --prefix=/opt/warzone2100-2.3.9

OGGVORBIS_CFLAGS="-I/var/tmp/warzone2100-2.3.9/lib/vorbis/include/" LDFLAGS="/var/tmp/warzone2100-2.3.9/lib/vorbis/lib/*.a" CFLAGS="-I/var/tmp/warzone2100-2.3.9/lib/vorbis/include/" OGGVORBIS_LIBS="/var/tmp/warzone2100-2.3.9/lib/vorbis/lib/*.a"  make -j 2

make -Cpo install

Referencias:

http://developer.wz2100.net/wiki/CompileGuideLinux
http://developer.wz2100.net/wiki/CompileGuideLinux?version=38

Jesus Palencia: Quantum de cerca: ¿qué es el motor de un navegador web?

$
0
0
Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Traducción por Sergio Carlavilla Delgado. En octubre del año pasado Mozilla anunció el Proyecto Quantum – nuestra iniciativa para crear un motor de navegación web de nueva … Sigue leyendo

Jesus Palencia: El perceptrón y perceptrón multicapa ¿Qué es y con que se come?

$
0
0
El perceptrón dentro del campo de las redes neuronales tiene dos acepciones. Puede referirse a un tipo de red neuronal artificial desarrollada por Frank Rosenblatt y, dentro de esta teoría emitida por Rosenblatt, también puede entenderse como la neurona artificial … Sigue leyendo

Kenner Roa: Conoce como funciona Proxmox y como usarlo

$
0
0
Está Escrito:
Picture
Hermanos, yo mismo no pretendo haberlo ya alcanzado; pero una cosa hago: olvidando ciertamente lo que queda atrás y extendiéndome a lo que está delante, prosigo a la meta, al premio del supremo llamamiento de Dios en Cristo Jesús.

Tomado de : 911-ubuntu.weebly

¿Qué es PROXMOX?

PROXMOX VE “Virtual Environment” es una potente plataforma de virtualización de nivel empresarial 100% libre y sin límites en su uso.

PROXMOX VE ofrece beneficios similares a los productos para virtualización como VMware vSphere, Windows Hyper-V, Citrix XenServer, entre otros.

​ Siendo PROXMOX libre sin costo, lo puede instalar en cualquier cantidad de “Servidores físicos”, sin límite en uso de Procesadores y Sockets, Puentes de comunicación, o integración de NAS o SAN ya sea a través de Fibra Canal, iSCSI Over Ethernet o NFS.

En esta documentación vamos a presentar la versión PROXMOX 4.4 (12 de Abril 2017)

"Proxmox VE" en su sitio oficial pone a su disposición una imagen ISO para generar el instalador en un CD o USB/Memory.   La instalación se efectúa en un equipo vacío y en 15 minutos tiene preparado un servidor (Nodo) para colocar máquinas virtuales o integrarlo a un "Cluster".
Este tipo de instalación se conoce como "Bare-metal" lo cual significa que la instalación agrega todo lo necesario al equipo y lo configura para su disponibilidad en un ambiente productivo.


​¿Porque PROXMOX es libre y sin costo?

En resumen esta solución trabaja con “Debian OS + KVM virtualization + Container-based Virtualization”, toda la base es Libre y esto hace posible que el producto final sea libre.  El modelo de negocio de PROXMOX se basa en capacitación, certificaciones y soporte.

Principales características de PROXMOX

  • Administrador Web HTML5.   PROXMOX proporciona un interfaz Web para configurar los servidores físicos, cluster, máquinas virtuales, políticas de backups, restauración de backups, snapshots.  No es necesario instalar aplicaciones clientes en su máquina para administrar y siendo HTML5 le permite conectarse y gestionar el entorno virtualizado desde su Smartphone Android, Iphone, tablet's, entre otros.
  • Virtualización para la mayoría de Sistemas Operativos, en sus versiones 32/64bits:  Linux en todas sus versiones, Microsoft Windows 10 / 2016 / 2012 / 7 / 8/ 2003 / xp, Solaris, AIX, entre otros.
  • KVM (Máquina virtual basada en el núcleo) es una solución para implementar virtualización sobre Linux.  Puede funcionar en hardware x86/x86_64 y es necesario que el microprocesador tenga soporte de virtualización Intel "VT" y en AMD "SVM".​
  • Container-based Virtualization (LXC), es una alternativa para ejecutar máquina "Linux" en espacios separados.  A diferencia de la virtualización este funciona como un módulo agregado al servidor físico y hace uso directo del hardware (también conocido como Paravirtualización).
  • Backup & Restore de "Máquinas Virtuales".  En Proxmox el efectuar estas tareas es muy sencillo y se administra a través de su interfaz Web.  Puede efectuar un backup de forma inmediata o dejarlo programado.  La restauración es simple, solo debe de seleccionar el backup a restaurar y listo.
  • Snapshot Live.  le permite hacer copias instantáneas de "Máquinas Virtuales" incluyendo el contenido de la RAM, su configuración y el estado de los discos virtuales.  Usted puede retroceder en tiempo la "Maquina Virtual" restaurando spanshot's.
Picture
  • "Migración en caliente".  En la gráfica izquierda se muestra un pequeño cluster formado por 3 nodos y poblado con “Máquinas virtuales”.  Con fondo rojo se muestra un nodo con sobrecarga.  La administración de los nodos es centralizada a través de un interfaz Web, permitiéndole movilizar “Máquinas virtuales” entre cada “Servidor Físico (NODO)” sin tener que apagar la “Máquina Virtual”.​
  • "Cluster Alta disponibilidad".  Esta característica le permite definir reglas de “Alta disponibilidad” en el cluster, por ejemplo:  Si uno de los “Servidores Físicos (NODO)” esta sobrecargado, este transfiere automáticamente a otro “Servidor Físico (NODO)” con menos carga la “Máquina Virtual”.  Este ejemplo es una regla de "balanceo de carga entre nodos".
  • Administración centralizada.  En un "Cluster Proxmox" se debe definir una de los Nodos como "Orquestador" con el objetivo de centralizar el trabajo, sin embargo cada nodo cuenta con su propio administrador Web.
  • Cluster no SPOF (Single Point Of Failure).  Cada nodo "Servidor físico Proxmox" cuenta con su propio interfaz Web permitiendo  acceso a la administración de las "Máquinas Virtuales".  Si el nodo "Orquestador" llega a fallar, cada nodo tiene replicado la información del "Orquestador" y desde cualquiera de los nodos puede tomar control del cluster.
  • Puentes de red.  Proxmox administra las tarjetas físicas a través de "Bridges" que comparte a las "Máquinas Virtuales".  Es muy sencillo asociar 1 o varias tarjetas a un "Bridge" haciendo un balanceo automático del tráfico de datos.
  • NAS & SAN.  Es muy fácil el uso de NAS o SAN ya sea a través de Fibra Canal, iSCSI Over Ethernet o NFS. Proxmox no le limita.
  • Autenticación.  Puede configurar la autenticación de acceso al área de "Administración a los Nodos" a través de cuentas propias con Proxmox o utilizando LDAP/Active Directory.
  • Firewall.   Proxmox VE Firewall proporciona una manera fácil de proteger su infraestructura en un entorno virtualizado. Puede definir reglas de firewall para todas las máquinas virtuales o definir reglas precisas a una máquina virtual.

¿Porqué utilizar Proxmox?

La mayoría de productos de Virtualización Empresarial tienen un alto costo y su modelo de licenciamiento lo basan en la cantidad de equipos instalados, Procesadores, Socket's, entre otros.  Con Proxmox usted es libre de usarlo y sin limites.  Actualmente PROXMOX se mantiene en constante mejora y a través de sus actualizaciones le permite hacer uso de lo nuevo en su programación sin tener que pagar por ello.  Es como levantarse en un día de navidad y encontrar regalos!.

¿Cómo funciona Proxmox?

Proxmox, le permite instalar en múltiples equipos y los únicos requisitos que le pide es tener un "Procesador que cuente con VT o SVM" y que la máquina esté vacía.  El implanta Debian como sistema operativo y configura KVM para trabajar con el recurso físico.
Cada máquina con Proxmox se convierte en un NODO y puede trabajar de forma independiente o puede estar agrupado en un Cluster.  El beneficio de definir un Cluster es tener la administración centralizada, poder mover máquinas entre cada nodo, activar "Alta Disponibilidad" y aprovechar todo el recurso de los equipos físicos para la virtualización.
Para hacer uso de "Alta Disponibilidad" y "Mover Máquinas Virtuales sin apagarlas" es necesario definir un "dispositivo de almacenamiento de tipo NAS o SAN" por ejemplo OpenMediaVault o FreeNAS.  También puede utilizar ECM, NetAPP, DELL Equallogic, entre otros.

​​Container-based Virtualization (LXC)

"​​Container-based Virtualization (LXC)" pone a su disposición un grupo de servidores "Linux" preconfigurados y listos para funcionar.  En el caso de LXC hace uso de "Paravirtualización", funcionando como un módulo agregado al servidor físico, haciendo uso directo del hardware.  Más información puede encontrarlo en este link...

¿Que nos permite el Administración Web PROXMOX?

  • Agregar "Máquinas Virtuales" y gestionarlas.  Por ejemplo, puede apagar, reiniciar, agregar hardware virtual, entre otros.
  • Mover máquinas entre cada nodo o activar "Alta Disponibilidad".
  • Conectarse directamente al interfaz gráfico o consola de la "Máquina Virtual" a través de una conexión segura VNC "HTML5 WebSockets and Canvas  --  NoVNC".
  • Programar Backups, restaurar backups o generar Snapshot.
  • Ver de forma gráfica la información de las "Máquinas Virtuales" como el tráfico de red, consumo de procesador, consumo de memoria, entre otros.
  • Subir medias en formato ISO para instalar sistemas operativos en las "Máquinas Virtuales".
  • Cambiar la configuración de los nodos.
  • Definir reglas en "Proxmox Firewall VE" para todas las "Máquinas Virtuales" o para una es especial.
  • El Administrador Web PROXMOX es HTML5 por lo cual le será posible conectarse y trabajar desde su Smartphone Android, Iphone, tablet's entre otros.

PROXMOX más allá de la virtualización (Alta disponibilidad)

Picture
Veamos el siguiente ejemplo que muestra un típico entorno virtualizado de tipo empresarial.
  • En la gráfica superior se muestra un pequeño cluster formado con 2 máquinas.  En la parte superior de la gráfica hay un switch que está dedicado a los usuarios de la red para acceder a las “Máquinas Virtuales” y los servicios que presten.  En la parte de abajo, un segundo switch esta asignado a los recursos de "Almacenamiento en red" donde se alojan los "Discos Virtuales" de las “Máquinas Virtuales”.
  • La gráfica anterior describe un escenario "SAN - iSCSI" que es una solución para medianas y grandes infraestructuras. 
  • Básicamente iSCSI es un método de conexión dedicado a “Dispositivos de Almacenamiento” a través de una red TCP/IP asignado exclusivamente para este fin.  Las “Máquinas Virtuales” almacenan sus “Discos Virtuales” en el “Dispositivo de almacenamiento de red” a través de iSCSI, de esta forma la carga de lectura/escritura de las “Máquinas Virtuales” no usan la red normal de uso de nuestro usuarios.

Ernesto Crespo: Árbol de decisión hecho en Python

$
0
0
Tenía algo de tiempo sin escribir (la situación en Venezuela no está facil).

Voy a ir retomando poco a poco los artículos en el blog,  tengo algunas cosas sobre Inteligencia Artificial (Redes Neuronales, Lógica Difusa, machine learning y deep learning), patrones de diseño con Python.

Este artículo trata de un modeo de predicción llamado árbol de decisión, según wikipedia es: Es un modelo de predicción utilizado en diversos ámbitos que van desde la inteligencia artificial hasta la economía. Dado un conjunto de datos se fabrican diagramas de construcciones lógicas, muy similares a los sistemas de predicción basados en reglas, que sirven para representar y categorizar una serie de condiciones que ocurren de forma sucesiva, para la resolución de un problema.

En youtube hay un canal dedicado a la ciencia de datos principalmente con Python, el youtuber es Siraj Raval . En el siguiente vídeo explica como hacer un clasificador de género hecho con un Árbol de decisión, el vídeo lo pueden ver en el siguiente enlace.


El código fuente del ejercicio del vídeo se puede ver en github.

La idea es tener los datos de altura, peso y talla de zapato y si es hombre o mujer, se construye el árbol de decisión, se pasa los datos y de ahí al pasar otro dato se genera una salida de si es hombre o mujer.

A continuación el código:



#!/usr/bin/env python

"""

https://www.youtube.com/watch?v=T5pRlIbr6gg

https://github.com/llSourcell/gender_classification_challenge/blob/master/demo.py



"""

#Se importa la librería sklearn el módulo tre

from sklearn import tree



#Se crea la instancia del árbol de decisión.

clf = tree.DecisionTreeClassifier()



#[altura, peso, talla de zapato]

X = [[181, 80, 44], [177, 70, 43], [160, 60, 38], [154, 54, 37], [166, 65, 40],

     [190, 90, 47], [175, 64, 39],

     [177, 70, 40], [159, 55, 37], [171, 75, 42], [181, 85, 43]]



#La salida donde se dice si es hombre o mujer

Y = ['hombre', 'hombre', 'mujer', 'mujer', 'hombre', 'hombre', 'mujer', 'mujer',

     'mujer', 'hombre', 'hombre']



#Se le pasa los datos  X y Y

clf = clf.fit(X, Y)



#Se definen los datos 1 y 2

dato1 = [190, 70, 43]

dato2 = [185, 62, 37]

prediction = clf.predict([dato1])

#Se muestra el resultado de la predicción de dato1

print(prediction)



prediction = clf.predict([dato2])


#Se muestra el resultado de la predicción de dato 2
print(prediction)


Al ejecutar el script se tiene:

python3 arboldecision.py 
['hombre']
['mujer']

Significa que, para una altura de 1.90 mts, peso 70 kilograms, y talla de 43, el resultado es que es un hombre, y para altura de 1.85 mts, peso 62 kilogramos y talla de 37, el resultado es que es una mujer.

Recomiendo ver el vídeo completo para tener una mejor explicación del funcionamiento del árbol de decisión. 


Miguel Useche: Configurar ProtonVPN en Archlinux

$
0
0

Por medio del Ing. Ronald Escalona, me entero del servicio ProtonVPN. El cual es un servicio de VPN (Virtual Private Network) para dirigir tu tráfico de Internet a través de su red. Agregando una capa de seguridad y privacidad a tu conexión de Internet, lo cual es útil en situaciones como: cifrado de la conexión en redes públicas como la de restaurantes donde no se puede confiar quién está en la misma red, conectarse a sitios prohibidos por el proveedor de Internet (saltar bloqueos), evitar que conozcan (exceptuando el dueño de la VPN) que sitios de Internet estas navegando, entre otros.

Obtener acceso en ProtoVPN

ProtonVPN a pesar de ser un servicio pago, puedes solicitar una cuenta gratuita y al cabo de unas semanas (dependiendo de su cupo) obtendrás un enlace para activar tu cuenta. Una vez activado, necesitamos entrar al sitio para configurar el acceso por OpenVPN, el software que utilizaremos para conectarnos desde GNU/Linux. Allí coloca el usuario y contraseña para la conexión (el cual es distinto a las credenciales para acceder al servicio) y guardas.

Luego necesitamos descargar el archivo de configuración, para ello debemos:

  1. Ir a la sección de Downloads en la barra lateral.
  2. Encuentra la configuración de OpenVPN, ve a la sección de archivos y selecciona Linux. El protocolo recomendado es UDP pero si tienes problemas selecciona TCP que será mas lento.
  3. Selecciona el servidor a conectarse (o todos) y coloca el archivo en un lugar seguro.

Instalar el software requerido en Archlinux

Ahora en Archlinux debemos instalar el paquete de openvpn y systemd-resolved para proteger nuestro DNS. Para instalar este software debes ejecutar:

pacaur -S openvpn openvpn-update-systemd-resolved --needed

Luego iniciar el servicio de systemd-resolved, en mi caso lo activé también para cada arranque del sistema:

systemctl enable systemd-resolved.service

systemctl start systemd-resolved.service

Configurar la conexión

Luego edita el archivo que descargaste desde ProtonVPN y cambia:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Por las siguientes líneas:

script-security 2
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
up /etc/openvpn/scripts/update-systemd-resolved
down /etc/openvpn/scripts/update-systemd-resolved
down-pre

Finalmente ejecutar con privilegios de administrador el siguiente comando:

openvpn archivo_descargado_de_protonvpn.opvn

¡Listo! Veras como se inicia la conexión y ahora estarás navegando por medio de ProtonVPN.

Nota: algunos comandos fueron tomados de la RawSec, la fuente de inspiración para este artículo.

La entrada Configurar ProtonVPN en Archlinux aparece primero en El blog de Skatox.

Miguel Useche: La seguridad informática y en las redes sociales, vital para prevenir los hackeos en redes sociales y otras páginas online

$
0
0

Con un alto nivel de conocimientos en la materia, sumado a la vulnerabilidad que presentan algunas plataformas, webs y medios del mundo online, no es complicado que alguien pueda conseguir tus contraseñas o introducirse directamente en tu computadora, por ello deberás potenciar la seguridad del mismo y tener cuidado por el tipo de sitios que navegas si no quieres verte envuelto en cualquier tipo de situación de vulnerabilidad parecida. Sobre todo, deberás de atender tus perfiles sociales, ya que suelen ser aquellos que mayor sufren de este tipo de intrusiones, ya sea para la toma de datos de todo tipo, o la suplantación de personalidad, espiar conversaciones privadas, etc.

Facebook, la red social más hackeada

De entre todas, los usuarios registrados en la plataforma del gigante azul son los que mayor número de veces han sufrido este tipo de inconvenientes. En parte, porque a su vez es la red social con un mayor número de usuarios registrados (así como la más usada) pero también debido a la poca atención que los internautas ponen a la seguridad de sus cuentas, o sus contraseñas. Y es que de nada sirve que la propia plataforma implemente ayudas y mejoras mediante las cuales potenciar el nivel de seguridad de todas y cada una de las cuentas en Facebook, si los usuarios no solo no hacen uso de ellas, sino que ni siquiera implementan las medidas de seguridad que tienen en sus propias manos para evitar el robo de cuentas. Por lo tanto, no se trata de lo fácil que sea o no hackear Facebook, sino más bien de los impedimentos que nosotros podamos poner a los hackers y evitar así el phising de cuentas.

Por ello, comenzaremos por ofrecer algunas pautas de seguridad a nivel usuario para que apliques a tus contraseñas en esta y cualquier otra red social, plataforma, medio u programa y que puedas así evitar la intromisión de los hackers.

Potenciar el nivel de seguridad de tu cuenta en Facebook

Con estos consejos para tener una contraseña segura, podrás evitar ser víctima del phishing (robo de cuentas) en la plataforma, y así poder chatear, compartir imágenes en tu muro, etc. De forma totalmente segura.

  1. Evita las cadenas de letras o números consecutivos, así como poner una misma contraseña para todo, ya que si consiguen sacar de alguna forma la contraseña de cualquier sitio, podrán tener acceso inmediato a todas tus cuentas, programa, etc. Ya que serán las mismas claves de acceso para Facebook y otras redes sociales.
  2. Añade caracteres especiales y mézclalos con números y letras de forma anómala para potenciar al máximo una clave de seguridad, ya que los programas de phishing son cada vez más avanzados y un password únicamente con números y letras no otorga suficiente seguridad, aunque ésta sea muy larga, o los mezcles también de manera irregular y sin seguir ningún tipo de patrón.
  3. No olvides mejorar también el nivel de tu respuesta a la pregunta secreta, ya que mediante la adivinación de la misma pueden tener acceso también a tu contraseña, y la posibilidad de cambiarla.
  4. También, y para ser más concreto, en la plataforma de Facebook es posible añadir tu número de teléfono para que con cada login en la cuenta te manden un mensaje con un código de confirmación que te informará cada vez que alguien intente entrar a la cuenta, pudiendo saber así si eres tú o no, y solamente pudiendo acceder con dicho código, un sistema a dos claves muy efectivo y seguro.

¿Cómo hacen para hackear cuentas de Facebook?

Ahora que ya sabes cómo aumentar por ti mismo la seguridad en la red social, te enseñaremos cómo funcionan habitualmente este tipo de herramientas para hackear Facebook de forma que puedas evitar siempre ser víctima de ellas, o caer en cualquier trampa vía online.

La mayoría de personas que tienen acceso a este tipo de software para hackear Facebook son también personas que, a su vez, tan solo tienen los conocimientos básicos de hacking como para manejar dicho programa, y poco más. Es realmente el software el que realiza prácticamente todo el proceso de hackeo, y por ello los consejos anteriormente citados para aumentar la seguridad en tu cuenta de Facebook.

Actualmente es muy sencillo acceder a este tipo de programas para robar y espiar cuentas de Facebook, ya que muchos ni siquiera requieren de descarga, permitiendo su ejecución online y mostrando las claves de seguridad de varias cuentas en tan solo unos minutos. Sin embargo, son herramientas que solamente serán efectivas para usuarios con contraseñas de seguridad muy bajas. Por lo que si realmente quieres aprender a como hackear una cuenta de facebook deberás de codearte con los mejores pentesters y aprender conocimientos avanzados en informática (lo cual no es sencillo, ni mucho menos) y convertirte así en un hacker de primera capaz de buscar debilidades en cualquier tipo de sistema, inclusive una red social tan grande como es Facebook.

El problema viene dado cuando este tipo de personas buscan el dinero fácil, y ofrecen sus servicios avanzados en informática al público abiertamente, permitiendo que le envíen dinero a cambio de hackear cuentas de Facebook concretas, o enseñarles a hacerlo, etc. Y así disponer de las contraseñas cada vez que quieran, pudiendo acceder a la cuenta solventando así cualquier tipo de seguridad y por tanto sin levantar sospechas para el usuario, pudiendo incluso llegar a espiar Facebook en tiempo real mientras este interactúa.

También es muy común el uso de “keyloggers” a la hora de como hackear Facebook, pues infectar una computadora puede ser incluso más sencillo que sacar la contraseña de una red social en cuestión, y ya desde ahí acceder a cualquier lugar en línea. Las facilidades se aumentan aún más sobre todo si tienes algún tipo de acceso a dicho PC (una computadora pública, un locutorio, etc.) O mantienes contacto directo con la persona en cuestión (tu pareja, familiares, etc.)

La entrada La seguridad informática y en las redes sociales, vital para prevenir los hackeos en redes sociales y otras páginas online aparece primero en El blog de Skatox.

Miguel Useche: SQL para migrar la configuración del tema en WordPress

$
0
0

Desde hace unas versiones WordPress ofrece Customizer, una herramienta para pre-visualizar y configurar un tema en tiempo real. Si se te ha perdido la configuración, esta entrada te explicará como migrar la configuración del tema desde la base de datos. ¿Por qué hacerlo por base de datos y no por un plugin? Pues existen escenarios donde no puedes recrear la configuración manualmente:

  • Vas a lanzar un nuevo tema hijo a producción. No puedes perder tiempo en mostrar un sitio mal configurado a las personas.
  • El tema posee una configuración muy compleja o  grande. Tomando mucho tiempo en recrear la visualización del sitio.
  • El tema esta codificado en otro idioma (escenario que me inspiró esta entrada) y no entiendes la configuración seleccionada.

¿Por qué se pierde la configuración del tema?

Esta configuración se guarda en la base de datos asociada al tema, ocasionando que si cambias a una plantilla hija o una copia de la misma, todas las personalizaciones se pierden. Inclusive, algunos desarrolladores comenten el error de colocar la versión a la carpeta del tema y al cambiar la versión, se pierden los datos de personalización.

SQL para  migrar la configuración del tema en WordPress

La configuración del tema se guarda en la tabla wp_options bajo el nombre de theme_mods_NOMBRE_CARPETA_DEL_TEMA. Por ejemplo, si tienes activado el tema twentynineteen, los ajustes del tema estarán bajo el nombre theme_mods_twentynineteen.

Para migrar la configuración, del tema cuyo nombre de carpeta en /wp-content/themes/ se llame original a un nuevo tema (hijo o con otro nombre) llamado nuevo solo debes ejecutar esta sentencia:

INSERT`wp_options`(option_name, option_value)VALUES('theme_mods_nuevo',

(SELECT`option_value`FROM`wp_options`WHERE`option_name`='template_mods_original')

);

¡Listo! Ya con estos pasos deberías tener la misma configuración del tema padre (u otro tema si es compatible) con la plantilla cuyo nombre es nuevo (recuerda cambiarlo por el nombre de tu tema). De esta forma ahorras tiempo en recrear toda la configuración automáticamente y luego activar el tema. No perderás tiempo configurando cosas o renombrando carpetas.

Espero que les sirva este comando SQL y recuerda comentar si conoces un mejor método o como optimizar este. ¡Feliz desarrollo!

La entrada SQL para migrar la configuración del tema en WordPress aparece primero en El blog de Skatox.

Miguel Useche: ¿Qué es el desarrollo web?

$
0
0

Desde hace unos años escuchamos bastante el término de desarrollo web y probablemente se pregunten o han escuchado: ¿Qué es eso? ¿No es lo mismo que programación? Simplificando, desarrollo web consiste en crear soluciones tecnológicas que se ejecutarán dentro de un navegador (como Firefox/Chrome/Edge o Safari). Por este motivo es diferente a otro tipo de programación porque un navegador funciona de una forma particular y la información debe viajar a través de una Intranet o Internet. En otras palabras, crear todos esos programas y sitios web que vemos dentro de un navegador.

El uso del término desarrollo implica tareas mas allá de la programación: análisis de requisitos, conceptos de usabilidad, seguridad de la información, ingeniería de software, programación del lado del servidor y cliente, entre otros. Cuando alguien te diga que es desarrollador, implica que no solo codifica programas sino va mas allá y realiza mas tareas.

¿Que sé debe conocer para el desarrollo web?

Primero debes conocer los conceptos básicos de programación web:

  • HTML: es el lenguaje de marcado que permite estructurar el contenido que ves en un navegador. Es el esqueleto de la parte visual de la aplicación. En mi opinión aprender HTML es el primer paso para aprender desarrollo web, pues solo necesitas un editor de texto y un navegador para empezar a crear tus primeras páginas.
  • CSS: permite definir como va a lucir el HTML dependiendo del dispositivo. Indica al navegador los colores, tipos de letra, posición y tamaño al contenido del HTML. Su curva de aprendizaje es mediana pero dominar la tecnología requiere mucha experiencia.
  • JavaScript: es el lenguaje de programación que permite definir eventos, realizar tareas, acciones. Se ejecuta tanto en el lado del cliente (a través del navegador) como del servidor (para realizar cálculos, obtención de datos, entre otros). Si solo quieres hacer páginas web sencillas, no es necesario que aprendas esto por los momentos. Sin embargo, tarde o temprano te toparas con JavaScript a medida que vayas haciendo sitios mas complejos. Pues necesitaras agregar interacciones y automatizar acciones.
  • Lenguaje de programación del lado del servidor: las tecnologías anteriores permiten realizar páginas web que se muestran en el navegador. Pero cuando necesitamos interactuar con el servidor: iniciar sesión, subir archivos, descargar información. Necesitamos programar las acciones que debe realizar el servidor donde está alojada la página para saber que debe responder. Esto se hace mediante lenguajes de programación del lado del servidor. Entre los mas comunes suele ser PHP, JavaScript, Ruby, Java, Python, entre otros.

¿Qué aprender luego?

El siguiente paso es hacerte experto en estas 4 tecnologías, e ir en todo el ecosistema alrededor de ellas. Por ejemplo, todo sitio web se aloja en un servidor, entonces debes aprender como se configurar y optimizar uno. La información se almacena en base datos por lo que aprender a diseñarlas y consultar información  a través de ella te ayudará a ser mejor profesional. Conocer como obtener buenos resultados en los buscadores, visualizar correctamente el contenido en cualquier dispositivo. Aplicar técnicas de usabilidad en las interfaces para mejorar la interacción con los visitantes.

Pero no todo es tecnología, pues existen cosas importantes para desarrollador web: redactar correos para conversar correctamente con clientes. Aprender cuánto cuesta una web para saber cuanto cobrar por el trabajo. Elaboración de manuales, entre otros.

¡Parecen muchas cosas!

Aunque parece mucha cantidad de información, poco a poco iras aprendiendo. Ser desarrollador web requiere muchos conocimientos y años de experiencia. Pero con paciencia y práctica lograrás convertirte en uno.  A mi me parece una excelente rama de la informática, cada año va en auge y se puede trabajar desde cualquier parte del mundo.

Espero que les haya gustado esta introducción, recuerden comentar cualquier aporte, sugerencia u opinión sobre el desarrollo web.

Happy coding!

La entrada ¿Qué es el desarrollo web? aparece primero en El blog de Skatox.

Kenner Roa: Jóvenes integrarán granjas de minería de la criptomoneda Petro

$
0
0
Está Escrito:
(Jesucristo) El respondió y dijo: Escrito está: No sólo de pan vivirá el hombre, sino de toda palabra que sale de la boca de Dios.(Mateo 4:4)
Tomado de : Aporrea
El presidente de la República Bolivariana de Venezuela, Nicolás Maduro, informó el pasado 27 de diciembre que a través del Plan Chamba Juvenil, jóvenes conocedores de criptomoneda serán incorporados a desarrollar granjas de minería de esta herramienta en el país.

"Vamos a llamarlos a ellos, a un equipo especial de criptomoneda, para montar granjas de minería de criptomoneda en todos los estados y municipios del país", expresó el jefe de Estado tras recibir un balance de este plan juvenil que han registrado a un total 860.811 jóvenes, de los que ya se encuentran en tareas productivas 300.000.

Inscríbete aquí: https://registro.blockchain.gob.ve/web/

La granjas de minería de una criptomoneda, están constituidas por computadores interconectados, a través de software especializados que se encargan del funcionamiento de este instrumento. Estos espacios son manejados por especialistas en la materia con el fin de contribuir con la garantizar y la confiabilidad del sistema.

El Petro fue creado el pasado mes de diciembre por el mandatario nacional, con el objetivo de avanzar a nuevas formas de financiamiento internacional y de romper el cerco financiero impuesto por el Gobierno de los Estados Unidos, que arreció el pasado año contra Venezuela.

Con esta herramienta, Venezuela implantó la primera criptomoneda en el mundo respaldada por las reservas de petróleo, gas, oro, diamantes y demás minerales naturales de un país. El 27 de diciembre, Maduro firmó el decreto que declara como sustento material de la criptomoneda Petro al campo número 1 del Bloque Ayacucho de la Faja Petrolífera del Orinoco.

Ernesto Crespo: Graficar líneas de campo eléctrico con matplotlib y Python

$
0
0
Este artículo se basa en un artículo en inglés del blog scipython, con nombre Visualizing a vector field with matplotlib.

Matplotlib provee una función llamada streamplot, para crear flujos que puede usarse para representar vectores de campo.  El código python muestra la representación de un campo eléctrico a partir de multiples cargas. Las multiples cargas son seleccionadas como potencia de 2 (1 dipolo, 2 cuadrupolo, etc).

Se tiene una variable count la cual define la cantidad de cargas, en el primer caso vale 1 (dipolo).

A continuación el código:



#!/usr/bin/env python3

# coding: utf-8



# # Se importan los módulos necesarios para la graficación

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.patches import Circle



# # Función que retorna el campo Eléctrico.

def E(q, r0, x, y):

    """Retorna el vector de campo eléctrico E=(Ex,Ey) de una carga q en r0"""

    den = np.hypot(x-r0[0], y-r0[1])**3

    return q * (x - r0[0]) / den, q * (y - r0[1]) / den



# # puntos de los ejes x e y.

nx, ny = 64, 64

x = np.linspace(-2, 2, nx)

y = np.linspace(-2, 2, ny)

X, Y = np.meshgrid(x, y)



# # Crear un multipolo con nq cargas

# count = número de q. En ese caso es 1 dipolo

count = 1

nq = 2**int(count)

charges = []

for i in range(nq):

    q = i%2 * 2 - 1

    charges.append((q, (np.cos(2*np.pi*i/nq), np.sin(2*np.pi*i/nq))))



# # Vector de campo eléctrico como componentes separados (Ex,Ey)

Ex, Ey = np.zeros((ny, nx)), np.zeros((ny, nx))

for charge in charges:

    ex, ey = E(*charge, x=X, y=Y)

    Ex += ex

    Ey += ey



fig = plt.figure()

ax = fig.add_subplot(111)





# # Dibujar las líneas de flujo con mapa de colores y estilos apropiados.

color = 2 * np.log(np.hypot(Ex, Ey))

ax.streamplot(x, y, Ex, Ey, color=color, linewidth=1, cmap=plt.cm.inferno,

              density=2, arrowstyle='->', arrowsize=1.5)





# # Agregar circulos para las cargas.

charge_colors = {True: '#aa0000', False: '#0000aa'}

for q, pos in charges:

    ax.add_artist(Circle(pos, 0.05, color=charge_colors[q>0]))





# # Graficar

ax.set_xlabel('$x$')

ax.set_ylabel('$y$')

ax.set_xlim(-2,2)

ax.set_ylim(-2,2)

ax.set_aspect('equal')

plt.show()





Al ejecutar el código se tiene la siguiente gráfica:

La siguiente gráfica es con count con valor a 4, osea 8 polos:

Y la última gráfica es con count con 10, osea 20 polos:


El código python  y el notebook de jupyter lo pueden obtener de un repositorio en github.

Ernesto Crespo: Introducción a Pandas

$
0
0
Pandas es una librería de python para analizar datos, permite multiples entrada de datos.

El artículo se basa en un artículo en inglés Building a neural network with python, y en un tutorial de pandas.

Para este tutorial se usará un conjunto de datos en formato csv  sobre vinos (análisis químico para saber el origen de los vinos).


A continuación de describe paso a paso la forma de manejar los datos a partir del archivo wine_data.csv.

El archivo Pandas.py y el Pandas.ipynb lo pueden descargar de github.

Se importa Pandas como pd:

>>> import pandas as pd

Se extrae los datos del archivo csv y se definen el nombres de las columnas:
>>> wine = pd.read_csv('wine_data.csv', names = ["Cultivator", "Alchol", "Malic_Acid", "Ash", "Alcalinity_of_Ash", "Magnesium", "Total_phenols", "Falvanoids", "Nonflavanoid_phenols", "Proanthocyanins", "Color_intensity", "Hue", "OD280", "Proline"])

Se muestran los primeros datos:
>>> wine.head()


Se muestra las dimensiones de la tabla:
>>> wine.shape
(178, 14)

Se tiene 178 filas y 14 columnas.

Se muestra las 2 primeras filas de la tabla:
wine.loc[[0,1]]


Se muestra las dos primeras filas y las columnas Cultivator y Alchol

>>> wine.loc[[0,1]][["Cultivator","Alchol"]]
 


Está introducción es necesaria ya que en futuros artículos se trabajará mucho con la librería pandas.

Ernesto Crespo: Introducción al Perceptron con Python

$
0
0
Este artículo se basa en un artículo en inglés The Perceptron.

Un perceptron es un clasificador y uno de los más simples de la Red Neuronal Artificial. Lo que se busca es tomar las características de una red neuronal biológica, y replicarla como un algoritmo.

En la siguiente figura se muestra una red neuronal de dos entradas, cada entrada tiene su peso, luego se suman y la función de activación genera una salida.


La ecuación mátemática sería algo como:
y = FuncionActivacion(x1*w1+x2*w2)

La función de activación para una onda cuadrada es:


Donde la función de activación puede ser una onda cuadrada (hay más funciones de activación).

Acá otro perceptron con 5 señales de entrada.



A continuación se muestra el código:

#!/usr/bin/env python3

# coding: utf-8



# # Importar librerías

from pylab import rand,plot,show,norm

# # Clase Perceptron

class Perceptron:

 def __init__(self):

  """ inicialización del perceptron  """

  self.w = rand(2)*2-1 # pesos

  self.tasaAprendizaje = 0.1 



 def respuesta(self,x):

  """ saldia del perceptron """

  y = x[0]*self.w[0]+x[1]*self.w[1] # producto punto entre w y x

  if y >= 0:

   return 1

  else:

   return -1



 def actualizarPesos(self,x,iterError):

  """

  Actualizar estatus de los pesos, w en un tiempo t+1 es w(t+1)= w(t) + learningRate*(d-r)*x

  donde d es la salida deseada y r la respuesta del perceptro, iteError es la diferencia entre

  d y r (d-r).

  """

  self.w[0] += self.tasaAprendizaje*iterError*x[0]

  self.w[1] += self.tasaAprendizaje*iterError*x[1]



 def entrenamiento(self,data):

  """ 

  Entra todo el vector en los datos, cada vector en los datos debe tener 3 elementos,

  el tercer elemento (x[2]) debe ser etiquetado (salida deseada)

  """

  learned = False

  iteration = 0

  while not learned:

   globalError = 0.0

   for x in data: # por cada muestra

    r = self.respuesta(x)    

    if x[2] != r: # si tenemos un respuesta equivocada

     iterError = x[2] - r # respuesta deseada-respuesta actual

     self.actualizarPesos(x,iterError)

     globalError += abs(iterError)

   iteration += 1

   if globalError == 0.0 or iteration >= 100: # detiene por el criterio

    print ('iterations {}'.format(iteration))

    learned = True # detiene el aprendizaje

    



def datosGenerados(n):

    """

    genera un conjunto de datos, de dos dimensiones,  linealmente separados con

    n muestras. El tercer elemento de la muestra es la etiqueta.

    """

    xb = (rand(n)*2-1)/2-0.5

    yb = (rand(n)*2-1)/2+0.5

    xr = (rand(n)*2-1)/2+0.5

    yr = (rand(n)*2-1)/2-0.5

    inputs = []

    for i in range(len(xb)):

        inputs.append([xb[i],yb[i],1])

        inputs.append([xr[i],yr[i],-1])

    return inputs



trainset = datosGenerados(30) # generación de datos para entrenar

perceptron = Perceptron()   # Instancia del perceptron

perceptron.entrenamiento(trainset)  # Entrenamiento con el conjunto de datos

testset = datosGenerados(20)  # conjunto de datos para el test.



# Prueba del perceptron

for x in testset:

 r = perceptron.respuesta(x)

 if r != x[2]: # Si la respuesta no es correcta

  print ('error')

 if r == 1:

  plot(x[0],x[1],'ob')  

 else:

  plot(x[0],x[1],'or')



# Se gráfica una línea de separación, la cual es ortogonal a w.

n = norm(perceptron.w)

ww = perceptron.w/n

ww1 = [ww[1],-ww[0]]

ww2 = [-ww[1],ww[0]]

plot([ww1[0], ww2[0]],[ww1[1], ww2[1]],'--k')

show()





# ## 





Al ejecutar el script se tiene la siguiente gráfica:

Los puntos azules pertenecen a la primera clase y los rojos pertenecen a la segunda. La línea punteada es la línea de separación que el perceptrón aprendió durante el entrenamiento.

En siguientes artículos se seguirá trabajando con el perceptron pero usando librerías como scikit-learn y  tensorflow.

El script en python y el notebook de jupyter lo pueden descargar de github.

Carlos Colmenarez: Darktable, la alternativa gratuita a Lightroom, ya está disponible en versión Windows

$
0
0

Darktable, la alternativa gratuita a Lightroom, ya está disponible en versión Windows

Darktable es uno de los programas de revelado RAW y edición fotográfica que quiere competir con el clásico Lightroom con la ventaja de ser totalmente gratuito. Pues bien, ahora se ha revelado la versión 2.4.0 que, por fin, se ofrece también en versión para equipos con sistema operativo Windows.

Hasta ahora el programa sólo estaba disponible para MacOS y Linux pero ahora llega para el SO de Microsoft (aunque con algunas limitaciones), con lo que abre su posible campo de acción en un ámbito bastante movido en los últimos tiempos, sobre todo después de que las últimas novedades de Lightroom hayan cambiado las reglas de juego pasando al pago por suscripción y la necesidad de usar la nube para trabajar con las fotos.

Darktable Windows

Por otro lado (y como era de esperar), la nueva versión de Darktable, que ya está disponible para su descarga desde este enlace, llega con novedades implementadas y errores corregidos. Entre ellas podemos destacar un nuevo módulo para la eliminación de la neblina, cambios en los módulos Deshacer y Balance de color, eliminación del límite de 51200 ISO para el tratamiento de las fotos y nuevos perfiles para tratar el ruido y, como suele ser habitual, soporte para un mayor número de archivos de nuevas cámaras.

Más información | Darktable

Visto en | Xatakafoto


Miguel Useche: Consejos para que tu paquete llegue a su destino sin problemas

$
0
0

Para que los envíos que realicemos lleguen a su destino sin problemas, hay que escoger el embalaje dependiendo de las necesidades, escoger una compañía de mensajería de confianza y escribir correctamente todos los datos.

Enviar un paquete a cualquier parte puede ser algo que, como nos resulta cotidiano, no le prestamos demasiada atención. Pero, si lo pensamos un momento, nos daremos cuenta de que es más importante de lo que pensamos. Por ejemplo, ¿cómo nos sentimos cuando estamos esperando algo y no llega? Es una gran desilusión. Pues si enviamos un paquete a alguien y nunca llega a su destino también nos sentiremos mal, tanto por la persona que no lo ha recibido como por nosotros, en especial si el paquete es un regalo.

Envoltorio de regalo

Enviar un paquete es algo que hay hacer con cuidado y, sobre todo, si el envío es internacional. Aunque enviar paquete a Alemania no sea una tarea difícil, pero seguir unas recomendaciones nos ayudará a que el paquete llegue a su destino sin problemas.

El embalaje ideal

Dependiendo del tipo de objeto que se mande, será necesario un embalaje u otro. Existen diferentes tipos para escoger el más adecuado.

Si el paquete es grande una caja de iguales dimensiones puede ser lo más adecuado. Siempre hay que tener cuidado de que no tenga ningún tipo de rotura para que no sufra algún percance durante el viaje.

Para objetos pequeños y con cierta fragilidad, los sobres que están acolchados en su interior son la mejor alternativa. Y si lo que se envían son documentos, para que esté asegurada su privacidad, los sobres rígidos hechos de cartón son la elección perfecta.

Cómo enviar el paquete

Para el envío del paquete se puede hacer mediante la oficina de correos y también por empresas de mensajería.

Las empresas de mensajería como ParcelABC te garantizan la seguridad del envío que realizas. Lo entregan directamente a la persona y hace envíos por todo el mundo. Existen comparadores de envíos de paquetes que te ofrecen la oportunidad de escoger entre varios para que puedas obtener la mejor oferta para tus envíos.

Es muy importante que puedas saber en todo momento por dónde se encuentra el envío. Hoy ya es normal poder realizar un seguimiento de los paquetes mediante localizadores gps. Con este servicio podrás saber si el paquete llega o no a su destino. Al contratar una empresa de mensajería, no está de más, asegurarse de que disponen de este servicio así estarás más tranquilo porque sabrás que pasa con el envío.

La importancia de que los datos sean correctos

En ocasiones ocurre que un paquete no llega a su destino. Casi siempre se le echa la culpa a la empresa que los lleva porque lo han extraviado o lo han roto. Pero no siempre la culpa de los demás. A veces, sin darnos cuenta, puede que nos falte colocar alguno de los datos que se necesitan para que el envío llegue en perfecto estado a su destinatario.

Es importante que todos los datos, tanto del destinatario como del remitente, estén claros, bien visibles y que sean los correctos. A veces olvidarnos de poner una letra o un número importante, puede significar, que el envío no llegue a su destino. Aunque parezca tonto escribir de manera legible es necesario. Si el trabajador de la empresa no entiende lo que pone, no sabrá donde tiene que llevar el paquete. Las letras “de médico” mejor dejarlas para otra ocasión. Escribir en mayúsculas siempre es la mejor manera de conseguir que todo el mundo entienda lo que está escrito.

Ya lo he enviado ¿y ahora qué?

Una vez envíado el paquete, solo hay que esperar a que llegue a su destino sin problemas. Ahora puedes relajarte descargando el juego geometry dash gratis, tanto en su versión normal como Lite que ya está disponible.

La entrada Consejos para que tu paquete llegue a su destino sin problemas aparece primero en El blog de Skatox.

Viewing all 714 articles
Browse latest View live