VERSION ACTUAL :

Inicio de sesión

Raulito el Friki

Raulito El Friki

COMENTARIOS

EN LINEA

Hay actualmente 0 usuarios conectados.

NUEVOS

  • iampa
  • elministro.
  • jcastro00
  • Liraryu
  • Chapulin

Agregador de canales de noticias

Enciende tu computadora remotamente con Wake On LAN (Linux)

Xenode - Mié, 05/07/2014 - 01:31

Wake On LAN es una tecnología embedida en la mayoría de BIOS/tarjetas de red circulantes en los equipos del mercado, incluso los de 10 años atrás (o más). Básicamente permite el encendido de computadoras que están apagadas (pero conectadas a la corriente) desde otras computadoras de la red (o incluso remotamente según el caso y setup/tipo de IP y/o módem/router). Realmente no es algo que tenga como mucha utilidad (o al menos yo no veo como tal si no tienes un setup que propicie el encendido realmente remoto) pero encontrándole un caso de uso puede ser algo bastante interesante. Yo por ejemplo lo uso porque tengo 2 servidores, uno cuya BIOS soporta el regreso después de un apagón a estado de encendido y uno que no, pero que soporta WakeOnLAN... Gracias a esto último el primer servidor siempre se enciende de manera automática cuando después de un apagón la energía eléctrica se reestablece y automáticamente enciende al otro también, sin intervención humana para ello (Gracias a que añado el comando de encendido vía WOL en el rc.local del primer servidor).

NOTA: Como mis servidores usan Ubuntu Linux, enseñaré el setup en esta distro, pero en cualquier otra las cosas deberían ser más o menos igual cambiando algunos comandos como el del gestor de paquetes para instalar los programas requeridos por ejemplo.

1) Instalar paquetes necesarios

Ocuparemos 2 paquetes que se pueden instalar desde consola con:

sudo apt-get install ethtool etherwake

(Estos van en el equipo desde donde vamos a encender otros equipos de nuestra red).

2) Checar soporte para Wake-On-LAN en BIOS

La mayoría de BIOS que lo soporten generalmente deberán tener esta característica activada ya sea bajo el nombre tal (WakeOnLAN), Arranque por redLAN Boot o algo similar... Tenemos que asegurarnos de que dicha opción esté de hecho activada (en los equipos a encender vía WOL):


3) Checar el tipo de WOL Soportado

Esto se logra con el comando (Dentro de los equipos que queremos encender vía WOL):

sudo ethtool eth0 | grep Wake-on

(Donde eth0 sería el nombre de tu interfaz de red a cable según el caso, mismo que se puede obtener con un ifconfig) y cuyo output debe ser algo como el siguiente:


Lo que nos interesa es el "Wake-on" que debe estar establecido a "g" (MagicPacket) como en mi screenshot. En caso de que esto no sea así, podemos establecer la opción deseada con:

sudo ethtool -s eth0 wol g

Donde eth0 sería el nombre de tu interfaz de red por cable según tu sistema nuevamente.

4) Obtener la dirección MAC del equipo/equipos a encender

Esto se logra con el comando ifconfig también, (que debemos correr en c/u de los equipos) y dentro de nuestra interfaz a cable (eth0 por ejemplo), en el apartado de ether tendremos la dirección MAC correspondiente, algo así como:

11:22:33:4a:5b:66

5) Encendiendo equipos vía WOL

Para esto simplemente apagamos uno de los equipos que queramos encender vía WOL (dejándolo conectado a la corriente) y desde el equipo "matriz" (el que los enciende) correremos el siguiente comando en terminal:

wakeonlan 11:22:33:4a:5b:66

Donde 11:22:33:4a:5b:66 sería la dirección MAC del equipo a encender.

MOOCs

Jose Salgado - Mar, 05/06/2014 - 17:05
MOOCs

No hace mucho, Mario Dehter me hizo una entrevista y uno de los temas que tocamos fue el del auge que están teniendo en este momento los MOOC. Aprovechando que en estos momentos me he apuntado a un curso de creatividad basado en estos principios, creo que es interesante volver a tocar el tema.

Para algunas personas, esto va a ser el futuro de la educación y las universidades ya se han de posicionar en este sector para garantizar su continuidad. Es la nueva revolución pedagógica que está llamando a las puertas.

Como suele pasar, es muy distinto tener que vender periódicos (o blogs o lo que quieras) y otra totalmente diferente la realidad. Si cada vez que un medio o un canal nos dijera que la siguiente revolución va a cambiar el mundo, ahora mismo seríamos todos calvos, llevaríamos lentillas conectadas a internet, e iríamos a trabajar en mini-drones en vez de usar el autobús o el metro.

No creo que lo que son las universidades, o lo que deberían de ser las universidades, hayan de cambiar o adaptarse al mundo de los MOOC. El conocimiento que se supone que se imparte en estos entornos, basado en profundidad de conocimientos, comprehensión de la información, análisis, etc… no puede realizarse usando alguna de las plataformas online existentes. Se podría hacer usando sistemas de e-learning, pero no un MOOC. Hay una relación más estrecha entre profesores y estudiantes, un control de la información enviada y aprendida que ha de ser mucho más personalizada y dedicada que unos simples vídeos colgados en internet.

La ventaja evolutiva de los MOOC, que considero que han llegado para quedarse pero no para suplantar a nadie, es que te permite tener una visión bastante superficial sobre algunas temáticas. Para mi es útil si quiero saber de que va una tendencia, o aprender un poco más de análisis estadístico, es decir, en vez de leerme un manual me apunto a un curso y tengo recursos multimedia que me pueden facilitar la comprensión. También puedo recurrir a foros, que no siempre funcionan, e intentar solventar las dudas e inquietudes que me surjan.

