VERSION ACTUAL :

Inicio de sesión

Raulito el Friki

Raulito El Friki

COMENTARIOS

EN LINEA

Hay actualmente 0 usuarios conectados.

NUEVOS

  • Ronaystein
  • CiroGes
  • fredyjaneta
  • zulan
  • castulo

Agregador de canales de noticias

Configurando un sitio estático con flask

Ernesto-ecrespo - Dom, 06/08/2014 - 03:00
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 plantilla

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.






Ahora en el directorio templates se crea el archivo bienvenido.html con el siguiente contenido:



Se ejecuta la aplicación y se consulta el url http://127.0.0.1:5000/bienvenido


Ahora se usará un estilo que se llama bootstrap para descargarlo lo puede hacer desde el enlace. Al bajarlo y descomprimirlo copie los archivos bootstrap.min.css y bootstrap.min.js al directorio static, como se muestra a continuación:
ernesto@heimdall:~/proyectos/tutorialflask$ ls -l static/
total 132
-rw-r--r-- 1 ernesto ernesto 99961 feb 13 12:54 bootstrap.min.css
-rw-r--r-- 1 ernesto ernesto 29110 feb 13 12:54 bootstrap.min.js


A continuación se muestra los nuevos cambios a la plantilla bienvenido.html para que use los archivos mencionados anteriormente.

Ahora se abre el navegador al url http://127.0.0.1:5000/bienvenido y se obtiene lo que muestra la siguiente figura:

WOM, la memoria anti NSA

Espacio Linux - Sáb, 06/07/2014 - 20:47
Mucho se ha hablado sobre como la NSA y las empresas pueden controlar nuestras computadoras de manera remota, y podemos dar por sentado que una de las áreas más desprotegidas de nuestro sistema es la memoria RAM, el problema es que este tipo de memoria tan popular a probado no ser tan segura como uno […]

Micro framework flask (parte 2)

Ernesto-ecrespo - Sáb, 06/07/2014 - 19:30
Continuando con el artículo inicial sobre el microframework flask, ahora se muestra el manejo de distintas rutas de urls, se muestra también como obtener información sobre el navegador que se está utilizando para ver la página y por último como redireccionar una ruta a otro url.

A continuación se muestra el código de app.py:
#de flask se importa Flask, request y redirect.

from flask import Flask,request,redirect



#Se crea la instancia del objeto Flask.

app = Flask(__name__)



#Se define el decorador ruta en este caso será la raíz del url, donde

#se muestra hola mundo desde flask

@app.route('/')

def hola_mundo():

    return "Hola Mundo <strong>desde Flask</strong>"



#En este caso el decorador ruta maneja un directorio ususuario y se coloca el nombre del 

#usuario en el url 

@app.route('/usuario/<nombre>')

#Se define la función usuario donde se le pasa el nombre

#devuelve un texto que dice hola y el nombre del usuario.

def usuario(nombre):

    return "<h1> Hola, %s </h1>" % nombre



#Se define la ruta navegador

@app.route('/navegador')

#Se crea la función navegador

#donde se obtiene el headers de User-Agent el cual maneja el nombre

#del navegador que se está usando, la función navegador retorna un string con

#el nombre del navegador.

def navegador():

    user_agent= request.headers.get('User-Agent')

    return "<h1>Su navegador es: %s </h1> " % user_agent



#Se define la ruta redirect

@app.route('/redirect')

#se crea la función redir el cual retorna el nuevo url que será este blog.

def redir():

    return redirect('http://blog.crespo.org.ve')



#Se define la ejecución del servidor.

if __name__ == '__main__':

    app.run(debug=True)



A continuación se ejecuta app.py:
python app.py 
 * Running on http://127.0.0.1:5000/
 * Restarting with reloader

Se abre el navegador colocando en el url el nombre que se desea mostrar en este caso ernesto:
http://127.0.0.1:5000/usuario/ernesto

La imagen muestra el resultado:


Ahora se colocará el url que permite mostrar la información del navegador:
http://127.0.0.1:5000/navegador

La siguiente figura muestra el resultado:

Para terminar se colocará el url que permite redireccionar un url a otro url, en este caso se grabará un screencast para mostrar la acción.
El url es: http://127.0.0.1:5000/redirect

El vídeo se muestra a continuación: 


PMO y SMO. Diferencias, Similitudes y Colaboracion !!!

Victor Fernandez - Sáb, 06/07/2014 - 06:37

Aprovecho este articulo para transmitir que el pasado 3 de Junio tuve la oportunidad de poder participar como ponente en el IX Congreso Academico Internacional del itSMF,


En esta ocasion en concreto, la tematica del congreso mas alla de Gestion de Servicios TIC y del Gobierno IT, giró en torno a varios pilares claves, como se puede apreciar en la agenda:

- Tendencias (Cloud Computing, Movilidad y Big Data)
- Gestion TI
- Gobierno IT
- Compliance IT
- Legal IT

Personalmente ha sido un placer poder disfrutar tanto de su preparacion como de la realizacion del evento igualmente de forma compartida con todos los profesionales del sectos como con la organizacion del itSMF,

Como en anteriores ocasiones, dejo aqui la presentacion:


¿Porqué la #Swap es importante? Un ejemplo práctico

Xenode - Sáb, 06/07/2014 - 01:42

Hace días publicamos un artículo donde mencionábamos 7 tips para mantener tu linux rápido y responsivo con el tiempo. En el último punto, (el 8vo) se mencionaba algo sobre "los mitos de la swap" y las de alguna manera "falsas" afirmaciones que algunas personas hacen sobre "estar mejor sin swap" o "haciendo poco uso de ella".

En el artículo citado se explica a fondo porqué esto es más falso que cierto (así que si les interesa saber y no lo han leído háganlo) Pero citaré otro ejemplo práctico a continuación:

Y... Se nos cayó el clúster

Ayer, varias horas después de lanzar el deployment de alta disponibilidad para Xenode Systems de pronto alguien nos envió un tweet mencionando que encontró un error en la página. Esto no era normal puesto que todos los sistemas estaban operacionales según el sistema de alertas y de tener error, (al no ser fatal según un chequeo rápido puesto que como ya expliqué los sistemas supuestamente estaban operando de manera normal) éste debería repararse por sí solo antes de ser notado por alguna persona debido a la naturaleza failover del clúster.

Hice la revisión de la página y ¡sorpresa! Error 404 en la página principal... (NOTA: Este tipo de error se tiende a deber a un comportamiento errático dentro del replica set de MongoDB); El debugging me llevó tan solo unos minutos y logré rastrear el punto de origen hasta un reseteo no programado en nuestro VPS dentro de DigitalOcean (que detecté gracias al comando uptime). Al principio señalé culpables con el dedo:


  • Que si DigitalOcean ("seguro reiniciaron los VPS", me dije)
  • Que si MongoDB (No estoy seguro de la causa, pero igual tuve mis sospechas)


