

Ayer participé en el framework challenge de Bogodev. Fue en la sede de Wayra Colombia que es genial.
El reto era hacer una visualización de objetos espaciales alrededor de otro (la "estrella de la muerte") y actualizar sus posiciones a partir de coordenadas X, Y y Z.
La solución que le dió mi equipo consistió en Angularjs y D3js para el frontend y un expressjs muy simple para el backend.
Para este tipo de visualización three.js da un mejor aspecto, genera 3D de verdad y no hay que forzar un fake 3d como nos tocó hacer con D3js, y eso fue lo que hicieron otros equipos. Pero: aprendimos D3js, SVG y cómo funciona D3js cuando da el órden de renderizado lo cuál fue muy instructivo (pista: cuando le pasas un array toma la posición como identificador para hacer el renderizado, tanto posición como transisiones).
Aquí está el código y cómo correrlo por si quieren probarlo: https://github.com/ghostbar/fchallenge-ngjs.
Continuando con la serie de artículos sobre el microframework de desarrollo web flask, ahora se mostrará como crear un sitio estático.
Este artículo se basa en un artículo en inglés llamado Introduction to Flask, Part 1 - Setting up a static site.
Se usará el mismo archivo utilizado en los artículos anteriores (app.py), en este caso simplemente se agregará el decorador y la función que se va a usar que será para llamar una página de bienvenida.
Aparte del archivo app.py se necesita crear dos directorios, uno llamado templates el cual contendrá la plantilla html y el otro se llamará static que contendrá archivos estáticos como archivos css y archivos javascript.
ernesto@heimdall:~/proyectos/tutorialflask$ ls -l
total 12
-rw-r--r-- 1 ernesto ernesto 792 jun 7 20:56 app.py
drwxr-xr-x 2 ernesto ernesto 4096 jun 7 21:09 static
drwxr-xr-x 2 ernesto ernesto 4096 jun 7 21:10 templates
El archivo app.py tendrá la siguiente información adicional:
#Se agrega el renderizado de la plantillaAhora en el directorio templates se crea el archivo bienvenido.html con el siguiente contenido:
from flask import Flask,request,redirect,render_template
#Se usa el decorador ruta para ver el url bienvenido.
@app.route('/bienvenido')
#Se crea la funcion welcome que renderiza una plantilla html.
def welcome():
return render_template('bienvenido.html') # renderiza la plantilla bienvenido.html.
Una de las cosas que me gusta hacer cuando instalo por primera vez un equipo, es poder tener atajos de teclado o combinaciones de teclas para abrir mis aplicaciones preferidas como por ejemplo el Terminal/Consola, el editor de texto Gedit, el editor de documentos, el Pidgin, entre otras.
Gracias a que estoy suscrito en la lista de “tiflo-linux“, preguntando que archivos debía modificar para crear un script que me permitiera agregar los atajos sin necesidad de hacer eso gráficamente, el compañero “Manuel Cortéz” me comentó que en la pagina “http://community.linuxmint.com/tutorial/view/1171″ explicaban como hacerlo, que me ayudo bastante para entender como se agrega los atajos por consola.
Haciendo algunas pruebas y ensayos, logre tener un script que me permite agregar atajos de teclado de mis aplicaciones favoritas y el cual puedes descargar sin problema: “script para agregar atajos en Gnome-shell“, para ejecutar debes:
1. Abrir un Terminal/Consola
2. Escribir:
$ python agregaratajos.py
Listo!!, ya tienes los atajos.
Gedit ctrl+alt+e
Terminal ctrl+alt+t
Writer ctrl+alt+w
Calc ctrl+alt+c
Pidgin ctrl+alt+p
Orca ctrl+alt+o
Carpeta personal ctrl+alt+h
Skype ctrl+alt+s
Gespeaker ctrl+alt+g
Navegador web ctrl+alt+n
Este script lo probé en Debian y Canaima4.0 pero debería funcionar también en Ubuntu y derivados, es de destacar que solo estoy identificando los navegadores “Iceweasel”, “Firefox” y “Cunaguaro”.
Si tienen alguna pregunta, duda o sugerencia sobre que falta en el script, me lo hacen saber en los comentarios.
Saludos a todos y ya sabes, si te ha gustado compártelo!!
Shellshock es el nombre de una falla de seguridad que tiene más de 20 años de antigüedad, pero que fue dada a conocer sólo en septiembre del año 2014.
Esta vulnerabilidad afecta a Bourne-Again Shell (Bash), un componente de software que interpreta órdenes en el sistema Unix, base de Linux y de Mac OS de Apple. El peligro de esta falla de seguridad radica en que cualquier hacker podría controlar a distancia cualquier computador o sistema que utilice Bash, como los servidores que funcionan con Linux o los dispositivos con sistemas operativos de Apple.
Para saber si nuestro equipo es vulnerable solo debemos abrir un terminal y pegar el siguiente código:
env x='() { :;}; echo vulnerable' bash -c "echo a shellshock"
Si el resultado es “vulnerable a shellshock” significa que debe actualizar su sistema para protegerse de este error, la mayoría de las distribuciones de linux ya han publicado versiones seguras de este paquete. Si por el contrario el resultado es “a shellshock” significa que su sistema esta esta seguro.
Referencias:
No lo que entra en la boca contamina al hombre; mas lo que sale de la boca, esto contamina al hombre. (Mateo 15:11)
POODLE (Padding Oracle On Downgraded Legacy Encryption) Es un fallo de seguridad que puede ser usado para interceptar datos que deberían estar cifrados entre el cliente y el servidor. Lo que hace este exploit es convencer al cliente de que el servidor no soporta el protocolo TLS y lo fuerza a conectarse por SSL 3.0.
En esta situación un atacante que use un ataque man in the middle puede descifrar cookies HTTP seguras y conseguir información.
Mientras esperamos la salida de la versión 34 de Firefox / Iceweasel (planificada para el 25 de Noviembre) que desactivará por defecto SSLv3, podemos utilizar este sencillo método para proteger nuestra versión actual del navegador y así evitar malos ratos al navegar por la red.
Para ello solo basta con instalar el complemento SSL Version Control desarrollado por Mozilla, este complemento también funciona con otros productos de Mozilla como por ejemplo: Firefox para Android, Thunderbird y Seamonkey.
También es recomendable activar las actualizaciones automáticas en Preferencias > Avanzado > Actualizar. De esta manera nos aseguramos de tener siempre la ultima versión del navegador que incluye mejoras y corrección de errores.
Referencias:
BOINC (Berkeley Open Infrastructure for Network Computing) es una infraestructura para la computación distribuida, desarrollada originalmente para el proyecto SETI@home, pero que actualmente se utiliza para diversos campos como física, medicina nuclear, climatología, etc. La intención de este proyecto es obtener una capacidad de computación enorme utilizando computadores personales alrededor del mundo. Los proyectos en los que trabaja este software tienen un denominador común, y es que requieren una gran capacidad de cálculo.
La plataforma puede correr bajo varios sistemas operativos, incluyendo Microsoft Windows y varios sistemas Unix-like incluyendo Mac OS X, Linux y FreeBSD. BOINC es software libre y disponible bajo la licencia GNU LGPL.
Para instalarlo en nuestro sistema solo hay que seguir estos simples pasos:
apt -y install libxss1
Si al agregar un proyecto no podemos ver ninguno en la lista necesitaremos cerrar el programa y hacer una pequeña modificación:
<cc_config> <options> <http_1_0>1</http_1_0> </options></cc_config>
Referencias:
Recientemente adquirí una humilde AMD Radeon R9 270, y quise instalar los drivers propietarios (fglrx) para poder jugar UrT como dios manda.
Añadir los repositorios backports para Debian Wheezy, en el archivo /etc/apt/sources.lst
# Backports Debian Wheezy
deb http://http.debian.net/debian/ wheezy-backports main contrib non-free
Actualizar la lista de paquetes
$ aptitude update && aptitude update
Instalar el driver fglrx
$ aptitude -r -t wheezy-backports install fglrx-driver fglrx-control
Esto creará el archivo xorg.conf usando el módulo fglrx
$ aticonfig –initial
Agregar el driver libre “radeon” a la lista negra, modificar el archivo: /etc/modprobe.d/radeon-kms.conf; si tienes el archivo, de no tenerlo lo creas y agregas:
blacklist radeon
options radeon modeset=1
Reiniciar el equipo y listo!
Para probar si efectivamente el driver esta funcionando, utilizar las siguientes utilidades:
$ fglrxinfo
La salida debe ser algo como esto:
display: :0.0 screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon R9 200 Series
OpenGL version string: 4.3.12618 Compatibility Profile Context 8.982.13
$ glxinfo | grep render
La salida debe ser: direct rendering: Yes
$ glxgears
La salida debe ser una ventana con 3 engranajes (colores azul, rojo, verde) y un average FPS cada 5 segundos
$ fgl_glxgears
La salida debe ser una ventana con un cubo, en cada cara hay 3 engranajes (colores azul, rojo, verde; como en la salida anterior) y un average FPS cada 5 segundos
Los drivers disponibles en wheezy-backports son los AMD Catalyst 13.12, que tienen un buen rendimiento en linux incluso mejor que la serie 14.xx, sobre todo si se desea probar la minería Litecoin.
Saludos !
Editores de texto basados en terminal más usados en Linux
Los editores de texto son una parte fundamental para el manejo de nuestro sistema. Ciertamente hay un montón de aplicaciones que permiten hacerlo desde la terminal, pero estas tres son las más populares.
A pesar de que para muchos es más simple editar sus textos desde utilidades gráficas como Gedit, la capacidad de poder hacerlo desde la terminal es imbatible, sobre todo en esos casos donde tenemos problemas con la interfaz gráfica o cuando estamos trabajando sobre un servidor remoto.
Existen muchas alternativas para este fin, pero son principalmente las tres que mencionaremos a continuación las más populares.
Nano es un editor de texto basado en Curses, una biblioteca para el control de terminales sobre sistemas Unix. Es muy similar a Pico, un editor minimalista basado en terminal. A diferencia de Pico, Nano permite el resaltado de sintaxis y en términos generales es muy sencillo de usar.
Para editar un archivo con nano, solo debemos invocarlo en la terminal junto con el texto que deseamos editar. Cuando editamos un archivo con nano se despliega su interfaz junto con el contenido del archivo. Las opciones de edición incluyen moverte entre paginas si el texto es muy largo, buscar, copiar, cortar y guardar los cambios, entre otras. Para seleccionar una de estas opciones debemos presionar la tecla ctrl más la letra de la opción deseada.
Vim es un editor de texto muy completo. Es una versión mejorada de Vi, un editor de la década de los 70’s que se encuentra en casi todo sistema de tipo Unix. Vim incluso es utilizado por programadores y administradores de sistema, su gran variedad de opciones lo hace perfecto para este fin. Es avanzado y versátil, incluso permite la configuración o instalación de temas personalizados que resaltan la sintaxis de una manera específica.
Vim te permite hacer tantas cosas que sería casi imposible poder asignarle un atajo de teclado único a cada una de ellas. Es por esto que Vim presenta varios modos de operación, para que puedas realizar varias operaciones con el mismo atajo. Entre los modos de operación mas útiles están:
También dispone de modos de Selección y Ex. Sin embargo, Vim no es tan fácil de aprender, pero una vez que lo dominas el esfuerzo se paga solo. Vim también tiene plugins para búsqueda difusa de archivos, explorar directorios y mejorar la interfaz de usuario, entre otros. Con un poco de conocimiento en Python o en el lenguaje de scripting de Vim, puedes programar tus propios plugins.
Emacs es un complejo editor de texto siendo GNU Emacs del Proyecto GNU, su implementación mas popular. Al igual que Vim, es muy usado por usuarios avanzados y programadores. Dispone de una gran variedad de características y funciones. Entre otras opciones, permite personalizar el resaltado de sintaxis, usando distintos tipos de letra o colores para mostrar las palabras reservadas, por ejemplo.
Gran parte del poder de Emacs viene de Emacs Lisp, una poderosa extensión de lenguaje que permite manejar múltiples tareas. Emacs tiene varios modos de edición llamados major modes. Hay major modes para edición de archivos de texto ordinario, código fuente para diversos lenguajes de programación, documentos HTML, y LaTeX, entre otros. Estos a su vez permiten la activación de varios minor modes, que contienen características relacionadas a un major mode, haciéndolo aun mas robusto. Los major modes disponen también de comandos especiales de edición para un tipo concreto de texto.
Emacs permite a sus usuarios extender o personalizar aún más sus funcionalidades, pudiendo estos escribir código en Emacs Lisp. Su curva de aprendizaje es elevada, pero una vez dominado se pueden lograr grandes cosas.
Los usuarios de Emacs y Vim suelen ser muy apasionados acerca de cual es el mejor editor pero la idea no es armar una guerra campal, sino que cuentes con excelentes opciones a la hora de editar tus documentos y decidas cual se adapta más a tus necesidades. ¿Usas otra aplicación? Cuéntanos cuál es tu favorita y por qué.
via: bitelia
Ayer participé en el framework challenge de Bogodev. Fue en la sede de Wayra Colombia que es genial.
El reto era hacer una visualización de objetos espaciales alrededor de otro (la "estrella de la muerte") y actualizar sus posiciones a partir de coordenadas X, Y y Z.
La solución que le dió mi equipo consistió en Angularjs y D3js para el frontend y un expressjs muy simple para el backend.
Para este tipo de visualización three.js da un mejor aspecto, genera 3D de verdad y no hay que forzar un fake 3d como nos tocó hacer con D3js, y eso fue lo que hicieron otros equipos. Pero: aprendimos D3js, SVG y cómo funciona D3js cuando da el órden de renderizado lo cuál fue muy instructivo (pista: cuando le pasas un array toma la posición como identificador para hacer el renderizado, tanto posición como transisiones).
Aquí está el código y cómo correrlo por si quieren probarlo: https://github.com/ghostbar/fchallenge-ngjs.
Continuando con la serie de artículos sobre el microframework de desarrollo web flask, ahora se mostrará como crear un sitio estático.
Este artículo se basa en un artículo en inglés llamado Introduction to Flask, Part 1 - Setting up a static site.
Se usará el mismo archivo utilizado en los artículos anteriores (app.py), en este caso simplemente se agregará el decorador y la función que se va a usar que será para llamar una página de bienvenida.
Aparte del archivo app.py se necesita crear dos directorios, uno llamado templates el cual contendrá la plantilla html y el otro se llamará static que contendrá archivos estáticos como archivos css y archivos javascript.
ernesto@heimdall:~/proyectos/tutorialflask$ ls -l
total 12
-rw-r--r-- 1 ernesto ernesto 792 jun 7 20:56 app.py
drwxr-xr-x 2 ernesto ernesto 4096 jun 7 21:09 static
drwxr-xr-x 2 ernesto ernesto 4096 jun 7 21:10 templates
El archivo app.py tendrá la siguiente información adicional:
#Se agrega el renderizado de la plantillaAhora en el directorio templates se crea el archivo bienvenido.html con el siguiente contenido:
from flask import Flask,request,redirect,render_template
#Se usa el decorador ruta para ver el url bienvenido.
@app.route('/bienvenido')
#Se crea la funcion welcome que renderiza una plantilla html.
def welcome():
return render_template('bienvenido.html') # renderiza la plantilla bienvenido.html.
Desarrolladores OpenShift online de todo el mundo han creado más de 2 millones de solicitudes. Hoy, estamos dando otro paso para apoyar a nuestra base de clientes global en crecimiento mediante la adición de una nueva opción de alojamiento en Irlanda.
Ahora se puede ejecutar sus aplicaciones en engranajes de producción con la misma funcionalidad de nuestras localidades en Estados Unidos o lugares de alojamiento europeas
Pues, accedan a https://openshift.uservoice.com/forums/258655-ideas donde pueden dejar o proponer ideas para hacer que experiencia de usuario en OpenShift sea mejor.