Del mismo modo que puedo ir adquiriendo conocimientos genéricos sobre muchas áreas, si alguna de ellas despierta mi interés, puedo investigar más, puedo dar el salto a una formación más estructurada: masters, etc… sin tener que arriesgar mucho dinero porque ya sabía que la temática me interesaba.

Por otra parte, estos cursos, pueden servir como prueba gratuita para las universidades. Si ofrecen un curso sobre Marketing y es realmente bueno, la gente que quiera mejorar esta habilidad es más probable que vaya a la misma universidad para preguntar y recibir un curso avanzado. Es el siguiente paso de la estrategia Freemium para este tipo de entidades educativas.

Película: The Matrix

Esto es un resumen del artículo MOOCs escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Utilizar LVM como almacenamiento de máquinas virtuales

Mis notas de Linux - Mar, 05/06/2014 - 13:28

Es mejor utilizar LVM para las máquinas virtuales o no?  La respuesta es: depende

Si se van a utilizar las ventajas que LVM ofrece (fácil expansión/reducción del disco, snapshots), entonces es recomendable utilizarlo.

Primero comprobamos el espacio disponible en el disco:

# vgs
VG #PV #LV #SN Attr VSize VFree 
fedora_z600 1 1 0 wz--n- 678.42g 0 
z600 1 3 0 wz--n- 1.16t 976.57g

En el volume group z600 quedan 976G libres que no pertencen a ninguna partición o logical volume

Vamos a reservar 10GB para una máquina virtual:

# lvcreate -L12G -n vm-rhel7 z600 Logical volume "vm-rhel7" created

Comprobamos el resultado:

# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert 00 fedora_z600 -wi-ao---- 678.42g  00 z600 -wi-ao---- 48.83g  01 z600 -wi-ao---- 11.72g  02 z600 -wi-ao---- 146.49g  vm-rhel7 z600 -wi-a----- 12.00g

Al crear una máquina virtual para utilizar ese logical volume, utilizaremos el dispositivo /dev/mapper/z600-vm–rhel7 (ojo que hay un doble -)

Una vez creada podremos ver en el archivo .xml correspondiente:

<devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' io='native'/> <source dev='/dev/mapper/z600-vm--rhel7'/>

 


Utilizar LVM como almacenamiento de máquinas virtuales

Mis notas de Linux - Mar, 05/06/2014 - 13:28

Es mejor utilizar LVM para las máquinas virtuales o no?  La respuesta es: depende

Si se van a utilizar las ventajas que LVM ofrece (fácil expansión/reducción del disco, snapshots), entonces es recomendable utilizarlo.

Primero comprobamos el espacio disponible en el disco:

# vgs
VG #PV #LV #SN Attr VSize VFree 
fedora_z600 1 1 0 wz--n- 678.42g 0 
z600 1 3 0 wz--n- 1.16t 976.57g

En el volume group z600 quedan 976G libres que no pertencen a ninguna partición o logical volume

Vamos a reservar 10GB para una máquina virtual:

# lvcreate -L12G -n vm-rhel7 z600 Logical volume "vm-rhel7" created

Comprobamos el resultado:

# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert 00 fedora_z600 -wi-ao---- 678.42g  00 z600 -wi-ao---- 48.83g  01 z600 -wi-ao---- 11.72g  02 z600 -wi-ao---- 146.49g  vm-rhel7 z600 -wi-a----- 12.00g

Al crear una máquina virtual para utilizar ese logical volume, utilizaremos el dispositivo /dev/mapper/z600-vm–rhel7 (ojo que hay un doble -)

Una vez creada podremos ver en el archivo .xml correspondiente:

<devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' io='native'/> <source dev='/dev/mapper/z600-vm--rhel7'/>

 


Instalar una máquina virtual en Kubuntu o Ubuntu

eliasbrasa - Mar, 05/06/2014 - 11:11

Hace tiempo que quería hacerle un lavado de cara a mi portátil de trabajo, instalarle Kubuntu 14.10 y quitarle el Windows que tenía, ya que apenas lo usaba y me ocupaba demasiado espacio. El problema era que tengo un par de herramientas que solo funcionan bajo Windows, así que me decidí a instalar a mi Kubuntu una máquina Virtual:

Instalar VirtualBox es muy sencillo, ya que está en los repositorios, tenéis que instalar los paquetes virtualbox y virtualbox-guest-additions-iso

Una vez instalados podemos ejecutar VirtualBox para instalar nuestra máquina virtual, el programa tendrá más o menos este aspecto:

VirtualboxAdministradorvacioPara empezar a instalar nuestra máquina virtual tendremos que pulsar en el botón de “Nueva

En la siguiente ventana pondremos un nombre a nuestra máquina Virtual, en el ejemplo es Windows XP. Y en los desplegables le diremos a la máquina virtual qué tipo de sistema operativo se trata y su versión:

Vitualboxinstall1En la siguiente ventana nos pide que le digamos cuánta RAM vamos a dedicar a la máquina virtual, aquí dependemos de cuánta RAM tiene el equipo, cuánta RAM utiliza el sistema operativo anfitrión normalmente y cuánta RAM es capaz de manejar el sistema operativo que vamos a instalar. Yo recomendaría no pasarse de un tercio de la RAM que tenga y sin bajar de 512Mb (si es posible). Pero es que siendo un Windows XP lo que vamos a instalar, más de 2GB de RAM es excesivo. No obstante, que no cunda el pánico, si nos pasamos o nos quedamos cortos todos estos parámetros los podemos cambiar posteriormente.