Así que abrí un ticket de soporte y en lo que me atendían seguí haciendo el debugging del sistema. Al final resultó que la falla no estaba ni en el replica set de MongoDB (per sé) ni era culpa del staff de DigitalOcean (per sé), sino a que el enlace con la VPN que comparten las máquinas del clúster se había roto y no podían "encontrarse" de regreso. Según un miembro del staff de soporte en DigitalOcean, lo más probable era que el rebooteo inesperado se haya debido a que de pronto el VPS consumió tanta RAM que se quedó sin memoria y decidió reiniciarse por sí solo (como pude verificar tras checar /var/log/messages efectivamente). Esto me pareció extraño puesto que aún cuando el droplet tiene poca memoria tampoco es como si hiciera mucho y además tiene una swap montada sobre un SSD (que debería ser rápida a comparación de la montada sobre un disco duro) como memoria de respaldo.

Después recordé que habilité tuned dentro de mi VPS pero no en el perfil que uso normalmente para mis servidores sino en el de virtual-guest (ya que un VPS es una máquina virtual en sí) mismo que decrementa el valor de vm.swappiness por defecto y lo deja en 10 en lugar de 60 (siendo este último lo normal), haciendo que el sistema use menos swap de la que tiene en total y por ende se quede sin memoria más rápido al acabarse la RAM disponible.

Obviamente la solución radicaba en cambiar dicho comportamiento para que el sistema usara la memoria TOTAL disponible (RAM + SWAP) de manera normal en lugar de discriminar el uso de swap en favor de "más velocidad" ya que para un VPS (aún siendo una máquina virtual) que hace lo que el que tenemos para el clúster dicha discriminación no tiene sentido y/o beneficio (sobretodo cuando la swap se monta sobre de un SSD y se tiene zRAM habilitado). Con dado conocimiento en mente, cambié el perfil de tuned al que uso normalmente en los servidores físicos (throughput-performance, mismo que mantiene el valor de vm.swapiness en el 60 convencional) y añadí más swap sobre SSD al VPS para evitar que estas cosas pasaran en el futuro.

Así que como verán, ¡la swap es importante! tanto que su falta o disposición puede significar MUCHO para el uptime de tu sitio web, sobretodo en entornos con RAM limitada.

Habilitar Presto (DRPM) en DNF

Fedora Nicaragua - Vie, 06/06/2014 - 10:27
DNF es una bifurcación de YUM que va a reemplazar a este último en futuras versiones de Fedora, he estado probando DNF para administrar paquetes pero había una funcionalidad que estaba extrañando: el uso de DRPM para reducir el tamaño de las descargas al momento de actualizar el sistema.

Dado que el uso de DRPM al actualizar es una de las cosas que me gustan mucho de Fedora abrí un bug para consultar al respecto., he de admitir que la respuesta de los desarrolladores no tarde en llegar para informarme que ese era un cambio que ya se había implementado en una versión anterior de DNF, para que DNF descargue paquete DRPM al actualizar hay que hacer lo siguiente:

1- Con nuestro editor de textos de preferencia y con privilegios de administrador abrir el archivo: 

/etc/dnf/dnf.conf

2- Agregar al archivo la siguiente linea: 

deltarpm=True

Guardamos el archivo y listo, creo que este tipo de cambios necesitan un poco mas de documentación que una nota en una nueva versión del paquete.



MongoDB: bypass the 2GB/4GB limit on 32/64 Bits

Xenode - Vie, 06/06/2014 - 05:18

If you have a 32-Bit server, you might have noticed that MongoDB by default doesn't allow you to store more than 2GB of data on a specific mongod process (for 64 Bits deployments the limit is 4GB) So, how can we bypass these limits? the answer is with sharding:

NOTE: I'll be using a Fedora Linux as main O.S. for my examples, these commands may also apply for CentOS/RHEL and with very little modifications, any *nix O.S. out there.

What is sharding?

Sharding is the process by which we split (replication included) a MongoDB database across multiple servers (or mongod processes running on a single machine like in this case). Let's see how to implement it:

First: Configure a Shard

We'll need to setup a shard on the machine so it can use two mongod instances (and sync between them) instead of one. You can initiate as many "nodes" as you need to increase your storage (in groups of three, as they're replica sets): Every usable mongod you add to the shard is going to increase database's total storage by 2GB/4GB (depending on wether you're on a 32/64 bit machine); In this particular case, we're going to launch 2 usable mongod instances and one arbiter in one shard (usually for every shard we launch, we put in it only three nodes in a "replica set fashion" and if we need more nodes, we create another shard of three); But in this case as I said before I'll create one shard with two nodes in it (so in a 32-bit machine this setup will increase my storage up to 4GB just as the default limit in a 64-bit one):

1. su -
2. mkdir -p /data/shard0
3. chown user /data/shard0
4. cd /data/shard0
5. mkdir -p rs1 && mkdir -p rs2 && mkdir -p rs3
6. chown user rs1 && chown user rs2 && chown user rs3
7. service mongod stop && chkconfig mongod off
8. mongod --replSet myShrd --logpath "s0-r1.log" --dbpath /data/shard0/rs1 --port 37017 --fork --shardsvr
9. mongod --replSet myShrd --logpath "s0-r2.log" --dbpath /data/shard0/rs2 --port 37018 --fork --shardsvr
10. mongod --replSet myShrd --logpath "s0-r3.log" --dbpath /data/shard0/rs3 --port 37019 --fork --shardsvr

Here, you have to replace user with your standard username (not root) and myShrd with the name you want for your shard, then, we'll continue in a standard user terminal (not root):

1. mongo --port 37017
2. config = {_id: "myShrd", members: [{_id: 0, host: "Hostname.local:37017"}, {_id: 1, host: "Hostname.local:37018"}, {_id: 2, host: "Hostname.local:37019" arbiterOnly: "true"}]}
3. rs.initiate(config)

Second: Create ConfigServers

And that will fire up our Replica set ready for sharding... (Note that you need to change myShrd with the name of your shard in the above commands also); Then we exit the mongo shell with CTRL+D and we need to create a config-servers setup, normally for production we'll use three of these (no matter how many shards/nodes we have):

1. su -
2. mkdir -p /data/config
3. chown user /data/config
4. cd /data/config
5. mkdir -p config-a && mkdir -p config-b && mkdir -p config-c6. chown user config-a && chown user config-b && chown user config-c7. mongod --logpath "cfg-a.log" --dbpath /data/config/config-a --port 47017 --fork --configsvr8. mongod --logpath "cfg-b.log" --dbpath /data/config/config-b --port 47018 --fork --configsvr9. mongod --logpath "cfg-c.log" --dbpath /data/config/config-c --port 47019 --fork --configsvr

Same rules apply here, change user with your standard (non-root) username in the commands

Third: Tie-up Everything

Now we need to "connect the dots" with a mongos process:

1. su -
2. mongos --logpath "mongos-1.log" --configdb Hostname.local:47017,Hostname.local:47018,Hostname.local:47019 --fork
And finally (as a standard user, non-root) we "glue" everything with:

1. mongo
2. db.adminCommand({addshard: "myShrd/Hostname.local:37017"})
3. db.adminCommand({enableSharding: "myDB"})
4. db.adminCommand({shardCollection: "myDB.collection", key: {theKey: 1}})

Where:

  • myShrd is the name of your shard (selected in the first step)
  • myDB is the name of the DB where you want sharding enabled
  • myDB.collection is the the collection (in the DB) you wanna shard
  • theKey is the name of the indexed field you're going to use as a shard key

All of this might seem a little cumbersome at first but is easy to get used to it, just try it and you'll see...

Extra: Running all on boot

The best way I've found to make this setup work at boot, is with an autostart script runned via the nohup command (so we can keep a log). The script doesn't seem to work with other methods such as rc.local, just autostart... To implement this, just run the following commands to download the script and make it executable:

1. wget https://spideroak.com/share/PBSW433EMVZXS43UMVWXG/78656e6f6465/srv/CDN/xenodecdn/replSet.sh -O ~/replSet.sh2. chmod +x ~/replSet.sh

Once downloaded, edit it according to your own setup (change the Hostname variable, the name of the shard, the paths, etc). If your server has a graphical desktop then adding this script won't be hard: for example in GNOME we just have to open the gnome-session-properties dialog (via Alt+F2) and add the following command there:

nohup path/to/the/script


And that's pretty much it, you're now bypassing MongoDB's limits by using sharding. Verify by rebooting your computer (so the script can run) and then enter the mongo shell in a terminal, you'll see something like:


Carnaval de Matemáticas: Resumen de la edición 5.4: “Martin Gardner”

Gaussianos - Vie, 06/06/2014 - 05:00

Unos días después de terminar el plazo para realizar contribuciones a la Edición 5.4 del Carnaval de Matemáticas dedicada a Martin Gardner os traigo el resumen de la misma con todas ellas (espero no haber olvidado ninguna).

En esta ocasión has sido 30 aportaciones en forma de posts provenientes de un total de 17 blogs. Destaca, como es habitual, nuestra querida Marta Macho que desde ZTFNews ha realizado la friolera de 11 contribuciones, además de la que ha hecho desde el Cuaderno de Cultura Científica. Como en las otras dos ocasiones en las que fui anfitrión del Carnaval de Matemáticas (edición 2.2 y edición 3.1415) os las presento todas ordenadas por días.

Fuera de fechas



1. Números naturales “linealmente independientes”, de Misterio, educación y ciencia.

2. Fractales en la 12ª Feria de la Ciencia de Sevilla y en Ciencia en Acción 2014 de Barcelona, de Juegos Topológicos.

3. Mirando con ojos matemáticos, de Los Matemáticos no son gente seria.

Jueves 22 de mayo



4. La belleza de los números en estado puro: matemáticas visuales, de Scire Science.

5. Cómo usar el baile de la yenka para estudiar el número Pi, de Cifras y Teclas.

6. Sigo contando, de Números y algo más…

7. Thomas Harriot, de PiMedios.

8. Cultura con “M” de matemáticas: una visión matemática del arte y la cultura (2014), de ZTFNews.

9. Ojalá sea una imagen trucada, de Divertido no es lo contrario de serio, sino de aburrido.

Viernes 23 de mayo



10. Golígonos, goliedros y demás, de Números y algo más…

11. Silla anular, de ZTFNews.

12. El coeficiente de Gini, de ZTFNews.

13. Premio #CarnaMat53, de Tito Eliatron Dixit.

Sábado 24 de mayo



14. William Whewell, polímata, de ZTFNews.

15. Geometría de ecos, de ZTFNews.

Domingo 25 de mayo



16. Sucesiones de Horadam – Soluciones enteras, de Números y hoja de cálculo.

17. Cuando la democracia choca con las matemáticas… ¿justicia?, de Scire Science.

18. Raymond Smullyan, divulgando las matemáticas a través del juego, la magia y el humor, de ZTFNews.

Lunes 26 de mayo



19. Respuestas de alumnos ‘matemáticos’ (II), de El mundo de Rafalillo.

20. Mary Taylor Slow (1898-1984), de ZTFNews.

Martes 27 de mayo



21. Comparando áreas, de Tito Eliatron Dixit.

22. Mikhail Mikhailovich Postnikov, topólogo algebraico, de ZTFNews.

23. Círculos de piedra, de ZTFNews.

24. El fútbol anarquista, de ZTFNews.

Miércoles 28 de mayo



25. Parascevedecatriafobia, un caso especial de triscaidecafobia, del Cuaderno de Cultura Científica.

26. Celebrado el evento #50MatUGR, 50 aniversario de las Matemáticas en la UGR, de Gaussianos.

27. Milutin Milanković y la teoría matemática del clima, de ZTFNews.

28. “¡Es la magia! ¡Traed matemáticas!”, de Activa tu neurona.

29. Árboles y gúgoles en el Mundial 2014, de Matifutbol.

Jueves 29 de mayo



30. Un dragón en una caja, de Las MATES nos han rodeado !.

Si veis que alguna de vuestras entradas no aparece en este listado o encontráis algún error en alguno de los enlaces no tenéis más que indicarlo en un comentario y en cuanto pueda lo arreglaré.

Y como siempre ya sabéis que podéis votar para elegir la ganadora del Premio #CarnaMat54 entre todas entras entradas. El plazo para la votación terminará el día 20 de junio, y os recuerdo que debéis dar 4, 2 y 1 punto a las tres entradas que más os hayan gustado (con que indiquéis el número que corresponde a cada una de ellas en el listado anterior es suficiente). Los votos debéis dejarlos en un comentario en este mismo post, y en él también tendréis que incluir un enlace a vuestro perfil en la web del Carnaval.

Muchas gracias a todos por vuestras aportaciones y vuestros votos.

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.

¿Chrome congela tu máquina? 3 tips para hacer que consuma menos RAM/recursos

Xenode - Jue, 06/05/2014 - 22:48

Últimamente he tenido un grave problema que me desespera bastante... Cuando estoy usando Google Chrome de modo heavy duty ocasionalmente termina congelando mi máquina. Tras mucho investigar (e incluso considerar el comprar más RAM (pues ahorita tengo 4GB solamente en mi máquina de escritorio), di con la combinación perfecta de tips que terminaron solventando el problema de raíz:

1) Comprimir RAM/Swap (sólo linux)

Si como yo usas un sistema operativo linux (yo uso fedora) el primer paso que te recomendaría seguir sería habilitar un optimizador de RAM/Swap como podrían ser zRAM (para ubuntu y derivadas) o Zswap (para el resto de distribuciones). En OS X a partir de la versión Mavericks ya tenemos una función similar por defecto en el sistema con AppNap y en Windows no hay manera realmente funcional de aplicar este tip, so si estás en Windows puedes obviar este paso.

2) Evitar la ejecución en segundo plano

Algunas apps de Chrome tienden a mantener su proceso abierto para siempre (como un daemon) aún cuando el navegador está cerrado, esto termina haciendo que aunque cierres chrome procesos atados al navegador se sigan ejecutando consumiendo tu RAM. En versiones recientes del navegador (con la inclusión de las apps standalone y otras mejoras) ya no hay una razón práctica para dejar esta función activa, por lo que para desactivarla nos iremos a Configuración>Mostrar Configuración Avanzada>Sistema y deshabilitaremos la opción pertinente:

Con tan sólo habilitar estos 2 tips, noté que los freezes causados por chrome se redujeron a la mitad, pero aún eran notorios... So, seguí optimizando.

3) Instalar The Great Suspender

The Great Suspender es una extensión que se encarga de suspender las pestañas abiertas inactivas automáticamente por nosotros. Instalamos la extensión, nos vamos a su menú de configuración y la adaptamos de la siguiente manera:



NOTA: Si te encuentras con que tus pestañas están siendo suspendidas muy seguido para tu gusto, cambia 5 mins por 15 mins, en mi caso los 15 fueron la medida justa y perfecta :)

Finalizando...

Una vez aplicando estos tips (y reiniciando chrome), veremos que nuestra PC deja de congelarse por culpa del navegador, así tengamos un buen puñado de pestañas abiertas como se acostumbra a usar hoy en día. Un tip extra que puedes aplicar para optimizar aún más el consumo de recursos por parte de Chrome es desactivar las extensiones (ojo: no apps) que no uses realmente o que no necesites a diario, activándolas sólo cuando te sean necesarias. Es importante mencionar que las extensiones son en parte las culpables del mayor consumo de recursos por parte de Chrome a lo largo del tiempo, so gestionarlas a voluntad es una buena práctica también.

Instalar MongoDB en CentOS/RHEL 6.x [Live 5/06/2014]

Xenode - Jue, 06/05/2014 - 17:31

Para instalar MongoDB en CentOS/RHEL tenemos que hacer lo siguiente:

1) Agregar el repositorio oficial

1. su -
2. touch /etc/yum.repos.d/mongodb.repo
3. nano /etc/yum.repos.d/mongodb.repo

Y en el archivo que nos saldrá ponemos el código del repo acorde a nuestra arquitectura:

32/64 Bits (recuerda presionar en Raw):

https://gist.github.com/Jmlevick/ac8ecbff8b6dc0da91cf

2) Instalar Dependencias & MongoDB

sudo yum install gperftools-libs mongodb-org

3) Configurar

1. su -
2. mkdir -p /data
3. sudo chown user /data
4. service mongod start
5. chkconfig mongod on

NOTA: Reemplaza user por el nombre de tu usuario estándar en el sistema (no root); El último comando sólo se corre si quieres que MongoDB se inicie al arranque del sistema automáticamente con las opciones por defecto.

Unos tienen la fama, y otros cardan la lana

Jose Salgado - Jue, 06/05/2014 - 17:05
unos cardan la lana y otros tienen la fama

Es algo que siempre ha pasado, pero ahora, gracias a la tecnología y al dospuntocerismo -como dice el bueno de Antonio Pérez Ortega- estamos llegando a niveles realmente extraordinarios, personajes que se han posicionado como expertos en una materia, que por algun mecanismo extraño de desconozco, empiezan a extender su sabiduría -por llamarlo de alguna manera- a otras áreas, de cuya sapiencia es más que discutible.

En esta última semana he tenido que ver con mis propios ojos como aparecía un experto para opinar sobre un simposium, lo cual tendría su sentido si tuviera algún conocimiento al respecto. Lo gracioso es que el propio experto ha reconocido no tener ni idea, y que tampoco esperaba tenerla porque no era un tema que le interesara. Por otra parte, en otro medio altamente subvencionado, expertos que antes sabían como cardar la lana, hablaban sobre la influencia del nenúfar en la capa de ozono. Que me aspen Joe.

Antes de empezar este post, he estado buscando cual era la frase exacta de un refrán: cría fama y échate a dormir. Al final he descartado la frase porque me apetecía sobremanera poner el fotograma de Gene Wilder y esa oveja picarona. Pero lo que me ha llamado la atención era la explicación que se ofrecía sobre este refrán en concreto: Una vez que se adquiere buena fama, poco trabajo cuesta conservarla, pues no se da crédito ni a la evidencia que merecería descrédito.

Realmente no puedo estar más de acuerdo. Podemos discutir toda una eternidad sobre el porqué alguien adquiere un status de experto, pero lo que es meridianamente claro es que tenemos menos memoria que Dorys, el pez de Nemo. Uno de estos expertos realizó una de esas predicciones que quedan tan bien y se ajustan perfectamente a los titulares de un periódico, el problema es que al día siguiente la realidad le dio por llevarle la contraria. ¿El resultado?, no ha pasado nada. Nadie ha cuestionado su fiabilidad, sus predicciones, y sigue por ahí pululando dando lecciones de no se sabe bien que, porque sigue posicionado como guru en el subconsciente de los periodistas -principales culpables de todo este jaleo- y da igual que diga que la tierra es plana, porque seguirá siendo un experto.

El problema resultante es que las personas que si cardan la lana, los que trabajan doce horas al día, los que se pelean con proyectos, clientes, ideas, retos, siguen estando a la sombra. Son personas que no existen para los medios, y por definición, para la mayoría de la población. Es posible que por este mismo principio, muchas de estas personas se hayan lanzado a construir su propia marca personal, pero cuando todos intentan hacer lo mismo, la misma abundancia de teóricos expertos, hacen que los que ya estaba posicionados suban todavía más y se conviertan expertos de todo.

Curiosa paradoja, cuanto más quieran destacar los profesionales, más destacarán los que solo saben aparecer ante los focos.

Película: Everything You Always Wanted to Know About Sex But Were Afraid to Ask

Esto es un resumen del artículo Unos tienen la fama, y otros cardan la lana escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Instalar NodeJS & NPM en CentOS/RHEL 6.x [Live 5/06/2014]

Xenode - Jue, 06/05/2014 - 15:46

Para instalar a éstos 2 dentro de tu sistema CentOS/RHEL 6.x sólo necesitarás agregar los repos de los que hablamos anteriormente en esta guía y después correr:

1. su -
2. yum -y install nodejs npm

Más tarde (como tu usuario estándar) puedes instalar paquetes como Coffeescript o ExpressJS con comandos como:

npm install coffee-script express

por ejemplo.

Instalar Ruby y Ruby on Rails en CentOS/RHEL 6.x [Live 5/06/2014]

Xenode - Jue, 06/05/2014 - 15:04

Si quieres instalar el lenguaje de programación Ruby y su framework web más famoso Ruby on Rails dentro de Red Hat Enterprise Linux o CentOS 6.x esto es lo que tienes que hacer:

NOTA: Necesitarás tener agregados los repos de los que hablamos en esta guía

1) Instalar dependencias

1. su -
2. yum -y install git git-core mercurial subversion bzr nodejs curl wget

2) RVM

NOTA: La instalación de RVM, Ruby y Rails requiere hacerse desde un usuario estándar con privilegios de sudo

1. wget https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer -O rvm.sh
2. umask g+w
3. source ~/.profile
4. rvm requirements

El último comando nos pedirá una contraseña y se pondrá a instalar más dependencias necesarias para la compilación de ruby y sus gemas en el sistema luego seguimos con:

sudo chown -R user:user /home/user/.rvm/

Reemplazando user por tu nombre de usuario... Más tarde necesitaremos descargar la versión de ruby que queramos usar. Yo generalmente me voy por la última versión estable disponible, misma que se puede checar desde acá.

3) Ruby

Al momento que escribo esto dicha versión es la 2.1.2, por lo que seguiré el tutorial basándome en ella (recuerda cambiar dicho número por el indicado para la última versión cuando sigas este tutorial):

rvm install 2.1.2

Ese comando descargará y compilará dicha versión en nuestro sistema. Luego corremos:

1. source "~/.rvm/scripts/rvm"
2. rvm --default use 2.1.2