Lo siguiente que nos pedirá es crear un disco duro virtual para el sistema operativo que vamos a instalar, seleccionaremos “crear disco virtual nuevo“, aquí yo he seguido los consejos del autor de Diversidad y un poco de todo, he puesto la opción VDI y sin problemas.

Después tendremos que seleccionar si queremos que ocupe un espacio fijo o uno variable con un límite, en mi caso he elegido variable con un límite de 10GB porque tampoco es que vaya a gastar mucho más con ese Windows XP. Después os preguntará donde queréis guardar los archivos de esa máquina virtual, y por defecto lo hará en la carpeta del usuario.

Una vez hecho todo esto, le damos a “crear” ya está creada la unidad virtual, ahora pasaremos a configurarla y luego a instalarle el sistema operativo.

Antes de empezar a instalar el sistema operativo conviene echarle un ojo a la configuración de la máquina virtual (le damos al botón configurar) ;)

 - En la pestaña SISTEMA podremos especificar el orden de arranque por dispositivos, desmarcad disquete y dejad CD-Rom y disco duro. (una vez instalado y teniendo en cuenta que mi equipo no tiene CD ni DVD le desmarqué esta opción, pero como voy a instalarle el Windows XP desde un DVD externo voy a dejarle esa opción hasta que esté instalado el sistema)

- En la pestaña PANTALLA poned 64Mb en memoria de vídeo y hacer clic en “habilitar 2d” (en ese orden).

- En CARPETAS COMPARTIDAS gestionaremos que carpetas compartirán el sistema anfitrión y el instalado, no se pueden arrastrar los archivos así que tienen que compartir una carpeta que para el sistema virtual será como una unidad de red. Para el uso de las capetas compartidas habrá que tener instalado virtualbox-guest-additions-iso e instalarlo en el sistema virtual una vez lo hayamos instalado. Acordaros de marcar que se monte automáticamente y que el sistema virtual tenga permiso de escritura.

Ahora ya prepararemos la instalación del Windows XP y pulsaremos el botón iniciar de la máquina Virtual para instalar Windows. La instalación es como cualquier instalación de un Windows XP, solo que es una ventana.

VirtualBox main menu

Una vez instalado, para poder compartir el portapapeles y la carpeta compartida que hayamos configurado antes tenemos que instalarle los Guest Additions, para ello, una vez esté arrancado el sistema virtual, iremos a la opción dispositivos de su ventana y haremos clic en la opción “insertar CD de Guest Additions”, instalamos el programa y él se encargará de instalar el disco duro “en red”.

Para poder habilitar el portapapeles compartido (es decir, poder copiar y pegar texto entre las dos máquinas), tendremos que tener configurado en las opciones –> General Y compartir portapapeles y arrastrar y soltar bidireccional. No funcionará si no está instalado el virtual guest.

VirtualBox portapapeles compartido

Un consejo que os doy, para evitar consumos excesivos de RAM yo evitaría instalar cosas innecesarias en el sistema operativo virtual, es decir, ¿para qué instalarle un navegador si ya tienes uno en el sistema principal? y ejemplos de ese tipo.

Otra cosa importante es que tengáis en cuenta que tener dos sistemas operativos uno sobre otro consume mucha RAM y, por lo tanto, batería, lo digo para que lo tengáis en cuenta cuando lo uséis con portátiles.

Fuente: Diversidad y un poco de todo.


L OME en Requena – Problema 4

Gaussianos - Mar, 05/06/2014 - 04:00

Cuarto problema de la L Olimpiada Matemática Española celebrada en Requena los días 28 y 29 de marzo de 2014:

Sea (x_n) la sucesión de enteros positivos definida por

\begin{matrix}x_1=2 \\ x_{n+1}=2 x_n^3+x_n, \; \forall n geq 2 \end{matrix}

Determinar la mayor potencia de 5 que divide al número x_{2014}^2+1[/Latex].

Que se os dé bien.

Entra en Gaussianos si quieres hacer algún comentario sobre este artículo, consultar entradas anteriores o enviarnos un mensaje.

Construye tú también el poliedro de Császár.

Dos oídos y una sola boca

Jose Salgado - Lun, 05/05/2014 - 17:05
Dos orejas y una boca

Una de las ventajas de haber estudiado psicología, sobretodo en mi caso que me decanté por la especialidad clínica, es que tengo la tendencia a escuchar mucho, y sobretodo, a preguntar más que a responder. Y cuando digo ventaja, lo es porque para poder tener una respuesta a un problema, es necesario tener datos, y lo más efectivo para tener datos que saber escuchar, y saber preguntar.

Otra teoría sobre este tema afirma que Dios nos dio dos ojos, dos oídos y una sola boca para ver y escuchar dos veces antes de hablar. La verdad, es que me suena más a que es un eslogan que a una verdad bíblica, pero podríamos tomarlo como un precepto bastante cierto. En más de una ocasión no dejamos salir los problemas reales y nos dedicamos a atacar síntomas por la sencilla razón de que no hemos dejado hablar a la gente, no hemos formulado las preguntas adecuadas: por miedo, por educación o porque realmente no nos interesaba conocerla. Hay que saber tener paciencia, saber escuchar, dar tiempo y no sentirse incómodo con los largos silencios que se pueden producir cuando alguien está exponiendo un problema. Nos falta paciencia, y nada más empiezan a hablar, intentamos diagnosticar el problema usando el primer síntoma que nos cuadre con nuestra experiencia: exceso de stocks, tensión de tesorería, mala estructura salarial, etc… y rápidamente empezamos a hablar dando una respuesta a una pregunta que ni es la que nos habían hecho, ni es la que estaban esperando.

Escuchar es un arte, no niego que se pueda cultivar, pero del mismo modo hay personas con un don para la cocina y para otro tipo de artes, hay personas que saben hacerlo de forma innata y son capaces de llegar al fondo de una casuística a base de activar los oídos y hacer las preguntas adecuadas.

En más de una ocasión se han desatado verdaderos problemas por no haber solucionado algunas deficiencias, y en más de una ocasión, alguno ha dicho esto de se veía venir. Cuando le preguntabas que significaba eso, te contestaban que ellos ya eran conscientes de que tarde o temprano ese proceso, producto o cliente plantearía un problema, pero cuando lo intentaban comentar con algún superior, siempre les tachaban de negativos, así que aprendieron que era mejor estar callados que ser etiquetados de esa forma.

Con esta actitud no estamos fomentando la comunicación, ni la captación de información interna e intangible, sino el seguidismo, la falta de crítica, y cercenando de raíz cualquier tipo de mejora que llegue desde dentro de nuestro equipo, que recordemos, es al cual pagamos por ayudarnos a tener una empresa en marcha.

Más hiriente es cuando se externaliza una consultoría en búsqueda de algún tipo de mejora. En más ocasiones de las que me gustaría enumerar, la mayoría de veces se podrían haber obtenido las mismas conclusiones preguntando a las personas adecuadas, trabajadores internos de la empresa que viven el día a día de la compañía de forma intensa. Pero está claro que para estos directivos, es más seguro contratar a McKinsey, Ernest and Young o alguna de estas que confiar en su propio criterio y extraer conocimiento de su propio equipo. Si algo sale mal solo han de repetir el mantra que corría por los departamentos de IT hace tiempo: no han despedido a nadie por contratar equipos IBM, y sustituya aquí IBM por la consultora o empresa de renombre de turno.

Película: Mumford

Esto es un resumen del artículo Dos oídos y una sola boca escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Fotografiando las estrellas: Las Eta Acuáridas

Tatica - Lun, 05/05/2014 - 13:44

Las Eta Acuáridas son una Lluvia de meteoros asociadas con el Cometa Halley. La lluvia es visible desde aproximadamente el 21 de abril hasta aproximadamente el 20 de mayo cada año, con su mayor actividad alrededor del 6 de mayo.

Las Eta Acuáridas son mejor vistas en las horas antes del amanecer, lejos del brillo de las luces de la ciudad; Por lo que en el caso de Venezuela, sería entre las 3:00am y las 5:30am.

By Sergiu Bacioiu

Que necesitarás para fotografiar las estrellas esta noche?

  • Cámara SLR: Ajusta el ISO a 800 y la apertura (F) a lo máximo que permita tu lente (menor número, mejor).
  • Toma fotografías de 20 o 30 segundos (en caso de que no tengas la opción Bulb)
  • Coloca el lente en modo manual y enfoca hacia el infinito.
  • Usa un trípode para evitar movimientos y utiliza un control remoto para que no muevas la cámara con las manos.
  • Procura no enfocar a la luna, ya que no te dejará ver las estrellas a su alrededor
  • Busca una silla cómoda, una buena almohada y un café y disfruta del show!

camara

Redes 02: Violencia y vida urbana

WayraTV - Dom, 05/04/2014 - 18:32
Su navegador no soporta el plugin
Descripción: 
Durante este siglo, se llegará a la situación en que la mitad de la población mundial vivirá en núcleos urbanos. La violencia ha encontrado en las grandes ciudades de hoy un nicho donde imponerse como forma de poder. ¿Cómo son los entornos que desencadenan nuestros potenciales violentos? La pobreza no es la causa de la violencia en las ciudades. En Brasil -ejemplo que emplea la antropóloga de la Universidad de California entrevistada por Eduard Punset, Teresa Caldeira- siempre hubo pobreza pero el nivel de violencia ha variado. Según las estadísticas de violencia en Brasil y en los EUA, el pico de asesinatos que hubo en la década de los 80 fue de la mano con el aumento de la distribución de las drogas, especialmente el crack. En los EUA, la distribución del crack se ha controlado y la violencia urbana es menor hoy que en los 80.Cuando vemos las noticias sobre violencia, creemos que esas conductas son muy distantes a nosotros. Sin embargo, los científicos han demostrado mediante experimentos que, en determinados contextos, casi todas las personas podemos ser inducidas a actuar con violencia. Casi todo depende del entorno que nos rodee, entre el que se encuentran nuestras creencias, como explica la antropóloga Mercedes Fernández-Martorell sobre el caso de los hombres que maltratan a sus mujeres.Si bien la pobreza no es la causa de la violencia, su expresión cultural puede ser violenta. Es el caso del hip-hop más mediático en los EUA. Pero no siempre es así. En España, el hip-hop a veces funciona como un antídoto contra la violencia. La historia de Kader, un graffitero de Barcelona, y de otros cantantes de hip-hop demuestran que su cultura puede ayudar a construir una sociedad más pacífica.

Dos principios que a mi me han ayudado

Jose Salgado - Dom, 05/04/2014 - 17:01
Dos principios que me han ayudado

Cambio, evolución, mejora… son conceptos que se enseñan mucho por estas páginas. Pero en esta ocasión creo que más que decirte que dibujes tu mapa, que seas el capitán de tu barco, voy a confesar mis dos principios más preciados, dos ideas básicas que intento que guíen mi forma de vivir y entender el mundo.

  1. Se feliz
  2. Deja un mundo mejor del que te encontraste