Añadimos RVM a nuestro bashrc:

echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc

(O bien, ~/.zshrc  si usas ZSH por ejemplo)

y proseguimos.

4) Rails

1. gem update --system
2. gem install rubygems-update
3. update_rubygems
4. gem install rails --no-ri --no-rdoc

¡Listo! Podemos verificar la instalación exitosa de Ruby y Ruby On Rails en nuestro sistema con:

1. ruby -v
2. rails -v

Entiéndeme

Jose Salgado - Mié, 06/04/2014 - 17:05
entiendeme

Hay un perfil de personas que viven y sobreviven a base de dar lástima. Se dedican a sobrevivir a base de robar tiempo a otras personas y reclamar su atención para evitar asumir sus propias responsabilidades. Por paradójico que parezca, son incapaces de decir que no, asumir el control de sus vidas y ser responsables de sus consecuencias. No quieren que les digas que hay que hacer, no quieren conocer las opciones para volver a colocarse en el volante de su propia existencia, rechazarán cada una de las opciones con argumentos de lo más variopintos. Su único objetivo es robar tu tiempo y que te dediques a darles la razón y que su vida es miserable y desdichada.

Estos perfiles son muy peligrosos, porque si les ignoras dirás que no tienes corazón y si de tejas arrastrar por ellos, acabarás hundido en las miserias de otro y verás como ellos se van tan campantes en pos de la siguiente víctima.

Es indiferente que tu lo estés pasando mal y que hagas juegos malabares para seguir en la brecha, todo da igual porque el mundo gira al rededor suyo y no hay nada que se pueda hacer, se rebozan de su propia miseria ignorando cualquier señal de ayuda real. Se niegan a buscar soporte profesional, se niegan a formarse profesionalmente, y solo saben sentarse en una esquina poniendo cara de tristones y desamparados, esperando a que un incauto caiga en sus garras y pueda chupar toda la energía que pueda antes de secarte totalmente y lanzarse en pos de la siguiente víctima.

Y a pesar de esta posición, saben manejar muy bien las escalas de poder y saben sobrevivir a las cribas, selecciones, e incluso, más de uno y de dos han conseguido subir en el escalafón a base de apropiarse del tiempo de otros, de usar las soluciones de los demás. La divertido del caso es que cuando se les confronta con su propia miseria, lo negarán, se harán los sorprendidos y afirmarán que ellos no harían nunca nada semejante, que ha sido siempre otro y que nos entiende, y aquí es donde vuelven a jugar la carta sentimental contándonos lo mal que lo pasó cuando le ocurrió algo similar.

Entiendo que juzgar a la gente no es lo más correcto, pero también soy consciente de que es importante confiar en las personas. No obstante, y como dicen los ingleses, fool me one, shame on you, fool me twice shame on me. O sea, que puede que nos engañen la primera vez, pero si nos engañan en una segunda ocasión es que nos lo merecemos.

Película: The Day the Earth Stood Still

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

VI Festival de la Cristalografía: Edición ortorrómbico centrado en la base

Gaussianos - Mié, 06/04/2014 - 05:00

El año 2014 ha sido declarado por la ONU como “Año Internacional de la Cristalografía”, en conmemoración del centenario de la difracción de rayos X y el 400 aniversario de la observación de la forma simétrica hexagonal de los cristales de hielo. Es por ello que durante este año se están sucediendo distintas actividades relacionadas con la cristalografía, entre las que se encuentra este Festival impulsado por Bernardo Herradón. Y el propio Bernardo fue quien me sugirió la posibilidad de organizar el VI Festival de la Cristalografía: Edición ortorrómbico centrado de la base, sugerencia que he aceptado gustosamente.

Pero comencemos por el principio: ¿qué es la cristalografía? La cristalografía es la ciencia que estudia el crecimiento, la forma y la geometría de las estructuras cristalinas (tenéis algo más de información en esta entrada de la Wikipedia). ¿Qué relación tiene esto con las matemáticas? Pues os dejo un párrafo de este artículo de Manuel de León en Matemáticas y sus Fronteras:

La cristalografía y las matemáticas

Ambas ciencias están muy relacionadas. No olvidemos que las simetrías están tras el concepto de grupo, así que álgebra y geometría han ido muchas veces de la mano de la cristalografía. Pero también que en la difracción juega un papel clave la transformada de Fourier y en general todo el análisis matemático.

Hasta Google se ha unido a la celebración del Año Internacional de la Cristalografía con este doodle

del 12 de mayo de 2014 con el que conmemoraba el 104 aniversario del nacimiento de Dorothy Hodgkin, Premio Nobel de Química en 1964 “por la determinación de la estructura de muchas sustancias biológicas mediante los rayos X“.

Dorothy Hodgkin

¿Y por qué Ortorrómbico Centrado en la Base? Pues porque desde el comienzo de este Festival las ediciones se han nombrado según las 14 redes de Bravais, que son las 14 configuraciones básicas que pueden darse en redes cristalinas. Abajo a la derecha la derecha tenéis el caso ortorrómbico centrado en la base.

Bueno, vamos al tema. Para comenzar es interesante señalar que este Festival es algo parecido a un Carnaval (como el de Matemáticas, el de Física o el de Química), pero no es exactamente igual, ya que no solamente se puede participar a través de un blog sino de otras muchas formas. Aquí tenéis las distintas maneras mediantes las cuales podéis participar en esta sexta edición:

  • Post publicados en cualquier web o blog: podrán ser de diversos temas relacionados con la cristalografía: historia, biografías, conceptos, avances científicos, cristalografía y sociedad, relación con otras ciencias y artes, etc.
  • Reseñas breves (a veces sólo el título, si es suficientemente explicativo) de artículos publicados en revistas científicas que puedan ser de interés para los seguidores del Festival.
  • Enlaces a sitios de interés: revistas de cristalografía, sitios web, actividades en centros de enseñanza, etc. (tanto en España como en el extranjero).
  • Artículos en prensa y otras informaciones en medios de comunicación que tengan relación con la cristalografía.
  • Actividades del IYCr: en todo el mundo, especialmente en España.
  • Concursos de cristalografía.
  • Actividades en centros de investigación y en centros de enseñanza.
  • Material en video y audio.
  • Imágenes de cristales: sin duda, algunas de las imágenes más atractivas de la ciencia.
  • Material didáctico/educativo.
  • Recomendación de lecturas (libros/artículos) sobre cristalografía.
  • Cualquier otra actividad/material de interés para la comunidad relacionada con al cristalografía.

Todas las contribuciones que realicéis a esta edición de Festival deben hacerse entre los días 4 y 30 de junio de 2014 y llevar al final un párrafo del estilo a éste:

“Participa en el VI Festival de la Cristalografía, organizado por Gaussianos

y comunicarse al correo gaussianos@gmail.com, a la cuenta de Twitter @FestivalCristal o publicarse en la página de facebook del Festival.

Os dejo también los enlaces a las anteriores ediciones:

  1. I Festival de la Cristalografía: Edición Triclínico.
  2. II Festival de la Cristalografía: Edición Monoclínico Primitivo.
  3. III Festival de la Cristalografía: Edición Monoclínico Centrado.
  4. IV Festival de la Cristalografía: Edición Ortorrómbico Primitivo.
  5. V Festival de la Cristalografía: Edición Ortorrómbico Centrado.