El primero parece fácil, pero si te paras a pensar te darás cuenta que definir que es la felicidad te va a costar mucho. Quizás sea dinero, quizás sea encontrar el amor, pero creo que si tu idea va por estos derroteros, te va a ser muy difícil ser feliz. Depositar en terceras personas (u objetos) el como nos sentimos es darles todo el poder a ellos. Si una pareja no te quiere, sino tienes dinero, tu pierdes el control sobre tu propia felicidad. Si quieres ser el dueño de tu destino, has de ser el dueño de tus sentimientos. Si quieres ser feliz, has de conseguirlo a través de ti, de tus mejoras y logros. Alcanzar la felicidad aprendiendo a valorar los momentos buenos y momentos malos. Poder sonreír y reírte de ti mismo en cada etapa de tu vida, de hecho, sino sonríes al menos veinte veces al día, no creo que te puedas catalogar como una persona feliz.

No digo que se tenga que ser una isla. Es muy útil el poder sentir felicidad a través de terceros, de alegrarse de los triunfos de otros, de poder tomar un poco de su felicidad y añadirla a tu propia colección de sentimientos. Sumar estas emociones suele ser más satisfactorio que disfrutarlos en solitario, pero no como necesidad sino siempre como complemento, como algo desinteresado y que nace de lo más profundo de nuestro corazón.

El segundo punto es quizás el más importante y que muchas veces nos puede ayudar a balancear lo de ser feliz. No puedes ser feliz pasando por encima de otras personas, dejando un reguero de desgracias. Hemos de ser muy conscientes de que nuestros actos tienen consecuencias, y que es importante usar nuestra libertad para alcanzar nuestras metas, estas no pueden tener efectos colaterales que causen la desdicha de otros. Cada día, cada semana, poco a poco, hemos de construir a nuestro alrededor un lugar mejor para la gente que viene o la gente que se quedé cuando nosotros no estemos consumiendo oxígeno en este planeta.

Puedes pensar que si naces pobre y mueres millonario has triunfado, pero para mi humilde punto de vista, si no has conseguido dejar huella, dar algo al mundo para que sea un lugar del cual estar orgulloso, te diré sin tapujos que eres un fracaso como persona. Si nadie se ha beneficiado de tu paso por la vida, si la sociedad no es un poco mejor, si la única diferencia que has aportado es acumular dinero o peor todavía, pasar desapercibido sin nada más que añadir, has malgastado tu vida de una forma bastante triste.

No voy a negarte que intentar seguir estos dos principios es complicado, pero eso es porque vemos demasiadas películas y tenemos muchos siglos de cultura en nuestra espalda. Ser feliz es algo más sencillo de lo que parece, y no tenemos que cambiar el mundo, sino hacer que una vecina, un amigo, un desconocido, o la fauna y la flora de nuestro pequeño universo social sea un poco mejor. Solo con eso ya somos héroes, ya hemos triunfado. No hace falta que nos inspiremos en las novelas del romanticismo, con todas esas cargas emocionales y dramáticas. Simplemente se feliz con las pequeñas cosas de la vida: un café con amigos, una sonrisa, el ser agradecido y por el camino, ayudar a que el siguente que venga tenga menos trabajo para hacer de este un mundo donde todo querríamos vivir.

Película: The Adventures of Priscilla, Queen of the Desert

Esto es un resumen del artículo Dos principios que a mi me han ayudado escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Redes 01 Manipular el cerebro

WayraTV - Dom, 05/04/2014 - 02:04
Su navegador no soporta el plugin
Descripción: 
Empezamos posteando los documentales del programa Redes del Grupo Punset, excelente aporte ..., hablando sobre el órgano que más incide en nuestra forma de ser: el cerebro. Ahora sabemos que los circuitos electroquímicos que configuran nuestra mente no son inmutables, el entorno moldea continuamente el entramado de neuronas. Los retos de la neurociencia apuntan a aprovechar esa plasticidad, y encontrar los estímulos adecuados para tratar o incluso perfeccionar el funcionamiento del cerebro humano. Punset descubre, junto a Álvaro Pascual-Leone, neurólogo del Harvard Medical School, el funcionamiento de la “estimulación magnética transcraneal”, un método para modificar la actividad de las vías neurales sin la administración de fármacos ni la utilización de cirugía.Si se puede alterar determinados circuitos neuronales, ¿se podrá también llegar a modificar el comportamiento o mejorar nuestras habilidades mentales? ¿Es posible manipular el cerebro para modificar nuestra forma de ser o acabar de una vez por todas con las enfermedades mentales? En esta primera emisión de la nueva temporada de redes lo investigaremos a fondo.

Restful API con Django-tastypie

Ernesto-ecrespo - Sáb, 05/03/2014 - 21:13
Siguiendo con la serie de artículos sobre django, ahora se  mostrará como crear un API restful con django tastypie, su documentación la pueden encontrar acá.

En el caso de Debian/Ubuntu y otras distribuciones basadas se instalará los siguientes programas:



Este artículo se basa en el siguiente artículo en inglés.
Para instalar los programas se ejecuta apt-get:
#apt-get install python-django-south python-tastypie python-mimeparse python-lxml python3-lxml

La instalación por medio de pip es la siguiente:
#pip install Django South python-mimeparse dateutil django-tastypie lxml

Ahora a crear el proyecto pasarela con django-admin:
mkdir -p pruebas
cd pruebas
ernesto@pruebas:~/pruebas$ django-admin startproject pasarela

Se lista el contenido del directorio pasarela:
ernesto@pruebas:~/pruebas$ ls -l pasarela/
total 8
-rwxr-xr-x 1 ernesto ernesto  251 may  3 18:17 manage.py
drwxr-xr-x 2 ernesto ernesto 4096 may  3 18:17 pasarela

Se edita el settings.py dentro de pasarela:
ernesto@pruebas:~/pruebas$ vim pasarela/pasarela/settings.py

A continuación se muestra la parte que se modificó del archivo settings.py:
El admin del proyecto:
ADMINS = (
    ('Ernesto Crespo', 'ecrespo@xxxx'),
)

La base de datos que se usará por pruebas será sqlite3 y el nombre de la base de datos será pasarela.db:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'pasarela.db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

Hosts permitidos son el servidor donde se encuentra django y el equipo donde se hará las pruebas: 

ALLOWED_HOSTS = ["127.0.0.1","192.168.0.106"]

El huso horario será el de Caracas Venezuela:
TIME_ZONE = 'America/Caracas'

El idioma de la aplicación será  Español Venezuela:
LANGUAGE_CODE = 'es-ve

Las aplicaciones a instalar son: django.contribution.admin, south, tastypie, pasarela.apps.sms:
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    'south',
    'tastypie',
    'pasarela.apps.sms',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)


Se crea el directorio apps y dentro de el se crea el archivo __init__.py: 
ernesto@pruebas:~/pruebas/pasarela/pasarela$ mkdir -p apps

ernesto@pruebas:~/pruebas/pasarela/pasarela$ touch apps/__init__.py

Se lista los archivos dentro de apps:
ernesto@pruebas:~/pruebas/pasarela/pasarela$ ls -l apps 
total 0
-rw-r--r-- 1 ernesto ernesto 0 may  3 18:41 __init__.py

Ahora se crea la aplicación django sms dentro de apps: 
ernesto@pruebas:~/pruebas/pasarela/pasarela/apps$ django-admin startapp sms

Se lista el contenido de sms: 
ernesto@pruebas:~/pruebas/pasarela/pasarela/apps$ ls -l sms/
total 12
-rw-r--r-- 1 ernesto ernesto   0 may  3 18:42 __init__.py
-rw-r--r-- 1 ernesto ernesto  57 may  3 18:42 models.py
-rw-r--r-- 1 ernesto ernesto 383 may  3 18:42 tests.py
-rw-r--r-- 1 ernesto ernesto  26 may  3 18:42 views.py

Ahora se creará el modelo de datos que se usará, se edita el archivo models.py de sms:
Se manejará dos tablas en una se maneja el historico de mensajes enviados y en la segunda tabla la culminación del envío de todos los mensajes.
#se importa models de django.db
from django.db import models

# Create your models here.

#Se crea la clase Evento que hereda de model.Model
class Evento(model.Model):
    #Se crea la columna evento que será entero y clave primaria de la base de datos
    evento = models.IntegerField(primary_key=True)
    #Se crea el campo estatus que será booleano y por defecto será falso.
    estatus = models.CharField(default=False)

    #Se define la información que se requiere en el panel de administración web de django.
    def __unicode__(self):
       evento = "%Evento: %s, Estatus: %s " %(self.evento,self.estatus)
       return evento




#Se crea la clase historicoSMS que hereda de models.Model
class HistoricoSMS(models.Model):
    #Se crea la columna evento que es clave foranea de la tabla evento.
    evento = models.ForeignKey(Evento)
    #se crea mensaje con un tamaño de 150 caracteres
    mensaje = models.CharField(max_length=150)
    #Se crea numcel con un tamaño de 11 caracteres que será el numero celular.
    numcel = models.CharField(max_length=11)
    #Se crea estatus que tiene el valor booleano si se envío o no el mensaje al número celular.
    estatus = models.CharField(default=False)

    #Se define la información que se requiere en el panel de administración web de django.
    def __unicode__(self):
        mensaje = "%s %s  %s %s "  %(self.evento,self.mensaje,self.numcel,self.estatus)
        return mensaje


Ahora se crea el archivo api.py en la aplicación sms (este archivo es el que define que información se va a mostrar por medio de API restful):
#Se importa ModelResource de tastypie.resources
from tastypie.resources import ModelResource
#Se importa de models.py en la apps sms HistoricoSMS y Evento
from .models import HistoricoSMS,Evento

#Se crea la clase SMSResource que hereda de ModelResource
class SMSResource(ModelResource):
    #Se crea una clase Meta
    class Meta:
        #queryset se trae todo el contenido de la tabla HistoricoSMS
        queryset = HistoricoSMS.objects.all()
        #El nombre del recurso es mensajes, de está forma se consulta en el restful api
        resource_name = 'msg'

#Se crea la clase EventoResource que hereda de ModelResource
class EventoResource(ModelResource):
    #Se crea la clase Meta
    class Meta:
        #Se define queryset que se trae todos los datos de la tabla Evento
        queryset = Evento.objects.all()
       #El nombre del recurso es evento.
        resource_name = 'event'


Ahora se busca  que se pueda ver las consultas de Restful API, para ello se edita el archivo urls.py de pasarela (se comentará sólo los cambios que se le hagan al archivo):
from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
#Se descomento la importación de admin y admin.autodiscover() .
from django.contrib import admin
admin.autodiscover()

#Se importa Api de tastypie.api
from tastypie.api import Api
#Se importa SMSResource y EventoResource del api de la aplicación sms.
from apps.sms.api import SMSResource,EventoResource

#Se instancia Api con la versión v1.
v1_api = Api(api_name='v1')
#Se registra los recursos en la instancia del api.
v1_api.register(SMSResource())
v1_api.register(EventoResource())


urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'pasarela.views.home', name='home'),
    # url(r'^pasarela/', include('pasarela.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    #Se descomenta admin
    url(r'^admin/', include(admin.site.urls)),
    #Se define el url del api.
    url(r'^api/', include(v1_api.urls)),
)


Ahora se sincroniza o crea la base de datos:
ernesto@pruebas:~/pruebas/pasarela$ python manage.py syncdb 
Syncing...
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table south_migrationhistory
Creating table tastypie_apiaccess
Creating table tastypie_apikey
Creating table sms_evento
Creating table sms_historicosms

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'ernesto'): ernesto
E-mail address: ecrespo@xyzw.com
Password: 
Password (again): 
/usr/lib/python2.7/dist-packages/django/db/models/fields/__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (2014-05-03 20:30:49.555592) while time zone support is active.
  RuntimeWarning)
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.messages
 > django.contrib.staticfiles
 > django.contrib.admin
 > south
 > tastypie
 > pasarela.apps.sms

Not synced (use migrations):
 - 
(use ./manage.py migrate to migrate these)

Ahora pide migrar los esquemas con south:
python manage.py migrate 

Ahora se necesita algunos datos en la base de datos, se usará la parte interactiva de sqlite3. 
Se insertará varios datos como lo indica el siguiente comando sql
Para el caso de la tabla eventos: 
insert into sms_evento (evento,estatus)  values (3,0);
Para el caso de la tabla historicosms:
insert into sms_historicosms (evento_id,mensaje,numcel,estatus)  values (2,"otra prueba","04158339101","False");

El resultado se muestra a continuación:
sqlite> select * from sms_evento;
1|1
2|1
3|0

sqlite> select * from sms_historicosms;
1|1|prueba|04158339191|True
2|1|prueba|04158339192|True
3|1|prueba|04158339193|False
4|1|prueba|04158339194|False
5|1|prueba|04158339195|True
6|2|otra prueba|04158339197|True
7|2|otra prueba|04158339198|True
8|2|otra prueba|04158339199|True
9|2|otra prueba|04158339100|True
10|2|otra prueba|04158339100|False
11|2|otra prueba|04158339101|False

Ya con estos datos se puede iniciar el servicio para mostrar la información del api restful:
ernesto@pruebas:~/pruebas/pasarela$ python manage.py runserver 192.168.0.100:8080
Validating models...

0 errors found
Django version 1.4.5, using settings 'pasarela.settings'
Development server is running at http://192.168.0.100:8080/
Quit the server with CONTROL-C.

A continuación se muestra la captura de pantalla del resultado de la consulta de los mensajes:
http://192.168.0.100:8080/api/v1/msg/?format=json

La siguiente figura muestra la consulta de los eventos
http://192.168.0.100:8080/api/v1/event/?format=json:



Si se quiere consultar el evento 1 de eventos:
http://192.168.0.100:8080/api/v1/event/1/?format=json
{"estatus": true, "evento": 1, "resource_uri": "/api/v1/event/1/"}Si se quiere consultar el mensaje 1 de msg:http://192.168.0.100:8080/api/v1/msg/1/?format=json{"estatus": false, "id": "1", "mensaje": "prueba", "numcel": "04158339191", "resource_uri": "/api/v1/msg/1/"}Luego se explicará como realizar aparte de un get, un POST/PUT/DELETE, pero para ello se requiere autenticación.Otros artículos sobre tastypie:

Cloudflare de veras hace la diferencia

Xenode - Vie, 05/02/2014 - 17:19

Ya lo he mencionado en posts pasados pero lo repetiré una vez más: Esta web/blog que ustedes accesan para leer nuestros posts (por ejemplo) está hospedada en un servidor dedicado que tiene su conexión a internet propia PERO esta lamentablemente está detrás de un NAT. Esto último hace que sea prácticamente imposible dar acceso "así sin más" a la máquina a través de la IP pública del router, por lo tanto para hacer todo funcionar nosotros rentamos un VPS pequeño que se encarga de recibir las requests que c/u de ustedes hace y enviarlas directo al servidor dedicado que es el que finalmente "responde" mostrando el contenido indicado. Esto quiere decir que el hardware que se usa en realidad es el del servidor dedicado y no el del VPS, siendo de éste último lo único que se consume la banda ancha.

Recientemente migré el VPS de nuestra fórmula desde AWS hacia DigitalOcean por sus mejores precios/opciones y máquinas más potentes, y aunque DigitalOcean es realmente barato, me di cuenta de que optimizando el servidor uno se puede ahorrar cantidades importantes de dinero. Aclaro que en este caso no es como si estuviéramos jugando con cientos de dólares al mes, pero si este setup pequeño puede optimizarse en gastos dando mejores resultados por más tiempo sin ocupar tanto dinero, entonces cualquier setup puede aprovecharse mejor y mejor. Para empezar veamos una gráfica:

Periodo del 29 de Abril 2014 al 1 de Mayo 2014
Esta gráfica muestra (aproximadamente) los "picos y mesetas" de los 3-4 días de operación del VPS en el apartado relevante para el tipo uso que yo le doy en mi caso: la banda ancha de salida (verde) y de entrada (azul). Aclaremos antes de seguir que Cloudflare no solo ayuda en este apartado si no en la optimización de uso de todos los recursos (CPU, Disk I/O etc) pero en el caso de esta web el VPS no ocupa ninguno de éstos de manera relevante como para mostrar gráficas de ellos porque sólo es una especie de "enrutador", no hace operaciones en disco duro ni tampoco a nivel CPU realmente fuera de su operación común de estar prendido, el heavy lifting lo hace el servidor dedicado donde está la web/blog.