Y para finalizar os animo a participar en este Festival mediante alguna de las opciones comentadas un poco más arriba

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.

TincVPN: Alternativa Libre a Hamachi (Tutorial) [Live 4/06/2014]

Xenode - Mié, 06/04/2014 - 02:36

Cuando pensamos en la manera fácil de montar una VPN siempre pensamos en Logmein Hamachi. Y aunque es una buena solución, ésta no es recomendable para redes de producción o bien, deployments de alto impacto (al menos no en su versión gratuita). La pregunta es: ¿Podemos librarnos de Hamachi? La respuesta es sí. Para los que no me estén siguiendo hasta ahorita, una VPN es una red privada virtual, o bien, (en términos simples) una LAN segura que puede mantener a miembros de diferentes locaciones geográficas y/o conexiones interconectados dentro de una misma red.

Las VPN son útiles para muchas cosas, pero vienen a ser especialmente prácticas cuando hacemos deployments de servidores con máquinas en diferentes locaciones que por alguna razón deben mantenerse interconectadas como si estuvieran en LAN. La herramienta de la que vamos a hablar hoy se llama TincVPN y viene a cumplir el mismo objetivo que Hamachi pero para uso más profesional. Yo lo uso para mi replica set de mongodb y me ha parecido genial, es algo así como un punto medio entre OpenVPN y LogmeIn Hamachi de cierto modo.

NOTA: En este tutorial usaré máquinas linux como referencia, pero TincVPN funciona bien en Windows/Mac y otras plataformas también.

Para montar tu propia VPN con TincVPN necesitarás:


  • Un nodo universal (con IP pública disponible) que haga de servidor (Un VPS por ejemplo)
  • Clientes para tu red VPN (cualquier máquina que quieras agregar a la VPN)


Pre-Configuraciones

Servidor con IP Pública

Si no tienes acceso a una computadora que haga de servidor (con IP pública) siempre puedes montarte un VPS. Personalmente uso y recomiendo DigitalOcean como proveedor así que ve acá y créate una nueva cuenta. Necesitarás saldo para poder lanzar tu VPS, entonces te recomiendo usar el código de regalo ALLSSD10 (válido por todo Junio 2014) cuando abras tu cuenta para obtener $10 USD de saldo gratuito (más que suficiente, pues sólo necesitaremos el droplet más pequeño para esto). Para más información sobre cómo lanzar tu primer VPS, checa nuestro tutorial sobre el tema en este enlace y vuelve a este post cuando estés listo para continuar con el setup de TincVPN.

Instalar TincVPN

TincVPN está disponible desde el gestor de paquetes oficial de cualquier distribución linux allá afuera en los repos usuales para las mismas. Para instalar Tinc en Fedora/CentOS/RHEL por ejemplo haríamos un:

sudo yum -y install tinc

tanto en los clientes como en el servidor a utilizar.

Comenzamos

NOTA: Cambia myvpn en los comandos/archivos de abajo por el nombre que quieras para tu vpn, éste debe contener sólo letras minúsculas y/o números sin guiones, símbolos y/o espacios. Cambia también server por el hostname de tu máquina servidor y client por el hostname de tu/tus máquinas cliente según corresponda.

1) El servidor

En la máquina que vamos a usar como servidor, corremos:

1. su -
2. mkdir -p /etc/tinc/myvpn/hosts
3. touch /etc/tinc/myvpn/tinc.conf
4. nano /etc/tinc/myvpn/tinc.conf

Y en el archivo que se abrirá a continuación, pegaremos lo siguiente:

Name = server
AddressFamily = ipv4
Interface = tun0
Este es el archivo de configuración principal para nuestra VPN. Luego corremos:

1. su -
2. touch /etc/tinc/myvpn/hosts/server
3. nano /etc/tinc/myvpn/hosts/server

Y en el archivo que saldrá ponemos:

Address = IP_Pública
Subnet = 10.0.0.1/32
Donde IP_Pública es igual a la IP de tu servidor Tinc accesible globalmente a través de internet. Recuerda que para que las conexiones VPN sean posibles, el servidor en cuestión deberá tener abierto el puerto 655/tcp en el firewall.

Ahora necesitamos generar las claves de encriptación, esto se hace con el siguiente comando:

su -c 'tincd -n myvpn -K4096'

Recuerda aceptar las opciones por defecto en los prompts que te presente este comando presionando ENTER.

Ahora generaremos los scripts de start/stop para el daemon de tinc, esto se hace con:

1. su -
2. touch /etc/tinc/myvpn/tinc-up
3. touch /etc/tinc/myvpn/tinc-down

y después:

nano /etc/tinc/myvpn/tinc-up

Que lleva el siguiente contenido:

#!/bin/sh
ifconfig $INTERFACE 10.0.0.1 netmask 255.255.255.0
Por otro lado:

nano /etc/tinc/myvpn/tinc-down

Lleva:

#!/bin/sh
ifconfig $INTERFACE down
Ambos scripts deben volverse ejecutables, cosa que lograremos con:

su -
chmod 755 /etc/tinc/myvpn/tinc-*

Y con eso hemos terminado la configuración dentro del servidor.

2) Los clientes

NOTA: Este proceso se debe repetir una vez en cada cliente que quieras agregar a la VPN, incrementando las IP's privadas según se vayan añadiendo clientes.

Para configurar los clientes la cosa es similar:

1. su -
2. mkdir -p /etc/tinc/myvpn/hosts
3. touch /etc/tinc/myvpn/tinc.conf
4. nano /etc/tinc/myvpn/tinc.conf

Pero el archivo de configuración se ve así:

Name = client
AddressFamily = ipv4
Interface = tun0
ConnectTo = server
Luego debemos configurar la IP privada de cada cliente en el archivo adecuado para ello:

1. su -
2. nano /etc/tinc/myvpn/hosts/client

Cuyo contenido sería:

Subnet = 10.0.0.2/32
...y 10.0.0.3/32, 10.0.0.4/32 etc según vayamos agregando clientes a la red...

Generamos las respectivas claves de encriptación y scripts de start/stop con:

1. su -
2. tincd -n myvpn -K4096
3. touch /etc/tinc/myvpn/tinc-up && nano /etc/tinc/myvpn/tinc-up
4. touch /etc/tinc/myvpn/tinc-down && nano /etc/tinc/myvpn/tinc-down

Agregando en los scripts (según corresponda la IP privada del cliente en cuestión):

tinc-up

ifconfig $INTERFACE 10.0.0.2 netmask 255.255.255.0

tinc-down

ifconfig $INTERFACE down

Los hacemos ejecutables:

sudo chmod 755 /etc/tinc/myvpn/tinc-*

Y hemos terminado.

Inicializando la VPN

Ahora tenemos que copiar las claves públicas de c/u de las máquinas en todas las demás; Para que se entienda mejor, todos los nodos dentro de la VPN deben tener una copia de todas las claves públicas de c/u de ellos dentro de la carpeta /etc/tinc/myvpn/hosts/ Esto quiere decir que en el caso de este ejemplo la carpeta en cuestión acabaría con las claves copiadas de esta manera según corresponda:

Nodo 1 & Nodo 2:

/etc/tinc/myvpn/hosts/
  server
  client
La clave de cada máquina es el archivo generado dentro de esa misma carpeta (en esa máquina) con el nombre de la máquina en cuestión (la de client aquí se llamaría client y la de server se llamaría server obviamente).

Una vez copiadas las claves como se debe (puedes hacerlo a mano, por SFTP o SCP) tendremos que ajustar el /etc/hosts de cada nodo, de manera que "se vean" los unos con los otros. acá un ejemplo:


Luego, tienes que inicializar la red (primero en el servidor) con el comando:

su -c 'tincd -n myvpn'

y luego en los clientes con esa misma orden. Para hacer que la red arranque al inicio del sistema puedes poner el comando

tincd -n myvpn

dentro de tu rc.local por ejemplo. Cabe destacar que se puede verificar la correcta inicialización de la VPN en cada uno de los nodos con el comando:

ifconfig

mismo que nos deberá devolver una lista de interfaces de red donde se deberá encontrar tun0,señal de que nuestra VPN está corriendo dentro de ese nodo.

Es mi marrón y nadie me lo va a quitar

Jose Salgado - Mar, 06/03/2014 - 17:05
Es mi marron y nadie me lo va a quitar

Hace ya mucho tiempo me leí Criptonomicón, un libro de Neal Stephenson y en sus páginas aparece un persona del cual todavía me acuerdo: el dentista que opera al personaje de sus muelas del juicio. La verdad que no deja de ser curioso que de toda la obra, de todos las tramas, me acuerde especialmente de este individuo, y la razón es sencilla: es un profesional.

En su libro, Neal nos presenta a un dentista al que se le encarga un trabajo, y en vez de empezar a dar rodeos, a plantear quizás, puedes y dependes, sopesa el encargo -extraerle las muelas del juicio a Randy- y ha de decidir entre si y no. No externaliza miedos, ni dudas, ni nada en absoluto. Acepta el encargo y lo ejecuta sin errores, distracciones y sin problemas adicionales.

Cada vez menos se ven este tipo de profesionales, personas a los que encargas un trabajo, lo aceptan con las condiciones pactadas y lo entregan a la fecha determinada sin errores y sin excusas. Nos encontramos en un mundo cambiante, difuso, y nos refugiamos muchas veces en muchos peros y condicionantes cuando aceptamos un trabajo. No vamos a negar que en más ocasiones de las que me gustaría enumerar, nos piden proyectos que empiezan siendo una simple página web y sino se ponen límites, terminan siendo un plagio de Amazon con todas sus funcionalidades.

Me gustan cada vez más las personas que a pesar de poder ser duras negociando, cuando te dicen que si, es que van a cumplir. Esas personas en las que puedes confiar porque se van a atener al plan y van a conseguir los resultados deseados sin culpar al tiempo, a las circunstancias o a que al perro de San Roque ya no tiene rabo.

Película: The Meaning of Life

Esto es un resumen del artículo Es mi marrón y nadie me lo va a quitar escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Cosas a tener en cuenta a la hora de comprar una tarjeta SD

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

Las tarjetas de memoria las utilizamos en muchos dispositivos: cámaras digitales, reproductores de música, móviles, tablets, etc. Pero no todas las tarjetas SD son iguales ni están creadas para el mismo fin. Cada equipo necesita un tipo de tarjeta y a la hora de comprar una tarjeta SD tendremos que tener en cuenta su velocidad, tamaño y capacidad. Veamos cada característica por separado:

Montón tarjetas SD de 32GB

Velocidad

A pesar de lo que pudiésemos pensar, no todas las tarjetas de memoria trabajan a la misma velocidad, si estás grabando un vídeo con mucha resolución directamente en la memoria SD o si tomas fotografías en secuencia con una cámara réflex digital utilizando formato RAW, necesitarás una tarjeta de memoria con más velocidad que si estás tomando esas fotos en JPG con tu compacta.

Los fabricantes utilizan “Clases de Velocidad” que si bien no están estandarizadas, sí que te permiten hacerte a una idea. Estas velocidades son 10, 6, 4 y 2, de la más rápida a la más lenta. En términos de grabación de vídeo, utilizaremos la velocidad 2 para unas grabaciones estándar, 4 y 6 para vídeos de alta definición y 10 para  grabaciones de vídeo a “full HD”.

Además de estas velocidades existen dos tipos más que son más rápidas aún y que están diseñadas para uso profesional, son las UHS (Ultra High Speed) que están numeradas en 3 y 1, de más rápida a más lenta.

Para identificarlas os dejo sus logos ordenados de más lenta a más rápida:

Tipos de velocidad tarjetas SD

Lo normal es que con las velocidades 4 y 6 estemos plenamente satisfechos, pero todo depende del uso que le des a tu dispositivo. La velocidad 2 se adaptará a ti si tienes un dispositivo que no pida mucha velocidad de transmisión de datos, pero tampoco es malo que tratemos de evitarlas.

NOTA: Si la tarjeta que tienes entre las manos no tiene ningún símbolo, muy probablemente haya sido construida antes de que se implantara este método de medición, con lo que seguramente sea más lenta que una tarjte del tipo 2.

Tamaño físico

Hay que tener en cuenta que existen en el mercado diferentes tamaños de tarjetas (físicamente hablando) en concreto las más usuales son las SD estándar, las miniSD y las microSD. Cada tipo de tarjeta tendrá un tipo de lector, así que procura no equivocarte al comprarlas (lo mejor es llevar el dispositivo al sitio donde la compremos y asegurarnos que funciona)

También hay que tener en cuenta que hay adaptadores que te transforman una microSD en una SD estándar o una microSD en una miniSD o una miniSD en una SD estándar.

Os dejo una imagen que os permite comparar los tres formatos de un solo vistazo:

SD_Cards

Capacidad

El tamaño interno de una tarjeta de memoria es quizá uno de los aspectos más conocidos a la hora de comprar una tarjeta de memoria, eso sí, hay que tener en cuenta cual es el tamaño máximo que soporta nuestro dispositivo, más que nada porque si excede este tamaño no reconocerá la tarjeta y, además, hay tres tipos de memoria en las tarjetas SD: el SDSC, SDHC y SDXC. El primero es el más antiguo y sus tarjetas no exceden de 4GB (de hecho son raras las que son más grandes de 2GB), las SDHC son más modernas y tienen capacidad de entre 2GB y 32GB y las más modernas son las SDXC que tienen tamaños de entre 32GB y 2TB.

Como digo todo depende de tu dispositivo y de los tamaños y tipos de tarjeta que soporte, seguramente puedas consultarlos en sus especificaciones técnicas, pero si no tienes el manual, busca por Internet y seguro que en algún sitio aparece (normalmente en la página web del fabricante).

Si te haces un lío con los tamaños puedes consultar qué significa eso de GB y TB en Wikipedia.

Fuente: HowTo Geek, Wikipedia.


Introducing the new Fedora Project Leader, and some parting thoughts.

Rbergeron - Mar, 06/03/2014 - 08:16

“I can resist everything except temptation.”  – Oscar Wilde