Ahora bien, la primera parte de la gráfica (segmentada en morado transparentado abajo donde se ve claramente que el ancho de banda In/Out estaba parejo pero alto) es un periodo de tiempo en el que el servidor estuvo operando en sus configuraciones normales, (simplmente hice el setup y lo dejé corriendo, sin optimizaciones ni nada). La segunda parte de la gráfica (verde transparentado abajo) fue un intento fallido de habilitar compresión de SSH en nuestro "enrutamiento" para ver si podíamos ahorrar ancho de banda pero al hacerlo al mismo tiempo en el cliente y servidor (además de usar el fuerte algoritmo AES) resultó en picos horribles de ancho de banda de salida (data descargada hacia los clientes de los usuarios) pero curiosamente en más velocidad al navegar en nuestra web:


La tercera parte de la gráfica (azul aquamarina transparentado arriba) es un periodo a la baja que casi no se nota porque la gráfica es algo inexacta al ser de 7 días y el VPS únicamente estar operativo desde hace 4 (tiene "zancos" muy grandes) pero este periodo representa un punto en el tiempo donde se delegó la compresión SSH al cliente únicamente (el servidor dedicado) y se usó otro algoritmo arcfour/blowfish más eficiente para dicha cuestión. Finalmente la parte anaranjada translúcida de la gráfica es la parte desde la cual se puede observar el efecto de Cloudflare habilitado para nuestro VPS/Dominio... Como verán no solo se volvieron a regularizar los niveles de In/Out aproximadamente, sino que también se redujeron de una manera CONSIDERABLE! jajajaja.

NOTA: Cabe destacar que durante los 4 periodos mostrados el stream de tráfico de la web se mantuvo en promedios similares según Google Analytics.

Otro ejemplo que puedo dar sobre la efectividad de Cloudflare es el de nuestro webproxy Calyphrox. El sitio web de Calyphrox anteriormente pasaba mucho tiempo "saltando" de mirror en mirror porque se saturaba, y si bien es cierto que hay muchos usuarios que lo ocupan diariamente, una congestión tal como la que sufría era demasiado rara para mi... ¿Mi mayor sospecha? DdoS causados por haber metido la URL en algún mal directorio o algo así. Con Cloudflare el proxy está más tiempo online en su mirror principal y no tiene que estar saltando (ya que CF sólo permite acceso directo a IP's "limpias" o que no se dedican a hacer este tipo de cosas como las de las computadoras en alguna Botnet), característica que me parece genial.

¿En qué se traduce todo esto?

Específicamente en el caso de la web de Xenode Systems, menos gastos diarios (y por ende mensuales) de uso por VPS, así de sencillo. Dejando del lado las cuestiones como mayor velocidad de acceso para nuestros usuarios o la protección contra ataques DDoS automática y demás atravtivas funciones (que se obtienen incluso con el plan gratuito), Cloudflare hace la diferencia al permitirnos pagar menos mensualmente por los servicios de nuestro VPS rentado. ¿Mi recomendación? Definitivamente denle una vuelta, puede hacer la diferencia para muchas de sus webs en costos de mantenimiento, velocidad de acceso y protección día con día.


Alcanzado el 35

Gaussianos - Jue, 05/01/2014 - 04:00

En este día 1 de mayo de 2014, el autor de este humilde blog cumple 35 años, y como estos últimos años quería dejar constancia de ello con un breve post en el además aprovecharé para comentar algunas propiedades de este interesante número (recordad que todos los números son interesantes).

Seguro que sabéis que el 35 es impar (ya que 35=2\cdot 17+1), y también que es compuesto (porque no es primo). Y posiblemente también sepáis que es un número deficiente, porque la suma de sus divisores (exceptuando a propio 35) es menor que él mismo (1+5+7=13<35) y semiprimo, porque es el producto de dos números primos (5 \cdot 7=35).

También se cumple que el 35 es libre de cuadrados (ningún cuadrado de un entero positivo es divisor de dicho número), y que es un número odioso, porque su expresión binaria, 100011_{(2}, tiene un número impar de unos.

Es el 35 además un número pentagonal, números estos extensión de los números triangulares y los números cuadrados. Los números pentagonales siguen la fórmula siguiente:

p_n=\cfrac{n \; (3n-1)}{2}

Forman cada uno de ellos un pentágono colocando el número de puntos concreto de la siguiente manera (en la figura siguiente, tomada de aquí, aparecen todos los pentagonales hasta el 35, que es p_5):

Aparte de todo esto, el 35 es un número tetraédrico, porque con 35 esferas se puede formar un tetraedro como se puede ver en la imagen siguiente (tomada de aquí):

Ninguna de las propiedades citadas hasta ahora es exclusiva del 35 (muchos otros números las cumplen), pero este número tiene un par de ellas que lo hacen especial respecto al resto de enteros positivos. La primera es que es la suma de los cubos de los dos primeros números primos. Esto es:

35=2^3+3^3

Y la segunda es que es el número de hexominós distintos que se pueden construir. Por si alguien no sabe lo que son los hexominós, son las figuras formadas por 6 cuadrados en las que cada dos cuadrados vecinos comparten un lado. Aquí los tenéis todos (imagen tomada de aquí):

Aunque hemos citado muchas propiedades del 35, es posible que alguna interesante se haya escapado. Si tenéis conocimiento de más propiedades y características reseñables de este número no dudéis en citarlas en los comentarios. Muchas gracias.

Fuentes:

Entra en Gaussianos si quieres hacer algún comentario sobre este artículo, consultar entradas anteriores o enviarnos un mensaje.

Construye tú también el poliedro de Császár.

Páginas

Suscribirse a Fedora-es sindicador