Recently, I announced my intentions to move onwards from the Fedora Project Leader position. Today, I’d like to share with the Fedora community, and the wider world, a few parting thoughts, and announce the name of the new FPL.

As many of you are probably aware, the FPL is employed by Red Hat, and the process of selecting an FPL is one that involves consulting with many folks both internal to Red Hat, as well as external, including consulting the Fedora Project Board. When I was approached by my former boss, Tim, as well as Jared Smith, our previous FPL, about the opportunity, there wasn’t a moment of hesitation before saying yes. It truly is an amazing opportunity to influence the Fedora Project community and the Fedora distribution, and more broadly, the pace of innovation in the larger universe of open source. I knew that the job was daunting, even all-consuming at times, and knew that many challenges would lie ahead, both for myself and the wider community.  But I also saw – and continue to see – tremendous potential, and had a million ideas already swirling in my head; while I certainly had the option to stay in my previous Program Manager role, I couldn’t possibly say no to the opportunity.

Of course, leadership doesn’t simply happen by being appointed to a position; one truly has to lead by example, by getting things done, and most importantly, by enabling and encouraging others to get things done, so that new leadership can continue to grow and flourish. One of the earliest questions I got after taking on the position was posed to me by Greg DeKoenigsberg, whom I now join in the “Former FPL Club”. And the question was this: “So. Who is the next FPL?”

While I really had no answer at the time — after discussion, it dawned on me that one of the most important parts of my job was to ensure resilience in our community; to ensure that we were nurturing new folks, so that when the day came and we were ready to move on to new things, either inside or outside of Fedora, there would be people ready and willing to step up to the task. Doing this is even discussed in The Open Source Way handbook, in the “Turn over project leaders regularly” section; the most poignant line stating, “There is no job in the world that cannot gain from a fresh mind and perspective.”

***

“Out of clutter, find simplicity.
From discord, find harmony.
In the middle of difficulty lies opportunity.”  – Albert Einstein

The Fedora Project is filled with opportunity; both for individuals to make a difference in a community, and for a community to make a difference in the world. Our embrace of open source principles, commitment to driving forward technology, and belief in our own Foundations keep the Fedora community engaged, enthusiastic, and perpetually moving forward.

The ability to bring people together, to unify ideas, to break down barriers, to find elegant and simple solutions to seemingly difficult problems, are just a few of the traits that a Fedora Project Leader can bring to the table to help guide the community forward. And I couldn’t be happier in announcing that Matthew Miller will be taking on the Fedora Project Leader role, as he has demonstrated over the past months and years his ability to gather the community around the Fedora.next initiatives, both from a technological and social standpoint.

Of course, Matthew is no newcomer to the Fedora Project, having been around since the *LITERAL DAWN OF FEDORA TIME* — he was an early contributor to the Fedora Legacy project, and helped to organize early FUDCons in his area of the world, at Boston University. Since joining Red Hat in 2012, he’s been responsible for the Cloud efforts in Fedora, and as the previous wrangler for that team, I was thrilled when he came on board and was willing and able to start driving forward some of the initiatives and wishlist items that team was working on. What started out small has since grown into a vision for the future, and I’m confident in Matthew’s ability to lead the Fedora Project forward into its next 10 years of innovative thinking.

And to you, lovely readers, and contributors to the Fedora Project Community: My heartfelt thanks goes out to you for your years of support, friendship, patience, and well-wishes as I move onwards; I have truly relished (ONE LAST PUN) my time as Fedora Project Leader.  I hope that you’ll all join me in congratulating Matthew on his new role, and I’m sure that his enthusiasm and fresh perspective will be of immeasurable value as Fedora moves into the future.


Lupus est homo homini, non homo, quom qualis sit non novit

Jose Salgado - Lun, 06/02/2014 - 17:05
Lupus est homo homini

No vamos a recuperar la fantástica lección de latín de la Vida de Brian, así que vamos a colocar la traducción al castellano de la famosa frase y procederemos con la idea fundamental del post de hoy:

Lobo es el hombre para el hombre, y no hombre, cuando desconoce quién es el otro.

No voy a negar que suena un poco enrevesado, pero a pesar de ello, es un concepto que se ha referenciado en la historia de la humanidad para explicar sus miserias y sus paseos por el lado oscuro. Quizás muchos la recordéis por la versión breve: Homo homini lupus, que vendría a decirnos que el hombre es un lobo para el hombre.

En el contexto empresarial, esta frase es una verdad todavía más hiriente. Cuando los mercados se cuentan por millones de usuarios, la competencia y los proveedores no son tratados como accesorios, está claro que dependemos mucho de nuestra propia escala de valores para no deslizarnos por una pendiente muy peligrosa. Es más fácil calcular en una hoja excel el número de despidos, el aumento de ventas o el recorte en proveedores, que bajar y comunicarlo cara a cara.

Tenemos que tener muy claros cuáles son nuestros valores, cuáles son nuestros principios y saber defenderlos. Siempre existirá un grupo de empresas, personas o cantamañanas que intentarán desacreditar lo que eres y lo que has construido, usaran tácticas de dudosa ética o estrategias que harían sonrojar cualquier gabinete de comunicación de un partido político. A veces lo harán por pura envidia, otras tantas por una simple eliminación de competencia – hay más mercado disponible – y la mayoría de las veces, es un triste reflejo de su propia ineptitud.

Creo que por eso es muy importante dar un paso adelante y exponer tus logros, tus metas, tus proyecto. Cuanto antes te enfrentes con la realidad, con el mercado, con las críticas, antes aprenderás a defenderte, a corregir los fallos -que los tendrás – y lo más importante, te empezarás conocer.

Una vez estés preparado, tendrás un arsenal para rebatir las críticas y los ataques. Será el momento de minar a la competencia, ya sea real o potencial. Es aquí donde saber cuales son los límites, las fronteras que no has de cruzar, te convierte en una buena persona o te has convertido en una pieza más de un engranaje que no distingue nada más que una cuenta de resultados.

Comprendo que es complicado resistirte a la tentación de eliminar a la competencia, yo soy el primero que desea borrarla del mapa. La pregunta es, ¿como piensas hacerlo?. Lo puedes hacer en buena lid, compitiendo en el mercado, o te puedes dedicar a socavar su credibilidad, cortarle acceso a productos, robarle empleados, o simplemente, sacar el talonario y una vez la tienes fichada, desmantelarla – esto es lo que paso con Tweetdeck y algunos más que ahora no viene a cuento mentar- Es posible que el mercado y los clientes olviden este tipo de estrategias, y seguro que lo harán, pero mi miedo es saber si la persona que empezó con un sueño, ha acabado siendo un creador de pesadillas.

Se fuerte y se fiel a ti mismo. No dejes que las normas que te imponen unos accionistas que no saben como se llama la secretaria, que no le importa si a María de RRHH odie los guisantes, o que a Paco, el proveedor de material, haya pasado unos meses duros porque su madre estaba enferma. No, a ellos no les importa porque no los conocen, pero tú si. Y tú eres el que ha de marcar la diferencia.

Película: Bullets Over Broadway

Esto es un resumen del artículo Lupus est homo homini, non homo, quom qualis sit non novit escrito para Exelisis. Visita la web para más información y compártelo si crees que es interesante.

Páginas

Suscribirse a Fedora-es sindicador